Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 如何在ms access VBA中检索表的odbc数据库名称_Ms Access_Odbc - Fatal编程技术网

Ms access 如何在ms access VBA中检索表的odbc数据库名称

Ms access 如何在ms access VBA中检索表的odbc数据库名称,ms-access,odbc,Ms Access,Odbc,我有一个ms access数据库和几个ODBC链接表 由于我有两套ODBC数据库,一套用于生产,另一套用于开发,它们有不同的名称“开发”和“生产” 如何使用VBA获取链接表的odbc信息?使用表的本地名称,可以在MSysObjects系统表(通常隐藏)中查询表的外来名称 SELECT MSysObjects.ForeignName FROM MSysObjects WHERE (((MSysObjects.Name)="LocalTableName")); 如果需要有关外部表的详细信息,请尝试

我有一个ms access数据库和几个ODBC链接表

由于我有两套ODBC数据库,一套用于生产,另一套用于开发,它们有不同的名称“开发”和“生产”


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

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

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

如果需要有关外部表的详细信息,请尝试解析同一表中的“Connect”列。

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


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

我确定源代码的常用方法是重命名表,就像重命名本机表一样。我可以添加后缀或前缀,例如
tblTrombone\u DEV
tblTrombone\u PROD

您需要什么ODBC信息?这决定了哪种方法将是最有效的。官方不支持使用系统表,因此可以说是不安全的,例如,它们可能在将来的版本中更改。我在Access2007 ACE.accdb文件上尝试了此操作,结果发现错误:“无法读取记录;对'MSysObjects'没有读取权限。”考虑到.accdb格式的用户级安全性已被删除,是否有解决方法?