2016-11-29 7 views
0

私の目標は、専門フィールドのエントリに基づいて特殊コードフィールドを更新することです。例として、Nurse Practitionerを選択した場合は、専門コードフィールドを000に自動的に更新します。アクセスのフィールドを更新するVBAコード

私は、次のコードを使用しましたが、無駄に:

Private Sub SpecialtyCode_BeforeUpdate(Cancel As Integer) 
Me.SpecialtyCode.Value = DLookup("[HSD_Code]", "Crosswalk_ProviderHSD", 
"[Specialty] = Me.Specialty.Value") 
End Sub 

HSDコードは、私が引っ張っしたいの専門コードであり、横断歩道は、私が参照するテーブルです。

郵便番号を指定して郡と地域のデータを同じにしたいと思います。私のコードが間違っているのを知っている。適切な構文は何ですか?これを達成するより効率的な方法はありますか?

+0

「フォーム」にタグが付けられているため、フォームにデータが表示/選択されていると思いますか?あなたのフォームは基礎となるレコードセットに「束縛されていますか? 「選択」はどこですか? ComboBoxですか? –

+0

@ WayneG.Dunn - フォームはプロバイダに関連する他のデータを含む基になるテーブルにバインドされています。はい、それは専門のリストのコンボボックスです。これらの特産品およびその関連コードは、Crosswalk_ProviderHSDという別の表に記載されています。専門分野がドロップダウンから選択されると、コードフィールドを更新します。 – Steven

+1

通常、複数の列を持つコンボボックスを使用します。その中には、非表示にするものがあります。次に、 'Nurse ...'を選択すると、実際のデータベース値が '000'として保存されるように、コントロールをコンボボックスの特定の列にバインドします。つまり、コンボボックスのrowsourceは、それがユニークなキー(000)を含む 'Crosswalk ...'テーブル(ナースP ...)から必要なフィールドを選択します。バインドされたテーブルのHSDコードにControlSourceを設定します。列の幅を0に設定して特定の列を非表示にする。 Bound Columnを 'Nurse ..'列に設定します。別のレコードに移動するとすぐに保存または保存できますか? –

答えて

2

フィールドを更新することはできませんBeforeUpdateイベント。そして、あなたのDLookup構文が間違っています。

はこれを試してみてください:クエリに関するコメントに耳を傾け、言っ

Private Sub Form_BeforeUpdate(Cancel As Integer) 
    Me.SpecialtyCode.Value = _ 
    DLookup("[HSD_Code]", "Crosswalk_ProviderHSD", "[Specialty] = '" & Me.Specialty.Value & "'") 
End Sub 

関連する問題