Excel中:运行时错误13类型不匹配
我得到运行时错误“13”在然后结束这个代码,即使我尝试的代码Excel中:运行时错误13类型不匹配
Public Property Get cnnString() As String
'old: strcnnString = "OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin;Data Source=" & Me.DBFolderName & ";Mode=Share Deny Write;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False"
'strcnnString = "OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin;Data Source=" & Me.DBFolderName & ";Mode=Share Deny Write;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False"
'new code before edits: strcnnString = "OLEDB;Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=" & folder_name & ";Mode=Share Deny None;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False "
strcnnString = "OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin;Data Source=" & Me.DBFolderName & ";Mode=Share Deny Write;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False"
cnnString = strcnnString
End Property
这里的注释行之间的切换的其余部分代码
Private strcnnString As String
Private folder_name As String
Public Property Get DBFolderName() As String
DBFolderName = folder_name
End Property
Public Property Let DBFolderName(ByVal newvalue As String)
folder_name = newvalue
End Property
'calling the property which rais the error
With ActiveSheet.QueryTables.Add(Connection:=Array(Me.cnnString), Destination:=Range("A1"))
任何解决方案,请?
我会怀疑你的连接字符串,这里是看的好去处:http://www.connectionstrings.com/excel-2007
或者试试:
strcnnString = "Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin;Data Source=" & Me.DBFolderName & ";"
编辑再评论
我不太清楚我给你弄,但也许你的意思是:
strcnnString = "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=" & Me.DBFolderName & ";"
编辑更多注意事项
我不能完全明白你为什么要使用阵列(cnnString),怎么样:
ActiveSheet.QueryTables.Add Connection:=cnnString, Destination:=Range("A1")
您提供的strcnnString值解决了这个问题,但提出了其他问题:运行错误“1004”“应用程序定义或对象定义的错误” 我的问题在这里是我切换代码从与2007年的Excel 2007工作到2003年的工作,因为没有在Excel 2007中的连接,所以我使用了queryTable对象,而现在我的问题是如何替换连接字符串,旧的问题与“旧:”前缀,比你支持 – 2010-01-11 14:38:52
我已经增加了一个笔记。 – Fionnuala 2010-01-11 15:24:01
同样的错误提高 – 2010-01-11 15:44:37
QueryTables.Add可以接受一些事情,但我不确定数组是否是其中之一,你可以尝试将它传递给连接字符串而不将它放入数组中。
你能确定Me.DBfolderName返回一个字符串类型 - 以及什么线例如使属性调用你正在返回它接受一个字符串。 – Andrew 2010-01-11 13:30:37
我编辑的问题作为您的意见回答 – 2010-01-11 15:43:44