根据参数从Access表导入Excel

时间:2011-12-12 14:29:48

标签: excel ms-access import excel-2007

我正在尝试创建一个模板,该模板将利用Access表中的数据,并允许用户在Excel文件中选择参数。此表中的记录数量正在减慢Excel文件的速度,我希望减少根据用户选择导入的数据量。

Access表格有三列:
零件号|行|目录代码

我想导入所有三列,但允许用户根据目录代码选择导入的记录。

用户没有对sql表的读或写权限,因此我在每天结束时运行Access查询以创建他们可以访问的Access表。

我有2007版本。这种类型的导入是否可行?

提前致谢!

2 个答案:

答案 0 :(得分:3)

您可以在没有VBA的情况下执行此操作,只需使用MS Query(在Office 2010中工作,我无法检查'07):

    在Excel中
  • 转到数据功能区并单击From other sources图标
  • 点击From Microsoft Query
  • 选择MS Access Database*
  • 浏览并选择您的数据库。
  • 向导中的
  • 选择您需要导入的列
  • 在下一页上选择要在
  • 上过滤的列
  • 选择所需的过滤器类型,即Equals
  • 而不是在下一个框中选择一个值,请输入 [Parameter please Bob]
  • 输入您在下一页排序
  • 选择Return data to Microsoft Excel并完成

MS Query会询问您参数,然后Excel将询问您希望数据的方式和位置。并显示您的过滤数据。

现在每次刷新数据时,都会再次询问参数,因此您可以轻松更改它。

P.S。如果您不想要“编程”答案,请在superuser.com

上询问

答案 1 :(得分:2)

从Access to 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