Office中国论坛/Access中国论坛

标题: 请教:执行如下代码出现错误(有截图) [打印本页]

作者: dorenmi    时间: 2014-12-23 09:16
标题: 请教:执行如下代码出现错误(有截图)
Option Compare Database
Sub ShowUserRosterMultipleUsers()
    Dim cn As New ADODB.Connection
    Dim cn2 As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim i, j As Long

    cn.Provider = "Microsoft.Jet.OLEDB.4.0"
    cn.Open "Data Source=c:\Northwind.mdb"

    cn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;" _
             & "Data Source=c:\Northwind.mdb"

    'cn.Provider = "Microsoft.Jet.OLEDB.4.0"
    'cn.Open "Data Source=c:\Northwind.mdb"

    'cn2.Open "provider=Microsoft.Jet.OLEDB.4.0;" _
     '& "Data Source=c:\Northwind.mdb"

    Set rs = cn.OpenSchema(adSchemaProviderSpecific, _
                           , "{947bb102-5d43-11d1-bdbf-00c04fb92675}")

    Debug.Print rs.Fields(0).Name, "", rs.Fields(1).Name, "", rs.Fields(2).Name, "", rs.Fields(3).Name

    While Not rs.EOF
        Debug.Print rs.Fields(0), rs.Fields(1), rs.Fields(2), rs.Fields(3)
        rs.MoveNext
    Wend
End Sub


[attach]55262[/attach]



作者: roych    时间: 2014-12-23 10:11
本帖最后由 roych 于 2014-12-23 11:11 编辑

好吧,我承认,ADO的这个方法我很少用。但是,据我所知,应该是你漏写参数了:
  1.    Set rs = cn.OpenSchema(adSchemaProviderSpecific,, "{947bb102-5d43-11d1-bdbf-00c04fb92675}")
复制代码

当QueryType由数据库引擎指定时,应该指定GUID,根据参数顺序的话,GUID是最后一个参数。为了避免出错,也可以这样写:
  1. Set rs = cn.OpenSchema(schema:=adSchemaProviderSpecific, schemaID:="{947bb102-5d43-11d1-bdbf-00c04fb92675}")
复制代码

作者: admin    时间: 2014-12-23 10:18
你看看是否在
cn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;" _
             & "Data Source=c:\Northwind.mdb"

在这句出错,如果这句出错,可能是数据库格式 或OLEDB驱动有问题
作者: dorenmi    时间: 2014-12-23 10:38
本帖最后由 dorenmi 于 2014-12-23 10:44 编辑
admin 发表于 2014-12-23 10:18
你看看是否在
cn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;" _
             & "Data Source=c:\Northwi ...

出错在 cn.Open "Data Source=c:\Northwind.mdb"这行了
另外:请问,格式出错什么概念?
我是将"罗斯文.accbd" 改名为“Northwind.mdb”后,拷贝到c盘下的

作者: dorenmi    时间: 2014-12-23 10:42
roych 发表于 2014-12-23 10:11
好吧,我承认,ADO的这个方法我很少用。但是,据我所知,应该是你漏写参数了:

当QueryType由数据库引擎 ...

试着改成你的语句,但执行还是在下面语句就出问题了
cn.Open "Data Source=c:\Northwind.mdb"
作者: roych    时间: 2014-12-23 11:12
本帖最后由 roych 于 2014-12-23 11:13 编辑

怎么会呢?如果出错,你应该重装office了^_^
[attach]55263[/attach]
此外,如果没别的需要,建议还是打开一个数据连接要好一些,毕竟引用的都是同一个文件。

作者: dorenmi    时间: 2014-12-23 11:21
roych 发表于 2014-12-23 11:12
怎么会呢?如果出错,你应该重装office了^_^

此外,如果没别的需要,建议还是打开一个数据连接要好一些 ...

头痛啊   我在试试~~~
谢谢roy!
作者: 风中漫步    时间: 2014-12-23 14:06
本帖最后由 风中漫步 于 2014-12-23 14:11 编辑

那个.acc用你的连接是打不开的.你得费点工夫去找点资料,这个格式好象要用NET级的,我多年不用ACC,说不到点上,给你些建议吧:看你的引用中有更高级的ADO吗;装个ACCESS RUNTIME 2007试试
作者: accessir    时间: 2014-12-24 12:42
dorenmi 发表于 2014-12-23 10:38
出错在 cn.Open "Data Source=c:\Northwind.mdb"这行了
另外:请问,格式出错什么概念?
我是将"罗斯文 ...

出错在 cn.Open "Data Source=c:\Northwind.mdb"这行了
另外:请问,格式出错什么概念?
我是将"罗斯文.accbd" 改名为“Northwind.mdb”后,拷贝到c盘下的

这样改名
作者: dorenmi    时间: 2014-12-25 10:02
风中漫步 发表于 2014-12-23 14:06
那个.acc用你的连接是打不开的.你得费点工夫去找点资料,这个格式好象要用NET级的,我多年不用ACC,说不到点上 ...

谢谢指点~~~




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3