1
我有一个发票行(invoiceLine)的子表单,并且在该子表单中,我有一个组合框,可以让您选择该行上的serviceName。但是,当我从组合框中选择一个serviceName而不是使用已存在的服务记录时,它会在我的Service表中添加一条新记录,并将serviceName从我在serviceName列中选择的serviceName中放置。例如,如果我在组合框中选择“编辑”作为serviceName,而不是在InvoiceLine表中使用serviceID作为“Editing”,它将创建一个全新的服务记录,其中serviceName是serviceID为“编辑“和这个记录的全新serviceID。Access从组合框中选择时添加新记录
我谈论的组合框“控件来源”设置为服务名,“行来源”是
SELECT Service.serviceID, Service.serviceName,Service.serviceCurrentPricePerHour FROM Service;
和“后更新”属性具有“SearchForRecord”与“记录”设置暂时先和 “Where条件” 是
="[servID] = " & Str(Nz([Screen].[ActiveControl],0))
服务表
serviceID
serviceName
serviceCurrentPricePerHour
serviceDescription
InvoiceLine表
invoiceLineID
serviceID
priceActuallyChargedPerHour
invoiceID
hoursWorked
发票表
invoiceID
invoiceDate
customerID
projectName
invoiceDiscount
请说明:您说组合框控件源设置为serviceName,但行源第一列是serviceID。这不一定是问题(或怪异行为的原因),但通常行源的第一列与绑定属性相匹配,以便来自列表的正确值实际上保存在绑定列中。请用[Bound Column],[Column Count]和[Column Widths]属性的值更新问题。 –
表单RecordSource是一个包含InvoiceLine和Service表的查询吗?没有必要包含服务表,我怀疑这是问题的根源。 Combobox控件源应该是InvoiceLine表中的serviceID字段,而不是Service表的InvoiceName。 – June7