用adodc控件时,速度特别慢,而且如果一个页面即有datagrid又有datacombo,那么可能需要好几个adodc控件,这时对程序非常不好。
microsoft公司推荐用ado编程,那是适合各种语言。
对于VB+Access则是下面这种方法。
在mudules中定义
Public cn As New ADODB.Connection '牢记最后要用到 cn.Close
Public rs1 As New ADODB.Recordset
Public rs2 As New ADODB.Recordset
Public rs1 As New ADODB.Recordset
Public rs2 As New ADODB.Recordset
然后,在form_load中打开
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=db1.mdb"
If rs1.State <> adStateClosed Then rs1.Close
rs1.CursorLocation = adUseClient'如果与datagrid使用,此句非常重要
rs1.Open "select * from 品种", cn, adOpenKeyset, adLockOptimistic
If rs1.State <> adStateClosed Then rs1.Close
rs1.CursorLocation = adUseClient'如果与datagrid使用,此句非常重要
rs1.Open "select * from 品种", cn, adOpenKeyset, adLockOptimistic
此时打开数据库的操作即完成,如果与datagrid相链接,则
Set DataGrid1.DataSource = rs1
如果与datacombo相链接,则
Set DataCombo2.RowSource = rs1
DataCombo1.ListField = "字段名" '很重要,不要用set
DataCombo1.ListField = "字段名" '很重要,不要用set
记得最终结束程序时:
rs1.close
cn.close