2016-11-29 5 views
0

Mein Ziel ist es, das Feld Specialty-Code basierend auf dem Eintrag im Fachgebiet zu aktualisieren. Wenn Sie beispielsweise Nurse Practitioner auswählen, möchte ich, dass das Feld für den Spezialcode automatisch auf 000 aktualisiert wird.VBA-Code, um ein Feld in Zugriff zu aktualisieren

Ich habe den folgenden Code verwendet, aber ohne Erfolg:

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

HSD-Code ist die Spezialität Code, den ich ziehen wollen und die Zebrastreifen ist die Tabelle I verweisen möchten.

Ich würde das gleiche für County und Region Daten geben eine Postleitzahl gegeben. Ich weiß, dass mein Code falsch ist. Was ist die richtige Syntax? Gibt es einen effizienteren Weg, dies zu erreichen?

+0

Da Sie "Formulare" getaggt haben, gehe ich davon aus, dass Ihre Daten in einem Formular angezeigt/ausgewählt werden? Ist Ihre Form an ein zugrunde liegendes Recordset gebunden? Wo sind die "Auswahl"? Ist es eine ComboBox? –

+0

@ WayneG.Dunn - Ja, das Formular ist an eine zugrunde liegende Tabelle gebunden, die andere für den Provider relevante Daten enthält. Ja, es ist eine Combo-Box mit einer Liste von Spezialitäten. Diese Besonderheiten und ihre Korrelationscodes befinden sich in einer separaten Tabelle mit dem Titel Crosswalk_ProviderHSD. Ich möchte, dass das Codefeld aktualisiert wird, sobald die Spezialität aus dem Dropdown ausgewählt ist. – Steven

+1

Normalerweise verwenden Sie eine Combobox mit mehreren Spalten, von denen Sie einige möglicherweise ausblenden. Dann "binden" Sie das Steuerelement an eine bestimmte Spalte der Combobox, sodass bei Auswahl von "Nurse ..." der tatsächliche Datenbankwert als "000" gespeichert wird. d. h. die Zeilenquelle der Combobox wählt alle gewünschten Felder aus der Tabelle "Crosswalk ..." (Nurse P ...) aus, einschließlich ihres eindeutigen Schlüssels (000). Setzen Sie die ControlSource auf den HSD-Code in Ihrer gebundenen Tabelle. Setzen Sie die Spaltenbreite auf 0, um bestimmte Spalten auszublenden. Stellen Sie gebundene Spalte auf die Spalte "Krankenschwester ..". Sofortiges Speichern oder Speichern beim Verschieben in einen anderen Datensatz? –

Antwort

2

Sie können das Feld nicht in einem eigenen BeforeUpdate Ereignis aktualisieren. Und deine DLookup-Syntax ist falsch.

Try this:

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

Das heißt, in Bezug auf Anfragen an die Kommentare hören.

Verwandte Themen