我有這些表:按鈕單擊事件沒有做的任務,因爲預期
tblLibraryItem:項ID,的MediaType,ITEMNAME,DateAcquire,狀態,簽出,交貨期
tblMember:MEMBERID,名字,姓氏,電子郵件,電話,DateBecameMember
有結賬的形式,有兩個下拉:
- 物品ID退房:顯示從tblLibr所有ItemsIDs和商品名稱的列表aryItem
- 會員ID簽出:顯示會員ID,會員名和姓。
現在有按鈕執行以下任務:
如果項目ID在項目ID組合框是空白的,我們需要顯示一個消息,並沒有做其他任何退出子。
如果MemberID組合框中的MemberID爲空,我們需要顯示一條消息並退出該子組而無需執行其他任何操作。
對於選擇的ItemID,檢查項目的狀態。如果狀態爲「簽出」,則顯示一條消息,指出該項目已經簽出並退出該子目錄而不做任何其他操作。
這裏是我的代碼:
Dim ItemName As String
Dim MemberID As String
Dim LastName As String
Dim FirstName As String
Dim currDatabase As DAO.Database
Set currDatabase = CurrentDb
Dim rstLibraryItem As DAO.Recordset
Set rstLibraryItem = currDatabase.OpenRecordset("tblLibraryItem")
rstLibraryItem.MoveFirst
Do While Not rstLibraryItem.EOF
If rstLibraryItem("ItemID") = CheckedOut Then Exit Do
rstLibraryItem.MoveNext
Loop
cboItemIDCheckOut.SetFocus
ItemID = cboItemIDCheckOut.Text
cboMemberIDCheckedOutTo.SetFocus
MemberID = cboMemberIDCheckedOutTo.Text
If cboItemIDCheckOut.Text = "" Then
MsgBox "Please select or type an ItemID"
Exit Sub
End If
If cboMemberIDCheckedOutTo.Text = "" Then
MsgBox "Please select or type an MemberID"
Exit Sub
End If
If cboItemIDCheckOut.ItemID = "Checked Out" Then
MsgBox "That item is already checked out"
Exit Sub
End If
但是當我點擊按鈕,收到錯誤運行時錯誤2185不能引用屬性或方法的控制,除非控制有焦點。
我做錯了什麼?請幫助
更新表現在給錯誤:
Dim checkOuString As String
checkOuString = "Checked"
Dim updatLibItemSQL As String
updatLibItemSQL = "UPDATE [tblLibraryItem]"
updatLibItemSQL = updatLibItemSQL & " SET [Status] = [checkOuString] "
updatLibItemSQL = updatLibItemSQL & " WHERE [ItemID] = [selectItemID] "
currDatabase.Execute updatLibItemSQL, dbFailOnError
它給出錯誤太少參數執行語句。請幫忙糾正
或許,如果你控制的焦點設置爲true你不會再次得到錯誤? –
CheckedOut從哪裏來?你有沒有設置Option Explicit? – cboden
新問題=新帖子...下次請顯示您的所有代碼,因爲如果我們必須猜測或回覆幾次,這很煩人! checkOuString和selectItemID從哪裏來?在你的代碼中,它會假設它們是表的字段,但我是GUESS(因爲我不知道你的代碼的其餘部分),它們是變量/控件。在這種情況下,它們必須在sql之外,並且只有它們的值必須與字符串相連 - 而不是var名稱。 – cboden