一个ado连接access数据库问题

时间:2021-05-06 21:42:52
我上个星期开始学vba,在用ado连接access数据库的时候出现问题,在我在引用中选中一些ado用的引用,点确定时,经常会出现名称与现有的模块,工程,对象冲突。不知道什么回事?还有什么可以连这个数据库的。向大家学习。

7 个解决方案

#1


已经有了相似的ado引用,所以会冲突,把已经有的相似的ado引用去掉就可以了

#2


我是做pb的最近想看看vba,谢谢你回我的http://topic.csdn.net/u/20090722/08/ca98e749-3ea5-44c1-9878-b6c7cf758927.html?45483这个贴,我不知道ado连access数据库要用那些引用,像我选中Microsoft Activex objects 2.1选完之后,在打开这个还是没有选中,不知道怎么回事?
*********************************************************************************


还是这个原因“已经有了相似的ado引用,所以会冲突,把已经有的相似的ado引用去掉就可以了”

Microsoft Activex data objects
系列只能选一个 

#3


引用 1 楼 jhone99 的回复:
已经有了相似的ado引用,所以会冲突,把已经有的相似的ado引用去掉就可以了


支持

#4


ADO的动态库有好几个,记得的有2.5, 2.6, 2.7, 2.8,这几个里面你只能选一个。

如果你还不确定,可以把你的引用贴图上来给大家看一下。

#5


楼上正解

#6


   以前没有发现
    还有这么多问题?

#7



Sub total() 'ADO实例
 Dim sql As String

Set x = CreateObject("ADODB.connection")
Set yy = CreateObject("ADODB.recordset")

  x.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;';Data Source=" & ThisWorkbook.FullName
   sql = "select 名称,规格,客户, Sum(数量) as 数量 from [记录表$] Group by 名称,规格,客户"
  ' MsgBox Sql
   yy.Open sql, x, 1, 1
   Range("A1").CopyFromRecordset yy
   '-----------以上方法从记录里复制出来.--------------------------
   
   '-----------以下方法从记录里一条一条导出来.--------------------
  ' i = 7
   'Do While Not yy.EOF
   'Sheets(2).Range("A" & i) = yy("名称")
   'Sheets(2).Range("B" & i) = yy("规格")
   'Sheets(2).Range("C" & i) = yy("单位")
   'Sheets(2).Range("G" & i) = yy("数量")
   'If yy("客户") = Sheets(2).Range("G" & 4).Value Then Sheets(2).Range("G" & i) = yy("数量")
   'If yy("客户") = Sheets(2).Range("H" & 4).Value Then Sheets(2).Range("H" & i) = yy("数量")
   'i = i + 1
   ' yy.movenext
  ' Loop
    yy.Close
    x.Close
Set yy = Nothing
Set x = Nothing
MsgBox "记录查询完毕!"
End Sub

#1


已经有了相似的ado引用,所以会冲突,把已经有的相似的ado引用去掉就可以了

#2


我是做pb的最近想看看vba,谢谢你回我的http://topic.csdn.net/u/20090722/08/ca98e749-3ea5-44c1-9878-b6c7cf758927.html?45483这个贴,我不知道ado连access数据库要用那些引用,像我选中Microsoft Activex objects 2.1选完之后,在打开这个还是没有选中,不知道怎么回事?
*********************************************************************************


还是这个原因“已经有了相似的ado引用,所以会冲突,把已经有的相似的ado引用去掉就可以了”

Microsoft Activex data objects
系列只能选一个 

#3


引用 1 楼 jhone99 的回复:
已经有了相似的ado引用,所以会冲突,把已经有的相似的ado引用去掉就可以了


支持

#4


ADO的动态库有好几个,记得的有2.5, 2.6, 2.7, 2.8,这几个里面你只能选一个。

如果你还不确定,可以把你的引用贴图上来给大家看一下。

#5


楼上正解

#6


   以前没有发现
    还有这么多问题?

#7



Sub total() 'ADO实例
 Dim sql As String

Set x = CreateObject("ADODB.connection")
Set yy = CreateObject("ADODB.recordset")

  x.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;';Data Source=" & ThisWorkbook.FullName
   sql = "select 名称,规格,客户, Sum(数量) as 数量 from [记录表$] Group by 名称,规格,客户"
  ' MsgBox Sql
   yy.Open sql, x, 1, 1
   Range("A1").CopyFromRecordset yy
   '-----------以上方法从记录里复制出来.--------------------------
   
   '-----------以下方法从记录里一条一条导出来.--------------------
  ' i = 7
   'Do While Not yy.EOF
   'Sheets(2).Range("A" & i) = yy("名称")
   'Sheets(2).Range("B" & i) = yy("规格")
   'Sheets(2).Range("C" & i) = yy("单位")
   'Sheets(2).Range("G" & i) = yy("数量")
   'If yy("客户") = Sheets(2).Range("G" & 4).Value Then Sheets(2).Range("G" & i) = yy("数量")
   'If yy("客户") = Sheets(2).Range("H" & 4).Value Then Sheets(2).Range("H" & i) = yy("数量")
   'i = i + 1
   ' yy.movenext
  ' Loop
    yy.Close
    x.Close
Set yy = Nothing
Set x = Nothing
MsgBox "记录查询完毕!"
End Sub