1

請求書の行(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 
+0

明確にしてください:comboBoxコントロールソースはserviceNameに設定されていますが、行ソースの最初の列はserviceIDです。これは必ずしも問題(または奇妙な動作の原因)ではありませんが、通常、行ソースの最初の列はバインドされたプロパティと一致し、リストの正しい値が実際にバインドされた列に保存されます。 [バウンドカラム]、[カラム数]、[カラム幅]プロパティの値で質問を更新してください。 –

+0

フォームRecordSourceはInvoiceLineとServiceテーブルを含むクエリですか?サービステーブルを含める必要はなく、問題の原因と思われます。コンボボックスコントロールソースは、サービステーブルのInvoiceNameではなく、InvoiceLineテーブルのserviceIDフィールドである必要があります。 – June7

答えて

0

はちょうどあなたがそれを変更すると、それはNewRecordとを作成し、コントロールソースを削除します。

関連する問題