請求書の行(invoiceLine)のサブフォームがあり、そのサブフォームにはその行に表示されるserviceNameを選択できるコンボボックスがあります。しかし、すでにそこにあるサービスレコードを使用する代わりに、コンボボックスからserviceNameを選択すると、サービステーブルに新しいレコードが追加され、serviceName列で選択したserviceNameからserviceIDが配置されます。コンボボックスから選択すると、Accessに新しいレコードが追加されます
例えば、InvoiceLineテーブルのserviceIDを使用せずにserviceNameとしてコンボボックスの "編集中"を選択した場合、serviceNameがserviceIDである完全な新しいサービスレコードが作成されます。このレコードの新しいserviceIDを編集します。
私は、「コントロールソース」はserviceNameのに設定されているについて話しているコンボボックス、「行ソースは、」
SELECT Service.serviceID, Service.serviceName,Service.serviceCurrentPricePerHour FROM Service;
と「更新後」属性「SearchForRecord」は「録音」で設定しているありますある第1および "条件"
="[servID] = " & Str(Nz([Screen].[ActiveControl],0))
サービス表
serviceID
serviceName
serviceCurrentPricePerHour
serviceDescription
InvoiceLineですテーブル
invoiceLineID
serviceID
priceActuallyChargedPerHour
invoiceID
hoursWorked
請求書テーブル
invoiceID
invoiceDate
customerID
projectName
invoiceDiscount
明確にしてください:comboBoxコントロールソースはserviceNameに設定されていますが、行ソースの最初の列はserviceIDです。これは必ずしも問題(または奇妙な動作の原因)ではありませんが、通常、行ソースの最初の列はバインドされたプロパティと一致し、リストの正しい値が実際にバインドされた列に保存されます。 [バウンドカラム]、[カラム数]、[カラム幅]プロパティの値で質問を更新してください。 –
フォームRecordSourceはInvoiceLineとServiceテーブルを含むクエリですか?サービステーブルを含める必要はなく、問題の原因と思われます。コンボボックスコントロールソースは、サービステーブルのInvoiceNameではなく、InvoiceLineテーブルのserviceIDフィールドである必要があります。 – June7