2010-02-01 143 views
1

在Access数据库中,我有一个查询表,当表单被打开和编辑时,它被链接到一个表单。访问查询到Excel电子表格

如何将此查询表链接到Excel,以便当我单击Access窗体中的按钮时,Excel中的电子表格将打开,显示Access查询表中的所有项目,然后用户可以根据需要编辑电子表格。

所有在Access/Excel 2003中

回答

0

(我使用的是2007年,但同样适用) 在按钮的Click事件(使用代码生成器,而不是宏),代码

Shell "excel.exe " & Chr(34) & "C:\FullPathToYourFile\file.xls" & Chr(34), vbMaximizedFocus

会做到这一点,虽然不雅。缺少chr(34)与其中包含空格的路径或文件名断开,虽然用'包装路径应该可以工作,但它不在我的2007版本中。

我不熟悉如何在宏中完成它,或者如果可能的话。

1

FollowHyperlink可以打开任何类型的文档,其注册申请的有效途径:

FollowHyperlink "C:\SomeDir\BookX.xls" ''Excel 
FollowHyperlink "C:\SomeDir\" ''Explorer 
FollowHyperlink "mailto:[email protected]" ''Default email 

更多:http://msdn.microsoft.com/en-us/library/aa204494%28office.10%29.aspx

如果你想处理Excel文件已打开后,它可能是最好的使用自动化:

Dim strFileName As String 
    Dim objXL Object 
    Dim wkb As Object 

    ''New instance, GetObject for existing instance 
    Set objXL = CreateObject("Excel.Application") 
    objXL.Visible = True 

    strFileName = "C:\Docs\LTD.xls" 
    Set wkb = objXL.Workbooks.Open(strFileName) 

    ''Do stuff 

    ''Give control to user 
    objXLS.UserControl = True 
+1

呃,这看起来像一个后期绑定代码片段不完全重写使用早期绑定。通过引用,您不需要CreateObject语句 - 而是使用New关键字(无论是在变量声明中还是在Set语句中)。对于后期绑定(即不需要引用),您可以保留CreateObject并将“As Excel.Application”和“As Excel.Workbook”替换为“As Object”。 – 2010-02-01 21:15:35