我有一个数据库,里面有四个表,每个表中有四个字段一致的,我想建立一个查询请问如何连接?我想用ADODC+datagrid可以实现吗?
解决方案 »
- webbrowser中的超级连接与vb程序能交互吗?有的话,给个方法谢谢!
- VC下如何调用VB制作的activeX DLL
- 各位老大你们知道有哪些机制可以实现安全通信呢:如winsock,DDE,sendmessage,通过其它平台如数据库,还有什么呢?
- SQL插入语句问题,很奇怪
- 关于dataGrid控件
- [难题]VB6中 怎么从数据库里读取并显示mht 文件!!!拜谢!!!
- 怎样返回数据库中的日期时间分秒进行判断
- 请问:如何把 日期型 转化 为字符型。
- vb串口读数据
- 用VB可以做修改鼠标的程序吗?思路是什么?急!,大虾救命!!
- 如何将移动盘自动添加到dirveListBox控件
- 大家点评一下我这个帖子吧?
我的四个数据库是:
sgjbxi:结构是:事故编号 日期 时间 主干道 辅道 目的地 基层 路线 自编号 牌照 车辆性质 司老职号 司新职号 司姓名 司身份证号 对象 责任 性质
FYJA:结构是:职号 事故日期 编号 姓名 主干道 辅道 结案日期 结案费用 司机责赔 预计理赔 损失FYSB:结构是:职号 事故日期 编号 姓名 主干道 辅道 送保日期 送保费用
FYLP:结构是:职号 事故日期 编号 姓名 主干道 辅道 理赔日期 理赔费用
其中:事故编号=编号;事故日期=日期;司老职号=职号,其他内容都对等。
通过对这四个表的连接
我想要的是:SGJBXI表中:事故编号,日期,主干道,辅道,基层,路线,牌照,司老职号,司姓名;
FYJA表中:结案日期,结案费用,司机责赔,预计理赔,损失;
FYSB表中:送保日期,送保费用
FYLP表中:理赔日期,理赔费用
放在并用ADODC记录集,通过datagird反映出来。(事故编号是唯一的,我对这四个数据库没有设主键)
另外,有的事故没有理赔的,所以部分事故编号等在FYSB和FYLP中没有记录的。
不知道可以实现吗?请赐教!万分感谢!
select a.事故编号,a.日期,a.主干道,a.辅道,a.基层,a.路线,a.牌照,a.司老职号,a.司姓名,
b.结案日期,b.结案费用,b.司机责赔,b.预计理赔,b.损失,
c.送保日期,c.送保费用,d.理赔日期,d.理赔费用
from SGJBXI a, FYJA b,FYSB c,FYLP d where a.事故编号=b.编号 and 事故编号=c.编号 and a.事故编号=d.编号
t1.事故编号,t1.日期,t1.主干道,t1.辅道,t1.基层,t1.路线,t1.牌照,t1.司老职号,t1.司姓名
t2.结案日期,t2.结案费用,t2.司机责赔,t2.预计理赔,t2.损失
t3.送保日期,t3.送保费用,
t4.理赔日期,t4.理赔费用
from sgjbxi t1
left join FYJA t2 on t1.事故编号 = t2.编号 and t1.事故日期 = t2.日期 and t1.司机姓名= t2.姓名 and t1.主干道 = t2.主干道 and t1.辅道 = t2.辅道
left join FYSB t3 on t1.事故编号 = t3.编号 and t1.事故日期 = t3.日期 and t1.司机姓名= t3.姓名 and t1.主干道 = t3.主干道 and t1.辅道 = t3.辅道
left join FYLP t4 on t1.事故编号 = t4.编号 and t1.事故日期 = t4.日期 and t1.司机姓名= t4.姓名 and t1.主干道 = t4.主干道 and t1.辅道 = t4.辅道 由于你的职号具有不确定性,所以未作为查询条件. 具体你可以参看上面的更改.
我的想法是:
1、怎样把楼上查询得到的数据存在临时表中?
2、再把临时表的记录,设置查询条件,调出某些记录
3、利用adodc+datagrid打开这些记录
4、把这些记录导出EXECL
5、打开execl
请求高手相助!万分感激!!
t1.事故编号,t1.日期,t1.主干道,t1.辅道,t1.基层,t1.路线,t1.牌照,t1.司老职号,t1.司姓名
t2.结案日期,t2.结案费用,t2.司机责赔,t2.预计理赔,t2.损失
t3.送保日期,t3.送保费用,
t4.理赔日期,t4.理赔费用
from sgjbxi t1
left join FYJA t2 on t1.事故编号 = t2.编号 and t1.事故日期 = t2.日期 and t1.司机姓名= t2.姓名 and t1.主干道 = t2.主干道 and t1.辅道 = t2.辅道
left join FYSB t3 on t1.事故编号 = t3.编号 and t1.事故日期 = t3.日期 and t1.司机姓名= t3.姓名 and t1.主干道 = t3.主干道 and t1.辅道 = t3.辅道
left join FYLP t4 on t1.事故编号 = t4.编号 and t1.事故日期 = t4.日期 and t1.司机姓名= t4.姓名 and t1.主干道 = t4.主干道 and t1.辅道 = t4.辅道
select
t1.事故编号,t1.日期,t1.主干道,t1.辅道,t1.基层,t1.路线,t1.牌照,t1.司老职号,t1.司姓名
t2.结案日期,t2.结案费用,t2.司机责赔,t2.预计理赔,t2.损失
t3.送保日期,t3.送保费用,
t4.理赔日期,t4.理赔费用
from sgjbxi t1
left join FYJA t2 on t1.事故编号 = t2.编号 and t1.事故日期 = t2.日期 and t1.司机姓名= t2.姓名 and t1.主干道 = t2.主干道 and t1.辅道 = t2.辅道
left join FYSB t3 on t1.事故编号 = t3.编号 and t1.事故日期 = t3.日期 and t1.司机姓名= t3.姓名 and t1.主干道 = t3.主干道 and t1.辅道 = t3.辅道
left join FYLP t4 on t1.事故编号 = t4.编号 and t1.事故日期 = t4.日期 and t1.司机姓名= t4.姓名 and t1.主干道 = t4.主干道 and t1.辅道 = t4.辅道能不能把上述查询内容存入临时或固定表中一边下面操作!!!万分感谢!sgjbxi改成临时或固定表的名字If Cmbzw = "" And CmbJC = "" And CmbLX = "" And Text1 = "" And Cmbxz = "" And Cmblk = "" And ChkDATE.Value = 0 Then
MsgBox "没有定义查询条件,请定义!", vbExclamation, "查询校验"
Exit Sub
End If
'查询条件确认
Dim sSql As String: sSql = "1=1"
If CmbJC <> "" Then
sSql = sSql & " AND sgjbxi.基层='" & Trim(CmbJC) & "'"
End If
If CmbLX <> "" Then
sSql = sSql & " AND sgjbxi.路线='" & Trim(CmbLX) & "'"
End If
If Text1 <> "" Then
sSql = sSql & " AND sgjbxi.司老职号='" & Trim(Text1) & "'"
End If
If Cmbxz <> "" Then
sSql = sSql & " AND sgjbxi.性质='" & Trim(Cmbxz) & "'"
End If
If Cmblk <> "" Then
sSql = sSql & " AND sgjbxi.路口='" & Trim(CmbLX) & "'"
End If
If Cmbzw <> "" Then
sSql = sSql & " AND sgjbxi.追尾='" & Trim(Cmbzw) & "'"
End If
If ChkDATE.Value = 1 Then
sSql = sSql & " AND sgjbxi.日期 between #" & Format(Date1, "mm-dd-yy") & "# AND #" & Format(Date1, "mm-dd,yy") & "#"
End If
'开始查询
Call openconn
Dim sReSql As String
sReSql = "SELECT * FROM sgjbxi WHERE " & sSql & " ORDER BY sgjbxi.日期 DESC" '按定义查询
Adodc1.RecordSource = sReSql
Adodc1.Refresh
DataGrid1.Refresh
With Adodc1
If .Recordset.RecordCount > 0 Then
.Recordset.MoveFirst
End If
Frame3.Caption = "当前自定义查询结果:" & "找到" & Adodc1.Recordset.RecordCount & "条记录。"
End WithDim xlApp As Object
Dim xlBook As Object
Dim xlSheet As Object
Dim xlQuery As Object
Dim File As String
File = App.Path & "\报表\道路交通事故情况查询.xls"
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks().Add
Set xlSheet = xlBook.Worksheets("sheet1")
Set xlQuery = xlSheet.QueryTables.Add(Adodc1.Recordset, xlSheet.Range("A1"))
xlApp.Visible = False
With xlQuery
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = 1
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.FieldNames = True
.Refresh
End With
xlApp.DisplayAlerts = False
xlBook.SaveAs File '要保存的文件
xlBook.Close
xlApp.Quit
Set xlApp = Nothing
Set xlBook = Nothing
Set xlSheet = Nothing
Set xlQuery = NothingEnd Sub