2013-11-01 229 views
1

是否有我可以使用的代码,通过它可以将交叉表查询导入到Excel中并将其链接到Excel中?将Access交叉表查询链接并导入到Excel中

目前,这些是我用来从交叉表查询中导入数据的步骤。 数据>>导入外部数据>>新建数据库查询>> MS Access数据源* >>浏览到我的数据库>>选择交叉表查询名称>>选择我想要的数据。

我需要链接查询,因为会有额外的信息输入。例如。本月是11月份,我需要将本月收到的数据输入系统。

回答

1

,而不是导入数据,在Excel中的:

  1. 从文件菜单中选择数据
  2. 选择访问对象(表或查询)您想从中提取数据。
  3. excel中的数据加载
  4. 无论何时您想更新数据,右键单击数据并选择刷新或选择刷新全部(如果存在多个链接)。

这假定数据库在每次和每次刷新时都处于相同的物理位置,您可以连接到此源。

enter image description here

0

我发现,你不能,如果后端数据库ACCDB文件

https://excelandaccess.wordpress.com/2013/07/26/how-to-import-access-data-to-excel-using-the-get-external-data-from-access-option/

访问“你应该在这里指出,虽然目前还无法导入交叉来自Access的查询,您可以将支持交叉表的数据作为数据透视表报告导入(毕竟,数据透视表基本上是Excel的Access Crosstab查询版本)。“

您必须导入源数据,然后创建一个数据透视表

0

但是你可以用VBA做到这一点:

Function ImportCrosstab(TheDB As String, TheCrosstab As String, TheSpreadsheet As String) 
'requires a reference to the Microsoft Office Access Database Engine 12.0 Object Library 
'e.g.ImportCrosstab "C:\Databases\Newdatabase.accdb", "Q_stage_crosstab", "CompliancebyStage" 

Dim db As Database 
Dim qdf As QueryDef 
Dim rs As Recordset 
Dim ws As Worksheet 
Dim strConnection As String 
Dim j As Long 
Dim xls As Object 'your Excel.Application with sheet activated 

Set ws = ThisWorkbook.Worksheets(TheSpreadsheet) 


Set db = OpenDatabase(TheDB) 
Set qdf = db.QueryDefs(TheCrosstab) 
Set rs = qdf.OpenRecordset 
With ws 
    For j = 0 To rs.Fields.Count - 1 
     .Cells(1, j + 1).Value = rs.Fields(j).Name 
    Next 
    .Range("A2").CopyFromRecordset rs 
End With 
rs.Close 
End Function 
1

出于某种原因,Excel将不会在本交叉表查询您可以选择的表/查询列表,但可以在没有VBA的情况下添加它,并且之后它将像更普通的表一样更新,但您必须在连接属性中键入一些基本的SQL。

指令是为Excel 2016 &不是在以前的版本进行测试。

  1. 创建在同一个Access数据库作为您的交叉表查询数据链接到不同的表或者查询(从平时的数据 - >从接入)。

  2. 点击在新表中所示的任何位置,从设计选项卡中单击属性以打开外部数据属性对话框。

  3. 选择旁边的小按钮“名称:”字段中,在右侧打开连接属性。

  4. 转到定义选项卡并更改命令类型为 “SQL”

  5. 输入SQL的基本位: SELECT YourCrossTabQueryName * FROM YourCrossTabQueryName

  6. 点击OK。

这应该刷新显示交叉表的表格。