我对MS Access很新。我正在尝试创建一个简单的表单,它基本上使用文本框而不是下拉框搜索特定记录。基本上,用户可以输入ID号并检索一些其他相关信息。但是,我不希望用户能够向数据库添加任何新记录。我已经能够让表单看起来像我想要的那样,但是我不确定在哪里放置代码(我是否创建了一个宏,将代码插入到按钮的属性中?)任何帮助都很大理解!
答案 0 :(得分:7)
我假设您已将表单绑定到表或查询,并且您希望能够在文本框中手动输入ID,然后按Enter并加载该记录的数据或显示错误消息(如果没有)这样的记录。
如dsteele所述,请确保将表单的数据属性允许添加设置为No
,以禁止用户添加记录。
然后,从文本框的AfterUpdate
事件中添加以下代码(假设您的文本框名为txtGoTo
):
Private Sub txtGoTo_AfterUpdate()
If (txtGoTo & vbNullString) = vbNullString Then Exit Sub
Dim rs As DAO.RecordSet
Set rs = Me.RecordsetClone
rs.FindFirst "[ID]=" & txtGoTo
If rs.NoMatch Then
MsgBox "Sorry, no such record '" & txtGoTo & "' was found.", _
vbOKOnly + vbInformation
Else
Me.RecordSet.Bookmark = rs.Bookmark
End If
rs.Close
txtGoTo = Null
End Sub
请注意,您必须将行rs.FindFirst "[ID]=" & txtGoTo
更改为适合您的数据的内容:
"[ID]="
应替换为您要搜索的字段(可能是"[POReference]="
或其他内容。
如果您使用数字ID进行搜索,例如因为该字段是自动编号列,那么代码就可以了。
否则,如果您搜索的字段是字符串(例如PN12-G
),则必须将代码更改为:
rs.FindFirst "[ID]=""" & txtGoTo & """"
未使用正确的引用(或在不必要的情况下引用)将导致数据类型不匹配的错误...... 。
作为新用户,我建议您查看示例 NorthWind 项目数据库,该数据库可以使用旧版本的Access进行备份,也可以作为模板从Access 2007下载。<登记/> 有许多技术可以作为新的Access开发人员学习,包括实现记录导航的其他方法。
答案 1 :(得分:1)