我有一個名爲Main的窗體。在這我有Access vba中代碼行的順序
- 文本框以保存記錄ID
- 一個組合框從現有的記錄選擇或新記錄
- 輸入名稱的文本框,從下拉框 按住名
- 一個按鈕打開一個表單,讓我們一起進入附加數據,並創建一個新的記錄
- 一個按鈕以打開的形式,讓我們編輯現有記錄
我在組合框中級聯列源的列表。如果該條目中的不在列表中, NotInList事件
- 複製在下拉列表的名稱被移動到一個文本框上主要
- 載荷的創建窗體和複製的名字從主到相應的字段在創建表單上。
所有的工作正常。問題是,當我在創建窗體上點擊保存時,我無法正確地將值寫回到主窗體。我想將來自組合框的名稱寫回Main的組合框,並將記錄ID寫入Main的文本字段。
這是兩行代碼。如果我改變他們的順序,輸出會改變。組合框或者空白,或者記錄ID文本字段最終爲空。
雖然我正在調試這個,我可以看到值存在,但我不能做任務。上次我嘗試使用combobox.text時,它抱怨列表中的值不是 ,所以我運行查詢來查看行源,但是該記錄沒有顯示在組合框列表中,但在表中。請參閱下面的兩行代碼(粗體)。
Private Sub cmbSaveClose_Click()
Dim x As Integer
x = MsgBox("Are you sure you want to save changes?", 4, "Exit?")
'VbNo constant throws back #7
'VbYes constant throws back #6
Me.Txt32 = DLookup("InsuranceCarrierContractID", "ICCDupRecordCheckQ")
If x = 7 Then
Exit Sub
End If
If IsNull(Me.Txt32) Then
Me.Txt31 = Form_frmMain.Txt65
DoCmd.RunCommand acCmdSaveRecord
**Forms!frmMain.cboInsuranceCarrierContract = Me.InsuranceCarrierContractID
Forms!frmMain.Txt66 = Me.InsuranceCarrierContractID**
DoCmd.Close
Forms!frmMain!InsuranceCarrierContract.RowSource =
" SELECT InsuranceCarrierContract.ContractNumber " & _
" FROM InsuranceCarrierContract " & _
" ORDER BY InsuranceCarrierContract.ContractNumber;"
'其他的東西,工作正常。
Form_frmMain.cboInsuranceCarrierContract.Locked = False
Form_frmMain.cboInsuranceCarrierContract.BackColor =
Form_frmMain.cboInsuranceCarrier.BackColor
否則 Me.Undo DoCmd.Close
結束如果 結束小組
你嘗試過重新查詢並刷新表格,您更改後的數據? –
ReQuery從來不適用於我的任何地方。 Select的要點是重新查詢列表。也許過度殺傷。我會嘗試兩個。謝謝。 –
@AlanWaage移動代碼並執行重新查詢。謝謝。這是一整天,我發現我可以重新查詢而不是更新行源。更少的工作。 –