以编程方式将字段绑定到临时记录集字段

时间:2012-03-14 11:10:08

标签: ms-access vba access-vba

我正在尝试显示以编程方式创建的记录集。但我遇到了将controlsource绑定到记录集字段的问题。

以下代码在FirstField文本框中输出“#Error”。

Option Compare Database
Option Explicit

Private Sub Form_Load()
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset

    With rs.Fields
        .Append "A", adInteger
        .Append "B", adInteger
        .Append "C", adInteger
    End With

    rs.Open

    With rs
      .AddNew
        ![a] = 1
        ![b] = 1
        ![c] = 1
      .Update
    End With

    rs.Clone

    Set Me.Recordset = rs
    Me.FirstField.ControlSource = rs.Fields(0).Name 'outputs #Error in FirstField
End Sub

非常感谢帮助!


我正在尝试做什么

我有一个数据库,代表停车场的二手停车位。 A,B,C是位置坐标,每个位置坐标都有一个验证规则集,因此它们不能超过它们的限制。现在我想显示所有可用的停车位。 所以我想我会创建一个包含所有停车位的“假”数据库,然后做一个查询 - 我只显示位置不在“二手停车位”数据库中的假数据库。

创建一个只有位置的数据库对我来说似乎很愚蠢,用所有停车位填充“二手停车位”数据库,然后添加一个用过的布尔字段似乎也是一个坏主意。

我欢迎有关如何以更好的方式解决这个问题的意见。

谢谢你的时间。

1 个答案:

答案 0 :(得分:0)

从你的评论中,我看到你打算重新设计,这对我来说似乎是一个好主意。尽管如此,如果您想进一步尝试使用表单的ADO断开记录集,请在.LockType之前添加.Open

rs.LockType = adLockPessimistic
rs.Open

通过此更改并放弃rs.Clone行,您的Form_Load代码可以在我的测试表单中使用。

有关此主题的更多详细信息,请参阅数据库日记中的这篇文章:Create In-Memory ADO Recordsets