Vb+access,数据库中有近二十张表,通过自增的shipno建立联系,shipno相同的记录是关于同一ship的不同方面的参数。Vb窗体中通过“名称”的查询,得到符合要求的一条记录,由该记录的shipno将一张张表中的记录显示出来,我想用SSTab控件,一个Tab显示一张表中的符合要求的记录,在Form-Load的时候用Adodc控件来连接数据表和界面上的Textbox,这样在Form-Load的时候就要用近二十个Adodc控件,请问这样做可以吗?如果不这样,有什么其他办法?谢谢
大概的代码如下:
Private Sub Form_Load()
Me.SSTab1.Tab = 0
With Adodc1
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\测试.mdb;"
.RecordSource = "SELECT * FROM 参数1 where shipno=" & shipno
Set Text1.DataSource = Adodc1
Text1.DataField = "rudtype"
Set Text2.DataSource = Adodc1
Text2.DataField = "rudnu"
........(多个文本框的DataField和Adodc1连接)
End With
With Adodc2
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\测试.mdb;"
.RecordSource = "SELECT * FROM 参数2 where shipno=" & shipno
Set Text3.DataSource = Adodc2
Text3.DataField = "rudarea"
Set Text4.DataSource = Adodc2
Text4.DataField = "rudgao"
........(多个文本框的DataField和Adodc2连接)
End With
With Adodc3
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\测试.mdb;"
.RecordSource = "SELECT * FROM 参数3 where shipno=" & shipno
Set Text5.DataSource = Adodc3
Text5.DataField = "rudkuan"
Set Text6.DataSource = Adodc3
Text6.DataField = "rudd"
........(多个文本框的DataField和Adodc3连接)
End With
...........(多个Adodc)
Adodc1.Refresh
Adodc2.Refresh
Adodc3.Refresh
.........
End Sub
大概的代码如下:
Private Sub Form_Load()
Me.SSTab1.Tab = 0
With Adodc1
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\测试.mdb;"
.RecordSource = "SELECT * FROM 参数1 where shipno=" & shipno
Set Text1.DataSource = Adodc1
Text1.DataField = "rudtype"
Set Text2.DataSource = Adodc1
Text2.DataField = "rudnu"
........(多个文本框的DataField和Adodc1连接)
End With
With Adodc2
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\测试.mdb;"
.RecordSource = "SELECT * FROM 参数2 where shipno=" & shipno
Set Text3.DataSource = Adodc2
Text3.DataField = "rudarea"
Set Text4.DataSource = Adodc2
Text4.DataField = "rudgao"
........(多个文本框的DataField和Adodc2连接)
End With
With Adodc3
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\测试.mdb;"
.RecordSource = "SELECT * FROM 参数3 where shipno=" & shipno
Set Text5.DataSource = Adodc3
Text5.DataField = "rudkuan"
Set Text6.DataSource = Adodc3
Text6.DataField = "rudd"
........(多个文本框的DataField和Adodc3连接)
End With
...........(多个Adodc)
Adodc1.Refresh
Adodc2.Refresh
Adodc3.Refresh
.........
End Sub
就算用adodc也要用那么多吗?当然影响啦
用全局recordset联到一张表后,(用SSTab)在一个Tab中由文本框显示出来后,再到另外的Tab时是不是要把这个全局recordset关闭,再重新联另外的一张表呢?而我再想回到开始看的那个记录时,又得再重新连接呢?
在各个SStab之间切换显示数据
不用一个文框用一个的。没这么用的。
只需要连接一次就可以了。
有十几张表,一张表要一个recordset吧?
SSTab的一个tab 对应一张表,用一个recordset怎么连呢?
那怎么来实现我上面说的功能?谢谢
还不是很清楚怎么用?
笨呵呵