【问题标题】:How to Get Name Property of ADODB Recordset?如何获取 ADODB 记录集的名称属性?
【发布时间】:2015-07-23 23:59:45
【问题描述】:

如何在 VBA 中获取 ADODB 记录集的名称? DAO 有一个 .Name 属性,但 ADODB 似乎没有。

起初我认为没有这样的属性,但现在,我认为必须有。

如果您以编程方式设置表单的记录集,然后关闭并保存表单而不将记录集属性设置为空,则表单记录源属性将填写您打开的记录集的名称。

例子:

我这样设置记录集

Set Me.Recordset = oDal.OpenRecordset("tblOptionList")

如果我不这样做

Set Me.Recordset = Nothing

tblOptionList 将在表单记录源属性中

这是我打开记录集的函数

Public Function OpenRecordset(ByVal Tablename As String) As         ADODB.Recordset
    Dim FilePath As String
    Dim rs As ADODB.Recordset

    Set rs = New ADODB.Recordset

    rs.CursorLocation = adUseClient

    FilePath = GetFilePath(Tablename)

    'Try to get a connection
    Connection

    If ConnOpen Then
        Set rs.ActiveConnection = pDbConn
        rs.CursorType = adOpenKeyset
        rs.LockType = adLockOptimistic
        rs.Open Tablename

        If pEnableOffline Then
            SaveOffline rs, Tablename
        End If
    Else
        'No connection, check for offline availablility

        If Dir(FilePath) <> "" And pEnableOffline Then
            rs.Open FilePath
        Else
            MsgBox "No Offline data and Server is Unavailable"
            Exit Function
        End If
    End If

    Set OpenRecordset = rs

End Function

【问题讨论】:

    标签: ms-access vba


    【解决方案1】:

    ADODB.Recordset.Source 属性与DAO.Recordset.Name 属性相对应。

    如果记录集的数据源是表或保存的查询,这些属性将为您提供它的名称。如果数据源是 SELECT 语句,这些属性将显示语句文本。

    【讨论】:

    • 呃!为什么我没有看到该属性?我以为我搜索了每一个属性。
    • 嗯,可能比我描述的要多。显然您可以将Source 设置为Command 对象。但我通常不使用 ADO,所以没有足够的动力去调查那个。 ;-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    • 2017-05-04
    • 2015-09-20
    • 1970-01-01
    相关资源
    最近更新 更多