2013-10-15 194 views
1

我是這個網站的新手,也是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

@mehow什麼是落後於每一個問題增加'Excel的vba'標籤的祕訣是什麼? – Santosh

回答

2

我認爲你的意思是說第四行是高亮的,rst.FindFirst...

如果是這樣,您的FindFirst字符串中存在語法錯誤。這可能是您的TitleTextTitleofchapterJianalaicle字段包含空格或邏輯代碼(OR,AND)。爲防止出現這種情況,請在字符串內用'(單引號)包圍任何字符串類型字段。

最終的結果將是這樣的:

rst.FindFirst "[ID] <> " & Me.ID & _ 
" AND [TitleText] = '" & Me.TitleText & _ 
"' AND [UnitCode] = " & Me.UnitCode & _ 
" AND [AcademicYear] = " & Me.AcademicYear & _ 
" AND [Titleofchapterjournalarticle] = '" & Me.Titleofchapterjournalarticle & "'" 
+0

謝謝你,那太好了。它已經奏效,我只需要麻煩地拍攝DoCmd,就可以把它帶到特定的記錄。乾杯! – Janeyg

+0

@Janeyg'DoCmd.SearchForRecord'acDForm,Me.Name,acFirst,「ID =」&rst。(「ID」)'在我的測試表單上爲我工作。 – usncahill

+0

謝謝!非常感謝。 – Janeyg