MS-Access Form Combo框不能限制粘贴记录

时间:2014-02-17 16:57:58

标签: ms-access access-vba ms-access-2010

我们有一个Access数据库来跟踪工作请求。我们有一个表单,我们输入请求的信息。我们希望将可以输入的部门限制在列表中,我们已在名为Departments的表中输入该列表。

部门控制我们的工作请求输入表单是一个基于Departments表的组合框。这适用于限制手工输入的部门;但是,通常通过复制和粘贴旧信息作为整个记录来输入作业,并根据需要更改任何信息。发生这种情况时,部门控件不受组合框的限制。

在将记录保存到表之前,我需要一种方法来验证在表单上的Department控件中输入的数据与Department字段中的条目。如果粘贴条目中的部门与Departments表中的任何记录都不匹配,我希望它抛出一个消息框。

我试图使用BeforeUpdate事件过程,但无法弄清楚如何根据我的Departments表中的条目评估表单中的当前Department条目。任何人都可以建议如何创建此验证?

3 个答案:

答案 0 :(得分:0)

类似的东西:

Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim strSQL As String
Dim RS  As DAO.Recordset
strSQL = "select * from Table1 where (Flda) = '" & Me.txtFldA & "';"
Set RS = CurrentDb.OpenRecordset(strSQL)
If RS.EOF Then
    MsgBox "Not a valid Department", vbOKOnly, "Incorrect Department Entered"
End If
RS.Close
Set RS = Nothing
End Sub

答案 1 :(得分:0)

由于您运行的是Access 2010,因此可以使用Before Change数据宏在表级强制执行验证:

BeforeChange.png

有关详细信息,请参阅

Create a data macro

答案 2 :(得分:0)

我认为您要做的是在Departments字段和Departments数据库中的相应字段之间建立关系。强制执行推荐完整性(没有级联),这可以防止任何人在您的工作请求表中添加记录,其中部门在您的部门表中不存在。