2017-08-08 88 views
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 
+0

请说明:您说组合框控件源设置为serviceName,但行源第一列是serviceID。这不一定是问题(或怪异行为的原因),但通常行源的第一列与绑定属性相匹配,以便来自列表的正确值实际上保存在绑定列中。请用[Bound Column],[Column Count]和[Column Widths]属性的值更新问题。 –

+0

表单RecordSource是一个包含InvoiceLine和Service表的查询吗?没有必要包含服务表,我怀疑这是问题的根源。 Combobox控件源应该是InvoiceLine表中的serviceID字段,而不是Service表的InvoiceName。 – June7

回答

0

只需卸下控制源,当你改变它,它创建了一个NewRecord。

相关问题