我必须将Microsoft Access查询导入Excel。
导入问题是Microsoft Access查询需要两个输入参数,即当月和上个月。
根据输入,Access查询将从符合条件的表中选择某些值,然后仅对这些值进行某些计算。
如果我在Excel中使用导入功能,则会收到一条错误消息,指出需要两个输入但未提供。
任何帮助将不胜感激。
谢谢!
MS Access sql代码与此类似:
Select
table1.value,
table2.value,
table1.value * table2.value as product,
From(
select *
(from table 1 where date = current month)
inner join
select *
(from table 2 where date = previous month))
(当前和上个月是弹出输入变量)
答案 0 :(得分:0)
Access查询对象不能具有动态参数。 Excel将必须提供条件。以下是Excel从Access提取数据的示例。
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn.Open ""Provider=Microsoft.ACE.OLEDB.12.0; Data Source='C:\Users\June\LabData.accdb'"
strStateNum = InputBox("Enter State Number", "State Number")
rs.Open "SELECT * FROM GeoDataAll WHERE StateNum='" & strStateNum & "';", cn, adOpenStatic, adLockReadOnly
代替InputBox,可以引用单元格来提供参数。
您在Excel中的查询,例如:
rs.Open "SELECT Q1.*, field1 * field2 AS Product FROM (" & _
"(SELECT * FROM table1 WHERE [date] = " & cell for current month & ") AS T1 " & _
"INNER JOIN " & _
"(SELECT * FROM table2 WHERE [date] = " & cell for previous month & ") AS T2 " & _
"ON T1.ID=T2.ID) " & _
"AS Q1;", cn, adOpenStatic, adLockReadOnly
然后使用CopyFromRecordset方法将数据写入工作表中的某个区域。