我在窗體上檢查文本框的BeforeUpdate事件上的現有SSN時出現錯誤消息。如果它已經存在於數據庫中,則會爲用戶提供一個消息框以實現此效果,並且可以選擇轉到現有記錄。我正在使用this example code here。我的代碼如下。設置並移動到書籤
Private Sub txtSocialSecurityNumber_BeforeUpdate(Cancel As Integer)
'check for existing SSN
Dim SSN As String
Dim strLinkCriteria As String
Dim rsc As Recordset
Set rsc = Me.RecordsetClone
SSN = Me.txtSocialSecurityNumber.Value
strLinkCriteria = "[SocialSecurityNumber] = " & "'" & SSN & "'"
'look for duplicates
If DCount("SocialSecurityNumber", "Person", LinkCriteria) > 0 Then
'Undo duplicate entry
Me.Undo
'error message
intResponse = MsgBox("Social Security Number " & SSN & " already exists in database." & _
vbCrLf & vbCrLf & "Would you like to view the record?", vbYesNo, "Duplicate SSN")
If intResponse = vbYes Then
'go to record
rsc.FindFirst strLinkCriteria
Me.Bookmark = rsc.Bookmark
ElseIf intResponse = vbNo Then
Exit Sub
End If
End If
Set rsc = Nothing
End Sub
根據這個代碼,我已經看過了其他幾個例子,就好像我做的一切權利,但我一定不會是因爲當我嘗試運行代碼並進入到現有的記錄,我收到錯誤「運行時錯誤'424':Object Required」。當我調試時,行
謝謝Sergey S.指出修正本節的拼寫錯誤。rst.FindFirst strLinkCriteria
突出顯示,並懸停在它給我的文字
strLinkCriteria = "[SocialSecurityNumber] = '123456789'"
(123456789是我的數據庫中已知的示例SSN)。
當我告訴消息框去記錄與現有的SSN,它給了我Run-time error '3021': No current record
。調試突出顯示Me.Bookmark = rsc.Bookmark
行,並顯示消息rsc.Bookmark = <No current record.>
。所以這聽起來像我沒有正確分配書籤。
我從來沒有使用過書籤,所以我不確定我在這裏做錯了什麼。任何幫助,將不勝感激。
@ crlast86:真的不能強調'Option Explicit'有多重要。請立即設置此選項,並將其添加到所有現有模塊。 http://stackoverflow.com/a/37792963/3820271 – Andre
這解決了這個問題,但現在我有一個新的。更新我的問題以反映它。 – crlast86
我懷疑這一點。沒有聲明'intResponse'。 – Gustav