我是这个网站的新手,也是vba代码的新手。另一个用户发布了这个问题,答案代码似乎是我正在寻找的代码。我想检查几个字段的重复数据,标记一条消息并转到记录。我希望这段代码可以做到这一点。除非我添加自己的字段来检查我得到错误代码3077 - 语法错误,我不知道如何解决它。任何帮助,将不胜感激。针对此错误设置的线是第3行。我正在使用2010年的访问权限。我不知道如何链接到这个问题,但我被告知我应该问一个关于我的问题的新问题。
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim rst As Recordset
Set rst = Me.RecordsetClone
rst.FindFirst "[ID] <> " & Me.ID & " AND [TitleText] = " & Me.TitleText & " AND [UnitCode] = " & Me.UnitCode & " AND [AcademicYear] = " & Me.AcademicYear & " AND [Titleofchapterjournalarticle] = " & Me.Titleofchapterjournalarticle
If Not rst.NoMatch Then
Cancel = True
If MsgBox("A record matching these fields already exist", vbYesNo) = vbYes Then
Me.Undo
DoCmd.SearchForRecord , , acFirst, "[ID] = " & rst("ID")
End If
End If
rst.Close
End Sub
答案 0 :(得分:2)
我认为你的意思是第四行是突出显示的rst.FindFirst...
。
如果是这种情况,则FindFirst
字符串中会出现语法错误。可能是您的 TitleText 或 Titleofchapterjournalarticle 字段包含空格或逻辑代码(OR,AND)。要防止这种情况,请在字符串中使用'(单引号)包围任何字符串类型字段。
最终结果如下:
rst.FindFirst "[ID] <> " & Me.ID & _
" AND [TitleText] = '" & Me.TitleText & _
"' AND [UnitCode] = " & Me.UnitCode & _
" AND [AcademicYear] = " & Me.AcademicYear & _
" AND [Titleofchapterjournalarticle] = '" & Me.Titleofchapterjournalarticle & "'"