收录日期:2018/08/17 09:51:55 时间:2016/05/20 23:29:59 标签:数据库(包含打印,安装,报表)
使用DATA控制怎样连接ACCESS数据库呀,我定义了DB AS DATA变量,使用DB.DATABASENAME属性就报错,说是控件变量没有引用,要怎样引用呀.最好能给我完整的数据库连接代码
data控件是属于dao的范畴

如果没装vbsp5,data控件只能连接access97,不支持access 2000

解决办法:
办法一:建议你安装VBSP5

办法二:你可以把数据库转化为ACCESS97

办法三:用ADODC控件连接ACCESS2000数据库

办法四:用ADO连接字符串连接数据库
建议用ado连接


工程--->引用--->Microsoft ActiveX Data Object 2.x(版本号)

    Dim CN   As New ADODB.Connection                '定义数据库的连接
    Dim Rs   As New ADODB.Recordset

    CN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\NWIND.MDB;Persist Security Info=False"
    CN.Open

    Rs.CursorLocation = adUseClient
    Rs.Open "select * from employees", CN, adOpenDynamic, adLockBatchOptimistic

    Set DataGrid1.DataSource = Rs
如果你非要用dao可以看这个例子(来源:msdn)
Option Explicit
Private daoDB36 As Database
Private rs As Recordset
Dim sPath As String

Private Sub Form_Load()
    sPath = _
    "C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb"
    Set daoDB36 = DBEngine.OpenDatabase(sPath)
    Set rs = daoDB36.OpenRecordset("Customers")
    Set Data1.Recordset = rs
End Sub


另外,建议使用ado,如果不喜欢直接用ado对象,可以使用adodc控件

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon98/html/vbconIntrnscDataCtrlAndAccess2000.asp
Option Explicit
Dim db As Database, rs As Recordset

Sub Main()
   Pro1.frmMDI.Show
   Set db = DBEngine.OpenDatabase(App.Path & "\db.mdb")
   Set rs = Conn.OpenRecordset("user")
   Set Data1.Recordset = rs
End Sub

SP5补丁打过了
错误:data1变量未定义
     rs变量类型不匹配
     data1要求对象

高手指教!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
还是用ADO吧,毕竟ADO比DAO的功能强大不少.
引用 DAO 3.6

没有 data1控件
建议用Ado吧,也是微软推荐的方式

工程--->引用--->Microsoft ActiveX Data Object 2.x(版本号)

    Dim CN   As New ADODB.Connection                '定义数据库的连接
    Dim Rs   As New ADODB.Recordset

    CN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\NWIND.MDB;Persist Security Info=False"
    CN.Open

    Rs.CursorLocation = adUseClient
    Rs.Open "select * from employees", CN, adOpenDynamic, adLockBatchOptimistic
    msgbox Rs.Recordcount
Public db As Database
Public rs As Recordset

Set db = OpenDatabase(App.Path & "\txl.mdb")
Set rs = db.OpenRecordset("select * from table" )
用ADO 比较好,
知道了

但是我要弄明白DAO的连接.....

怎样引用DAO,  如果定义rs变量类型为recordset时,运行出错:数据类型不匹配.定义为object类型时可以通过.

我打了SP5的补丁,可还是不能连接ACCESS2000,为什么.
工程--->引用--->Microsoft ActiveX Data Object 2.x(版本号)
如果定义rs变量类型为recordset时,运行出错:数据类型不匹配,
这个问题以前我也遇到过,工程--->引用里要选择适当,用到的要选全.用不到的不要选上,或者调整一下优先级.


to moonlight007(离人影) :

引用DAO


工程--->引用--->Microsoft Dao 3.6 Object library

dim db As Database
dim rs As Recordset
知道如何引用了, 但以上问题并没有得到解决

to moonlight007(离人影) :

引用DAO


工程--->引用--->Microsoft Dao 3.6 Object library

dim db As Database
dim rs As Recordset

引用里哪些是应当先的, 哪些的优先级高呢.........
有些引用是默认的,默认的引用一般不要修改。没有优先级吧!
好了修改了引用recordset类型定义不会出错了

可是在set data1.recordset=rs的时候报错误: 要求对象

这是什么问题呢, data1的变量类型应怎样定义呢???????/
设置一下DATABASENAME的属性:
       datasource属性
       recordsource属性
还是用ADO控件吧 这个控件的功能也较强大的。
知道了ADO控件我也较熟一些

但我就搞不懂这个data1从哪里冒出来.楼上说设置databasename这些属性我也设置过
报错: 实时错误"424"
      要求对象