微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MS-Access 表单:使用组合框搜索记录,如果找到匹配则更新记录,如果不匹配则开始添加新记录

如何解决MS-Access 表单:使用组合框搜索记录,如果找到匹配则更新记录,如果不匹配则开始添加新记录

我目前有一个包含三个字段的表格。

ID2:号码(也是我的主键), 字段 1:短文本, Field2:短文本

我正在尝试创建一个显示所有三个字段的表单,当我在 ID2 中输入一个值时,会显示匹配的记录。但是,如果没有匹配项,我希望它使用新值创建一个新记录。

我正在解决这个问题: MS Access search for record by textbox instead of dropdown

但是,我似乎无法复制结果。 我当前的代码是:

Private Sub ID2_AfterUpdate()
    Dim rs As DAO.Recordset
    Set rs = Me.RecordsetClone
    rs.FindFirst "[ID2]=" & ID2
    If rs.NoMatch Then
        MsgBox "Sorry,no such record '" & ID2 & "' was found.",_
               vbOKOnly + vbinformation
    Else
        Me.Recordset.Bookmark = rs.Bookmark
    End If
    rs.Close
End Sub

我使用了“创建”选项卡中的自动创建表单按钮,并将上述代码添加到带有“构建事件,代码生成器”的 ID2 文本框。我知道我没有正确使用 rs.FindFirst 函数。 我想问:

  1. 我在上面的代码中做错了什么
  2. 要将 rs.NoMatch 部分更改为什么,以便在不匹配时添加新记录。 (理想情况下它会清除其他字段)

感谢您的任何帮助,我是新来的访问者,任何帮助将不胜感激。

解决方法

用于输入搜索条件的控件应该是未绑定的。

考虑:

...
    rs.FindFirst "[ID2]=" & Me.ID2
    If rs.NoMatch Then
        MsgBox "Sorry,no such record '" & Me.ID2 & "' was found.",_
               vbOKOnly + vbInformation
        DoCmd.GoToRecord,acNewRec
        Me.ID2 = Null
    Else
...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。