2015-11-28 29 views
-1

我有這些表:按鈕單擊事件沒有做的任務,因爲預期

tblLibraryItem:項ID,的MediaType,ITEMNAME,DateAcquire,狀態,簽出,交貨期

tblMember:MEMBERID,名字,姓氏,電子郵件,電話,DateBecameMember

有結賬的形式,有兩個下拉:

  1. 物品ID退房:顯示從tblLibr所有ItemsIDs和商品名稱的列表aryItem
  2. 會員ID簽出:顯示會員ID,會員名和姓。

現在有按鈕執行以下任務:

  1. 如果項目ID在項目ID組合框是空白的,我們需要顯示一個消息,並沒有做其他任何退出子。

  2. 如果MemberID組合框中的MemberID爲空,我們需要顯示一條消息並退出該子組而無需執行其他任何操作。

  3. 對於選擇的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 

它給出錯誤太少參數執行語句。請幫忙糾正

+0

或許,如果你控制的焦點設置爲true你不會再次得到錯誤? –

+0

CheckedOut從哪裏來?你有沒有設置Option Explicit? – cboden

+0

新問題=新帖子...下次請顯示您的所有代碼,因爲如果我們必須猜測或回覆幾次,這很煩人! checkOuString和selectItemID從哪裏來?在你的代碼中,它會假設它們是表的字段,但我是GUESS(因爲我不知道你的代碼的其餘部分),它們是變量/控件。在這種情況下,它們必須在sql之外,並且只有它們的值必須與字符串相連 - 而不是var名稱。 – cboden

回答

0

使用.Value屬性代替。文本

那麼你可以扔掉.SETFOCUS,一切都應該工作:)

+0

請參閱編輯後。在更新與所選ItemID相對應的狀態列時發現問題 – GitCoder