Ms access 表单中的文本框包含数据,但不保存到基础表

Ms access 表单中的文本框包含数据,但不保存到基础表,ms-access,vba,ms-access-2007,Ms Access,Vba,Ms Access 2007,我正在创建ms Access 2007表单,以保存单个产品“批次”的多个评估结果。我能够创建一对组合框来查找可能批次的列表,这两个条件(“Item”和“QCN”)都是“BatchInfo”表中的主键,行源使用“SELECT DISTINCTROW”从两个组合框的表中提取这些条件。我有两个文本框绑定到“BatchInfo”表上查询的不同列,每个组合框一个。除QCN文本框中显示的数据不正确外,它们似乎一起正常工作。 我使用表单上的“New Record”(新记录)按钮测试所有这些,该按钮运行以下代码

我正在创建ms Access 2007表单,以保存单个产品“批次”的多个评估结果。我能够创建一对组合框来查找可能批次的列表,这两个条件(“Item”和“QCN”)都是“BatchInfo”表中的主键,行源使用“SELECT DISTINCTROW”从两个组合框的表中提取这些条件。我有两个文本框绑定到“BatchInfo”表上查询的不同列,每个组合框一个。除QCN文本框中显示的数据不正确外,它们似乎一起正常工作。 我使用表单上的“New Record”(新记录)按钮测试所有这些,该按钮运行以下代码:

Sub btnNewRecord_Click()
    DoCmd.RunCommand acCmdSaveRecord
    DoCmd.GoToRecord , , acNewRec
End Sub
其余部分不在VBA中,因此我不确定如何在这里最简洁地解释它,但让我们看看这是否有效:(“显示”表示在我从cmbItem组合框中选择批次之后)

物料控制源为物料;绑定列1;列计数2;列宽1“,0.5”;显示项目; txtItem显示“Item”并将“Item”正确保存到表中

cmbQCN控制源为项目;绑定列2;列计数2;列宽0“,1”;显示项目而不是QCN; txtQCN显示“项”而不是“QCN”,但在将记录保存到表时显示为空

两个组合框的行源为: 选择DISTINCTROW qryBatchesBySiteByDate.Item,qryBatchesBySiteByDate.QCNumber FROM qryBatchesBySiteByDate

qryBatchesBySiteByDate从BatchInfo中提取项目和QCN,并将它们连接到生产位置

一次改变一件事:

-将cmbQCN的绑定列更改为1;现在combo显示所需的值,但不将其传递到文本框

物料控制源为物料;绑定列1;列计数2;列宽1“,0.5”;显示项目; txtItem显示“Item”并将“Item”正确保存到表中

cmbQCN控制源为项目;绑定列2;列计数2;列宽0“,1”;显示项目而不是QCN; txtQCN正确显示“QCN”,但在将记录保存到表中时显示为空

-将cmbQCN的控制源更改为QCN;现在组合框不能一起工作

物料控制源为物料;绑定列1;列计数2;列宽1“,0.5”;显示项目; txtItem显示“Item”并将“Item”正确保存到表中

cmbQCN控制源为cmbQCN;绑定列2;列计数2;列宽0“,1”;显示为空白; txtQCN为空,在将记录保存到表时显示为空

我想我至少有两个问题: 1.即使txtQCN显示数据,当我保存记录时,该数据也不会写入表中; 2.txtQCN显示项目而不是QCN,即使cmbQCN正确显示QCN

我想可能关系有问题,因为Item和QCN都是BatchInfo中的主键,但查询不维护关系吗

我希望我只是错过了一个场景,但我不知道它可能是什么


谢谢你的建议

只是想澄清一下,当您说“Item和QCN都是BatchInfo中的主键”时,您的意思是在表设计视图中,这两个字段都有对应的键符号吗?这称为“复合主键”(不能有两个主键)。下一个问题-txtItem和txtQCN的控制源设置为什么?表单的记录源是什么。你可以发布更多关于你的表结构的细节,包括关系吗?是的,这描述了主键的情况,所以我学习了一个新术语!它是一个复合主键。txtItem和txtQCN的控制源分别为Item和QCN。我一直在研究它,当我发现可以使用cmbItem的AfterUpdate属性中的以下代码使其工作时,我放弃了第二个组合框:Me.QCN=[cmbItem].[Column](1)谢谢!