Private function tblExit(str as string) as boolean
on error resume next
Dim db As Database
Dim rs As Recordset
Set db = OpenDatabase("F:\download\ENGINE3\gz.mdb", False, False)
Set rs = db.OpenRecordset("line", dbOpenTable)
tblExit = false
if err.number=3011 then tblExit=true
End function
on error resume next
Dim db As Database
Dim rs As Recordset
Set db = OpenDatabase("F:\download\ENGINE3\gz.mdb", False, False)
Set rs = db.OpenRecordset("line", dbOpenTable)
tblExit = false
if err.number=3011 then tblExit=true
End function
2.ado 2.5
好多朋友在用VB6开发基于Access的数据库时,如果用Access97,那一般不会有什么问题,无论使用基本数据控件、RDC、DAO还是ADO,只需按照一般方法就可以很方便的连接到MDB文件。可是,如果你用Access2000,问题可能会出现--电脑告诉你无法识别数据库格式!为什么呢?
遇到这种情况,一般会有两种情况。
如果你想用Data Control,那笔者建议还是放弃吧,它对Access2000的数据库支持的不好,或者说基本不支持,所以,请考虑DAO或ADO。
如果你用DAO或ADO,那请先检查你的Visual Basic 6的版本,如果你没有安装过Visual Studio SP3,那请赶快安装吧!SP3会将你的ADO升级到2.0版本以上;同时,安装Office 2000后,ODBC中的许多数据库驱动程序也会被升级,Microsoft Access的驱动程序将升级到4.0--这些可是通过ODBC连接Access2000数据库的基本保障啊。
前面所讲述的情况是基于Windows 9x和Windows NT的,假使你已安装了Windows 2000,那么恭喜你,你的ODBC已经是最新版本了(比在WIndows NT 4.0 + SP4 + Office2000还要新!)。你只要在编程是注意以下事项即可以正确连接到Access2000的MDB了。
以ADO为例,我们添加Microsoft ADO Data Control 6.0 (OLEDB)和Microsoft DataGrid Control 6.0 (OLEDB)控件到工程。我们使用OLEDB直接连接到数据库,其中关键是ADO的参数设定:
ADO的ConnectString中的Data Source当然是你的数据库的路径,Provider是最重要的,你必须写Microsoft.Jet.OLEDB.4.0。4.0是重点,只有它才可以让你成功访问Access2000!
如果使用ODBC,那只要Microsoft Access Driver的版本在4.00.xxxx以上,应该没有问题的。
如果你用ADODB对象,那可以照以下代码写:
Dim adoRS as New ADODB.Recordset
Dim strConn As String
Dim strSQL As String
Dim strDataFile As String
Dim strTableName As String
strConn = "Data Source=" & strDataFile & ";Provider=Microsoft.Jet.OLEDB.4.0"
'其它参数可以根据情况选用
strSQl = "Select & from " & strTableName
adoRS.Open strSQl, strConn
...
adoRS.Close
Set adoRS=Nothing
以上的示例是直接打开数据库,无须任何DSN。
现在你该可以自如地使用VB6访问Access2000数据库了。小屠最后还要建议大家:抛弃Data Control、RDO或DAO吧,ADO才是我们的最佳选择--无论你访问本机、网络数据库,ADO都是最快捷、安全的选择!
Test
End SubSub Test() Dim cat As New ADOX.Catalog
Dim i As Integer
cat.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:db1.mdb"
For i = 0 To cat.Tables.Count - 1
Debug.Print cat.Tables(i).Name
Next i
Set cat = NothingEnd Sub