根据参数从Access表导入到Excel
我试图创build一个模板,将利用来自Access表的数据,并允许用户selectExcel文件中的参数。 此表中的logging数量正在减慢Excel文件,并且我想减less根据用户select导入的数据量。
Access表将有三列:
部件号|行|目录代码
我想导入所有三列,但允许用户select基于目录代码导入的logging。
用户不具有对sql表的读取或写入权限,所以我在每天结束时运行Access查询以创build可以访问的Access表。
我有2007版本。 这种types的input可能吗?
提前致谢!
从Access到Excel示例。
Dim cn As Object Dim rs As Object Dim strFile As String Dim strCon As String Dim strSQL As String Dim s As String Dim i As Integer, j As Integer ''Access database strFile = "z:\docs\dbfrom.mdb" ''This is the Jet 4 connection string, you can get more ''here : http://www.connectionstrings.com/excel strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile & ";" ''Late binding, so no reference is needed Set cn = CreateObject("ADODB.Connection") Set rs = CreateObject("ADODB.Recordset") cn.Open strCon 'Rough idea intID = Sheet1.[A1] strSQL = "SELECT * " _ & "FROM Test " _ & "WHERE ID = " & intID rs.Open strSQL, cn, 3, 3 ''Pick a suitable empty worksheet for the results Worksheets("Sheet3").Cells(2, 1).CopyFromRecordset rs ''Tidy up rs.Close Set rs = Nothing cn.Close Set cn = Nothing
你可以做到这一点没有VBA,只是通过使用MS查询(在Office 2010中工作,我不能检查'07):
- 在Excel中转到数据function区,然后单击
From other sources
图标 - 单击
From Microsoft Query
- select
MS Access Database*
- 浏览并select您的数据库。
- 在向导中select您需要导入的列
- 在下一页上select您要过滤的列
- select你需要的filter的types,即
Equals
- 而不是在下一个框中select一个值input
[Parameter please Bob]
- input你在下一页进行sorting
- select
Return data to Microsoft Excel
并完成
MS Query会询问您的参数,然后Excel会询问您如何以及在哪里需要数据。 并且您的过滤的数据将出现。
现在,每次刷新数据时,都会再次询问参数,以便您轻松更改。
如果您不想要“编程”答案,请在superuser.com上询问