我有一个名为 Main 的表格。我有
- 保存记录 ID 的文本框
- 用于从现有记录中选择或输入新记录名称的组合框
- 一个文本框,用于保存组合框中的名称
- 一个打开表单的按钮,让我们输入其他数据并创建新记录
- 一个打开表单的按钮,让我们可以编辑现有记录
我级联组合框中列表的行源。如果条目不在列表中,则 NotInList 事件
- 将组合框中的名称复制到 Main 上的文本框
- 加载创建表单并将名称从 Main 复制到创建表单上的相应字段。
一切正常。问题是当我在创建表单上点击保存时,我无法将值正确写回主表单。我想将来自组合框的名称写回 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;"
'Other stuff,works fine.
Form_frmMain.cboInsuranceCarrierContract.Locked = False
Form_frmMain.cboInsuranceCarrierContract.BackColor =
Form_frmMain.cboInsuranceCarrier.BackColor
Else
Me.Undo
DoCmd.Close
End If
End Sub