如何更改VBA中现有MS-ACCESS传递查询的ODBC连接字符串
问题描述:
我使用预定义的ODBC连接字符串在MS-Access数据库中设置了一些传递查询。问题是数据库可以链接到两个MySQL数据库之一。用户在启动数据库时选择数据库,并且系统通过VBA动态链接适当的表(这很好地工作)。然后,我需要改变现有查询中的ODBC连接字符串以匹配选定的数据库。因此,我需要一个VBA函数来遍历所有现有的传递查询,将ODBC连接字符串属性设置为新的连接字符串。任何想法如何做到这一点?如何更改VBA中现有MS-ACCESS传递查询的ODBC连接字符串
答
你可以通过查询收集循环:
Dim qdf As QueryDef
For Each qdf In CurrentDb.QueryDefs
If qdf.Type = dbQSQLPassThrough Then
qdf.Connect = NewConnect
End If
Next
你也可以检查连接字符串InStr(qdf.Connect)
来测试所需的数据库名称的存在。
谢谢,虽然这确实会改变连接字符串,但它会为非传递查询设置连接,从而使所有查询都通过。我需要将更改限制为传递查询。但是,您提供了一个很好的起点。 – Acoats
@Acoats我添加了一个笔记。 – Fionnuala
通过添加** qdf.Connect “”**的检查来解决该问题,该检查将其限制为仅传递查询。 – Acoats