将access数据库链接到excel(不导入整个表)

将access数据库链接到excel(不导入整个表),excel,ms-access,vba,Excel,Ms Access,Vba,有没有办法将Access数据库中的表链接到Excel而不导入整个表?我需要引用/查找Access表格中的单元格,但不想将整个表格导入excel工作簿(表格太大) 我的第二个选择是将Access表导出到一个单独的excel工作簿中,然后只引用这个新工作簿而不是Access数据库本身。当我尝试这样做时,任何Access表中只有大约65000行数据实际导出到Excel,因为其余的“无法复制到剪贴板”。有没有一个简单的方法?(我想在excel/access文件之间建立连接,以便数据可以刷新,而不仅仅是复

有没有办法将Access数据库中的表链接到Excel而不导入整个表?我需要引用/查找Access表格中的单元格,但不想将整个表格导入excel工作簿(表格太大)


我的第二个选择是将Access表导出到一个单独的excel工作簿中,然后只引用这个新工作簿而不是Access数据库本身。当我尝试这样做时,任何Access表中只有大约65000行数据实际导出到Excel,因为其余的“无法复制到剪贴板”。有没有一个简单的方法?(我想在excel/access文件之间建立连接,以便数据可以刷新,而不仅仅是复制和粘贴行)

请参阅这篇古老的文章,它应该可以帮助您获得实际需要的数据,而不是所有数据:


尝试以下脚本。这会给你你想要的

Option Compare Database

Private Sub Command0_Click()

Dim InputFile As String
Dim InputPath As String

InputPath = "C:\your_path_here\Desktop\"
InputFile = Dir(InputPath & "*.xlsx")

Do While InputFile <> ""

    DoCmd.TransferSpreadsheet acLink, , InputFile, InputPath & InputFile, True '< The true is for column headers
    InputFile = Dir
Loop


End Sub
选项比较数据库
专用子命令0_单击()
Dim InputFile作为字符串
将输入路径设置为字符串
InputPath=“C:\your\u path\u here\Desktop\”
InputFile=Dir(InputPath&“*.xlsx”)
在输入文件“”时执行此操作
DoCmd.TransferSpreadsheet acLink,InputFile,InputPath&InputFile,True'
您可以使用Excel中的Access数据库表,而无需将表导入Excel工作表:

Dim cnn As ADODB.Connection  ' Needs a reference to the Microsoft ActiveX                         
Dim rs  As ADODB.Recordset   ' Data Objects Library

Set cnn = CreateObject("ADODB.Connection") 
cnn.Open "DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=database-path\Data.accdb;"
Set rs = cnn.Execute("SELECT * FROM MyTable")
While Not rs.EOF
  Debug.Print rs(1)
  rs.MoveNext
Wend

如果您在x64操作系统上使用x86 Access版本,您可能需要安装,并且应使用/passive选项安装。

是的,有一种方法可以将MS Access数据库与Excel连接起来。请参阅:@MaciejLos当我这样做时,我尝试导入的表不会作为选项来选择(我相信是因为它们是链接表?),使用excel工作表作为链接表是非常漂亮的,原因有很多。虽然我会考虑数据完整性和风险的不良数据之前,走这条路线-或有一个像样的验证似乎坐在超过65000行后2007。我测试了24万行。这是可能的。“但是需要很长时间。”艾希礼看到了我的答案。