我有一个名为Main的表单。在它上面我有
我在组合框中级联列表的行源。如果条目不在列表中, 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
结束如果 结束子
答案 0 :(得分:0)
这适用于David,所以将其添加为答案:
更改数据后重新查询并重新刷新表单。
Me.Requery
Me.Refresh
来自表单模块或外部:
Forms("MyFormName").Requery
Forms("MyFormName").Refresh
http://msdn.microsoft.com/en-us/library/office/ff191903.aspx
http://msdn.microsoft.com/en-us/library/office/ff836021.aspx