在MS查询编辑器“Excel”中显示所有表

时间:2010-01-14 06:37:10

标签: excel-vba excel ms-access database vba

通过Excel 2003 vba我通过这种方法建立了dsn连接

Sub CreateDataSourceFile()
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set txtfile = fso.CreateTextFile("C:\program files\Common Files\ODBC\Data Sources\" & Me.cnnName & ".dsn", True)
    txtfile.WriteLine ("[ODBC]")
    txtfile.WriteLine ("DBQ=" & Me.DBFolderName)
    txtfile.WriteLine (Me.DBFolderName)
    txtfile.WriteLine ("DefaultDir=C:\")
    txtfile.WriteLine ("Driver={Driver do Microsoft Access (*.mdb)}")
    txtfile.WriteLine ("DriverId = 25")
    txtfile.WriteLine ("FIL=MS Access")
    txtfile.WriteLine ("MaxBufferSize = 2048")
    txtfile.WriteLine ("MaxScanRows = 8")
    txtfile.WriteLine ("PageTimeout = 5")
    txtfile.WriteLine ("SafeTransactions = 0")
    txtfile.WriteLine ("Threads = 3")
    txtfile.WriteLine ("UserCommitSync = Yes")
    txtfile.WriteLine ("[Microsoft Office]")
    txtfile.WriteLine ("DefaultTable =" & Me.cnnName)
    txtfile.Close
End Sub

现在的问题是,为我的连接打开Microsoft Query编辑器时,它会自动将默认表添加到编辑器中,我需要的是自动添加数据库中的所有表吗?

这可用吗?! 有没有办法通过编辑dsn文件来做到这一点?

任何方式,如果有人可以帮助我,我会感谢他的全部。

度过愉快的一天。谢谢你的阅读,

1 个答案:

答案 0 :(得分:0)

您可以通过控制面板设置ODBC数据连接:

开始>控制面板>管理工具>数据源(ODBC)

单击“系统DSN”选项卡,然后单击“添加”。选择驱动程序(取决于您拥有的数据库提供程序),然后它会询问您相关信息 - 您要为数据连接提供的名称,服务器名称,身份验证类型等 - 它将引导您完成这个过程。

设置ODBC数据连接后,可以调用Excel的查询编辑器并告诉它连接的名称。我正在使用Excel 2007,但我认为这是如何在2003年实现这一目标:

数据>导入外部数据>新数据库查询

然后它将允许您选择之前创建的ODBC数据源。

进入查询编辑器后,您将能够看到您有权访问的所有表格。

我对你的追求并不完全清楚。这有帮助吗?如果没有,请提供一些有关您如何获取数据的详细信息。