Excel调用ACCESS的VBA代码怎么写

在EXCEL中导入了从ACCESS的数据,VBA中的代码:
selectSql ="select * from `E:\Text\COP_Tool`.`ls_dpdm` where storecode='" & store & "' and subcode=(select min(subcode) from `E:\Text\COP_Tool`.`ls_dpdm` a where a.storecode=storecode and a.dept+a.itemcode=dept+itemcode)"
Sheets("Sheet1").QueryTables(1).Connection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Text\COP_Tool.mdb;Persist Security Info=False"
Sheets("Sheet1").QueryTables(1).Sql = selectSql
Sheets("Sheet1").QueryTables(1).Refresh BackgroundQuery:=False

运行出错‘1004’,该怎么写才能将前台的数据更新为后台的SQL

第1个回答  2013-07-02

提供一种在EXCEL使用代码,连接ACCESS,取得数据的方法,看是不是你要的东西:


Sub AC()
Dim cnn As New Connection
Dim rs As New Recordset
Dim sql As String
Dim qx As String
qx = "金牛"
cnn.Open "Provider=Microsoft.Ace.OleDB.12.0;dataSource=" & ThisWorkbook.Path & "\数据库.accdb"
sql = "select * from [宏站] where 区域='"& qx & "'"
 
'('" & qx & "'")括号里这段有点BT,一定要这样写才行。
rs.Open sql, cnn
 
[a1].CopyFromRecordset rs
 
EndSub

本回答被提问者采纳
第2个回答  推荐于2018-05-31
你这个使用太高端了。。如果是SQL我还能告诉你怎么去调用。。ACCESS是微软旗下的简易数据库处理软件。。这样的功能貌似不支持。。一般都是在SQL数据库里面弄好了提取成ACCESS。。本回答被网友采纳
第3个回答  2018-05-30
Sub ExcelToAccess()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim i, j, k, r, t As Long
Dim data As Variant
Dim A(), B() As Long
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "test.mdb"
Set rs = New ADODB.Recordset
rs.Open "学生表, cn, adOpenKeyset, adLockOptimistic, adCmdTable
if not rs.EOF then
debug.print rs.fields("xuehao")
end if
相似回答