2012-03-30 4 views
1

患者データの記録に必要な要素の2つは、メインコンサルタントとその他のコンサルタントです。 consultant_listというテーブルにはID、名前、コード、および専門が格納されます。コンボは、コンサルタント名を選択することができ、そのコンサルタントのIDをconsultant_idという表に格納します。選択すると、コンサルタントのコードと専門分野が、フォームの連結コントロールtxtConsultantCodeとtxtSpecialityに自動的に表示されます。アクセス2007年1つのレコードで変更されたバインドされていないコントロールは、他のレコードに影響します。

他のコンサルタントに問題があります。コンサルタントコードと専門分野の追加のバウンドコントロールは、コンサルタントの下で選択されたデータで自動的に完了します。だから私はバインドされていないコントロールtxtOtherConsultantCodeとtxtOtherSpecialityを使用し、DLookup()を実行して値を記入するために、cboOtherConsultantのAfterUpdateイベントを設定します。値がOKになっても現在のレコードに入力された値はフォームの以前のレコードにも入力され、不整合なデータが残っていることがわかるまではうまくいきました。また、他のコンサルタント名がクリアされていれば、アンバインドされたコントロールの値が残っているので、LostFocusイベントにコードを書き込んでcboOtherConsultantがNullであるかどうかを確認し、関連する値をNullにも設定します。他のレコード。助けて!

答えて

0

あなたは通常、連続したフォームでバインドされていないコントロールで何が起こるかを説明しました。彼らはバインドされていないので、コントロールは現在のレコードに関連付けられていません。ただし、これらのコントロールのコントロールソースプロパティとしてDLookup()式を使用すると、現在のレコードに連結することができます。このアプローチでは、コントロールはもはやバインドされなくなりました。

しかし、私はこれが最良のアプローチであるとは確信していません。あなたのフォームのレコードソースは、consultant_listに参加するクエリになる可能性があります。次に、DLookUp()の式を使用して、の値を取得する必要はありません。txtOtherConsultantCodeおよびtxtOtherSpeciality;フォームのレコードソースに既に存在します。そして、これらの2つのテキストボックスのプロパティをEnabled = NoLocked = Yesに設定して、表示専用にすることができます。ユーザはcboOtherConsultantで異なる選択を行うことでそれらを変更します。

+0

いつものように、ありがとうございます。 DLookup式をコントロールソースに入れるというあなたの提案は、私のためにうまくいきます。また、テキストボックスもロックしました。それは考えられませんでした。 – Chelle

+0

空白のフォームで、他のコンサルタントの値を選択して完了するまで、コントロールソースとしてDLookupのテキストボックスが#ERRORとして表示されます。これには何らかの方法がありますか? – Chelle

+0

'= DLookUp(" code "、" consultant_list "、" ID = "&Nz([cboOtherConsultant]、0))' – HansUp

関連する問題