如何更改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)来测试所需的数据库名称的存在。

+0

谢谢,虽然这确实会改变连接字符串,但它会为非传递查询设置连接,从而使所有查询都通过。我需要将更改限制为传递查询。但是,您提供了一个很好的起点。 – Acoats

+0

@Acoats我添加了一个笔记。 – Fionnuala

+1

通过添加** qdf.Connect “”**的检查来解决该问题,该检查将其限制为仅传递查询。 – Acoats