首页上一页 1 下一页尾页 5 条记录 1/1页
用vb 连接access数据库时,多个adodc控件的用法
发表在VB答疑区
2011-03-14
是否精华
是
否
版块置顶:
是
否
设置时间:
非永久
永久
起始时间:
结束时间:
是否扣分:
是
否
在同一窗体中,如何做到连接一次数据库,可以让本窗体的多个adodc控件共用此连接?比如,打开窗体1时用VB与db数据库建立一次连接,然后窗体1的adodc1、adodc2、adodc3、adodc4……,直接连接表1、表2、表3,表4……,而不是每个adodc都要与db数据库建立一次连接。也就是想将打开窗体时建立的那个连接设为公共连接。如何实现?
进一步,如果将以上的数据库连接在多个窗体中共用又如何实现?
本人初学VB,希望答案为代码+一些解释,能让我看懂,或提供一些相关网页链接也行,谢谢大家。
进一步,如果将以上的数据库连接在多个窗体中共用又如何实现?
本人初学VB,希望答案为代码+一些解释,能让我看懂,或提供一些相关网页链接也行,谢谢大家。
精彩评论 5
2011-03-15
板凳
vb_music 你好,我的代码如下:
Private Sub Form_Load()
Dim xa As Long, xb(4) As Long
For xa = 0 To 4
Select Case xa
Case 0
Adodc1(xa).ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\商品管理.mdb;Persist Security Info=False"
Adodc1(xa).RecordSource = "select * from 商品名称 "
Adodc1(xa).Refresh
If Adodc1(xa).Recordset.RecordCount > 0 Then
Adodc1(xa).Recordset.MoveFirst
For xb(xa) = 1 To Adodc1(xa).Recordset.RecordCount
Combo_lr(xa).AddItem Adodc1(xa).Recordset.Fields("商品名称型号").Value
Adodc1(xa).Recordset.MoveNext
Next xb(xa)
End If
Case 1
Adodc1(xa).ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\商品管理.mdb;Persist Security Info=False"
Adodc1(xa).RecordSource = "select * from 一级分类 "
Adodc1(xa).Refresh
If Adodc1(xa).Recordset.RecordCount > 0 Then
Adodc1(xa).Recordset.MoveFirst
For xb(xa) = 1 To Adodc1(xa).Recordset.RecordCount
Combo_lr(xa).AddItem Adodc1(xa).Recordset.Fields("一级分类名称").Value
Adodc1(xa).Recordset.MoveNext
Next xb(xa)
End If
Case 2
Adodc1(xa).ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\商品管理.mdb;Persist Security Info=False"
Adodc1(xa).RecordSource = "select * from 二级分类 "
Adodc1(xa).Refresh
If Adodc1(xa).Recordset.RecordCount > 0 Then
Adodc1(xa).Recordset.MoveFirst
For xb(xa) = 1 To Adodc1(xa).Recordset.RecordCount
Combo_lr(xa).AddItem Adodc1(xa).Recordset.Fields("二级分类名称").Value
Adodc1(xa).Recordset.MoveNext
Next xb(xa)
End If
Case 3
Adodc1(xa).ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\商品管理.mdb;Persist Security Info=False"
Adodc1(xa).RecordSource = "select * from 三级分类 "
Adodc1(xa).Refresh
If Adodc1(xa).Recordset.RecordCount > 0 Then
Adodc1(xa).Recordset.MoveFirst
For xb(xa) = 1 To Adodc1(xa).Recordset.RecordCount
Combo_lr(xa).AddItem Adodc1(xa).Recordset.Fields("三级分类名称").Value
Adodc1(xa).Recordset.MoveNext
Next xb(xa)
End If
Case 4
Adodc1(xa).ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\商品管理.mdb;Persist Security Info=False"
Adodc1(xa).RecordSource = "select * from 四级分类 "
Adodc1(xa).Refresh
If Adodc1(xa).Recordset.RecordCount > 0 Then
Adodc1(xa).Recordset.MoveFirst
For xb(xa) = 1 To Adodc1(xa).Recordset.RecordCount
Combo_lr(xa).AddItem Adodc1(xa).Recordset.Fields("四级分类名称").Value
Adodc1(xa).Recordset.MoveNext
Next xb(xa)
End If
......略
case 0-4是通过5个adodc控件,调用商品管理.mdb数据库中的5个表,对应到窗体中的五个下拉列表框combobox。我的想法是每用一次adodc就得调用一次“商品管理.mdb”数据库,如何才能将这5次调用整合成一次调用,即将5 行一样的代码:
Adodc1(xa).ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\商品管理.mdb;Persist Security Info=False"
缩写成一行通用代码,供5 个adodc共同使用。
Private Sub Form_Load()
Dim xa As Long, xb(4) As Long
For xa = 0 To 4
Select Case xa
Case 0
Adodc1(xa).ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\商品管理.mdb;Persist Security Info=False"
Adodc1(xa).RecordSource = "select * from 商品名称 "
Adodc1(xa).Refresh
If Adodc1(xa).Recordset.RecordCount > 0 Then
Adodc1(xa).Recordset.MoveFirst
For xb(xa) = 1 To Adodc1(xa).Recordset.RecordCount
Combo_lr(xa).AddItem Adodc1(xa).Recordset.Fields("商品名称型号").Value
Adodc1(xa).Recordset.MoveNext
Next xb(xa)
End If
Case 1
Adodc1(xa).ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\商品管理.mdb;Persist Security Info=False"
Adodc1(xa).RecordSource = "select * from 一级分类 "
Adodc1(xa).Refresh
If Adodc1(xa).Recordset.RecordCount > 0 Then
Adodc1(xa).Recordset.MoveFirst
For xb(xa) = 1 To Adodc1(xa).Recordset.RecordCount
Combo_lr(xa).AddItem Adodc1(xa).Recordset.Fields("一级分类名称").Value
Adodc1(xa).Recordset.MoveNext
Next xb(xa)
End If
Case 2
Adodc1(xa).ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\商品管理.mdb;Persist Security Info=False"
Adodc1(xa).RecordSource = "select * from 二级分类 "
Adodc1(xa).Refresh
If Adodc1(xa).Recordset.RecordCount > 0 Then
Adodc1(xa).Recordset.MoveFirst
For xb(xa) = 1 To Adodc1(xa).Recordset.RecordCount
Combo_lr(xa).AddItem Adodc1(xa).Recordset.Fields("二级分类名称").Value
Adodc1(xa).Recordset.MoveNext
Next xb(xa)
End If
Case 3
Adodc1(xa).ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\商品管理.mdb;Persist Security Info=False"
Adodc1(xa).RecordSource = "select * from 三级分类 "
Adodc1(xa).Refresh
If Adodc1(xa).Recordset.RecordCount > 0 Then
Adodc1(xa).Recordset.MoveFirst
For xb(xa) = 1 To Adodc1(xa).Recordset.RecordCount
Combo_lr(xa).AddItem Adodc1(xa).Recordset.Fields("三级分类名称").Value
Adodc1(xa).Recordset.MoveNext
Next xb(xa)
End If
Case 4
Adodc1(xa).ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\商品管理.mdb;Persist Security Info=False"
Adodc1(xa).RecordSource = "select * from 四级分类 "
Adodc1(xa).Refresh
If Adodc1(xa).Recordset.RecordCount > 0 Then
Adodc1(xa).Recordset.MoveFirst
For xb(xa) = 1 To Adodc1(xa).Recordset.RecordCount
Combo_lr(xa).AddItem Adodc1(xa).Recordset.Fields("四级分类名称").Value
Adodc1(xa).Recordset.MoveNext
Next xb(xa)
End If
......略
case 0-4是通过5个adodc控件,调用商品管理.mdb数据库中的5个表,对应到窗体中的五个下拉列表框combobox。我的想法是每用一次adodc就得调用一次“商品管理.mdb”数据库,如何才能将这5次调用整合成一次调用,即将5 行一样的代码:
Adodc1(xa).ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\商品管理.mdb;Persist Security Info=False"
缩写成一行通用代码,供5 个adodc共同使用。