2009-07-28 87 views
0

我有一个ms-access数据库和其中的多个ODBC链接表。由于我有2套ODBC数据库,一套用于生产,另一套用于开发,它们有不同的名称开发和生产。如何检索ms-access VBA中的表的odbc数据库名称

如何使用VBA获取链接表的odbc信息?

+0

你需要什么ODBC信息?这决定了哪种方法将是最有效的。 – 2009-07-28 22:14:43

回答

0

使用表的本地名称,可以查询表的外部名称的MSysObjects系统表(通常隐藏)。

SELECT MSysObjects.ForeignName 
FROM MSysObjects 
WHERE (((MSysObjects.Name)="LocalTableName")); 

如果您需要有关外表的更多信息,请尝试解析同一个表中的“连接”列。

+0

官方不支持使用系统表,因此可以说是不安全的,例如他们可能会在未来版本中更改。我在Access2007 ACE.accdb文件上试过这个,得到了错误,“记录无法读取;'MSysObjects'没有读取权限。”考虑到.accdb格式的用户级安全已被删除,是否有解决方法? – onedaywhen 2009-08-01 14:06:09

0

实际上,您可以使用ODBC连接到.mdb文件,就好像它是Access数据库一样。链接表将显示在该ODBC连接中,并且可以以完整的ODBC速度访问。

这样做的好处是你的程序甚至不需要知道表是否链接表。将所有这些系统管理员级别的详细信息包含在一个地方很好。

0

我通常的方法来确定源是重命名表,就像你本地表。我可以添加一个后缀或前缀,如tblTrombone_DEVtblTrombone_PROD

相关问题