我有兩種形式,一種是數據輸入形式,另一種是列出數據庫中所有記錄的摘要形式。在摘要表單上有一個列出所有記錄的列表框。我希望用戶能夠從列表框中選擇一條記錄並使用命令按鈕,打開第二個表單到特定記錄。我已經得到了這個工作,使用特定的領域,在一個案例中「姓名」,使用下面的代碼:MS Access 2007使用VBA打開獨立窗體到特定記錄
DoCmd.OpenForm "frmEditAddPerson", acNormal, ,"[PersonName]='" & Me.listPeople.Value & "'"
,但是當我意識到兩個人可以有相同的名字,我決定這是有道理的使用PersonID是主鍵,其數據類型是「AutoNumber」。我似乎無法得到這個工作:
DoCmd.OpenForm "frmEditAddPerson", acNormal, "[PersonName] = " & SelectPersonID
注意,我收到來自一個隱藏的列從Control拉SelectedPersonID。我確認我試圖通過在試圖調試時在MessageBox中顯示AutoNumber字段的數字值來得到正確的值。
對於這個方法/命令的WHERE參數,我知道你應該在引號中包含字符串值,不包含整數,並且在SQL語句中包含「#」的日期。我試過將SelectedPersonID作爲一個字符串和一個整數進行分離,並且仍然無法獲得上述工作。我甚至嘗試了以下方法以確保:
DoCmd.OpenForm "frmEditAddPerson", acNormal, "[PersonName] = " & CInt(SelectPersonID)
每次我得到「類型不匹配」。自動編號字段的特殊之處在於它不能用於這樣的事情,還是需要以特殊的方式處理?
謝謝!你的最後一個建議幫助我清理了我的代碼,現在我沒有收到錯誤,但是當它啓動表單時,它將它啓動到空白/新記錄而不是被選中的記錄。 – smk081 2014-10-29 22:20:52
在設計視圖中打開該窗體,檢查其屬性表上的數據選項卡。找到數據輸入屬性。如果是,請將其更改爲No. – HansUp 2014-10-29 22:23:28
好吧,看起來像是最後一塊。數據輸入=是表示該表單將只允許添加新記錄。它不會顯示現有記錄。 – HansUp 2014-10-29 22:34:15