【问题标题】:Using ADO connection dialog in MS Access/VBA在 MS Access/VBA 中使用 ADO 连接对话框
【发布时间】:2008-12-09 09:51:22
【问题描述】:

我想在 MS Access 中使用标准的 ADO 连接字符串对话框。 我该怎么做?

【问题讨论】:

    标签: ms-access ado


    【解决方案1】:

    如果尚未选择,请在“参考”对话框中检查以下参考:

    Microsoft OLE DB 服务组件 1.0 类型库

    Microsoft ActiveX 数据对象 2.7 库

    以下代码将打开对话框并将连接对象设置为数据链接属性对话框中提供的参数:

    Dim dl As MSDASC.DataLinks
    Dim cn As ADODB.Connection
    
    Set dl = New MSDASC.DataLinks
    Set cn = New ADODB.Connection
    
    Set cn = dl.PromptNew
    cn.Open
    

    然后您可以打开带有连接的 ADODB 记录集或检索有关连接的属性并根据需要继续操作。

    【讨论】:

    • IIRC 在调用 PromptNew 之前您需要一个 On Error... 语句并测试其返回值是否为空,这是检测该用户已取消对话的唯一方法。
    【解决方案2】:

    除了按照 John Mo 所说的 prerequisites,以下函数将返回一个完整的 ADO 连接字符串。它可以使用默认的“m_connectionString”值启动。这样的值可以存储在“连接表”中。

    Function connectToDababase(Optional m_connectionString As String) As String
    Dim dl As MSDASC.DataLinks
    Dim cn As ADODB.Connection
    
    Set dl = New MSDASC.DataLinks
    Set cn = New ADODB.Connection
    
    If IsMissing(m_connectionString) Then
        Set cn = dl.PromptNew
    Else
        cn.ConnectionString = m_connectionString
        dl.PromptEdit cn
    End If
    
    connectToDababase = cn.ConnectionString
    End Function
    

    【讨论】:

    • 您的可选参数 m_connectionString 需要声明为 Variant 才能使用 IsMissing() 测试它的缺失。如果声明为字符串并被调用者省略,则 m_connectionString 的值将是空字符串,而不是“缺失”。
    • 你是对的!但我没有检测到它,因为结果是一样的:连接对话框以空白值打开...
    【解决方案3】:

    【讨论】:

    • 这个链接很有趣,但是......它没有回答问题。
    猜你喜欢
    • 2020-10-29
    • 1970-01-01
    • 1970-01-01
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    • 2012-07-13
    • 1970-01-01
    相关资源
    最近更新 更多