Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Feld "PLZ" blau färben, wenn PLZ = PLZ aus Tabelle

Begonnen von Aloster, August 10, 2012, 12:15:57

⏪ vorheriges - nächstes ⏩

Aloster

Access 2007

Ich habe ein Formular mit einem Feld numerischen "PLZ" und eine Tabelle "tbl_PLZ-Vertriebsbereich_A" mit einer bestimmen Auswahl an "Postleitzahlen".

Nun möchte ich, wenn ich eine PLZ in das Formularfeld "PLZ" eingebe und diese mit einer Postleitzahl in der Tabelle "tbl_PLZ-Vertriebsbereich_A" übereinstimmt, die im Formular eingegebene PLZ blau färbt (alternativ: der Feldhintergrund sich blau färbt), sonst aber nicht. Wie geht das?


Beaker s.a.

Hallo Aloster,
Private Sub PLZFeldImForm_AfterUpdate()
    Dim dbe As DAO.Database
    Dim rst As DAO.Recordset

    Set dbe = CurrentDb
    Set rst = dbe. OpenRecordset("SELECT PLZFeld FROM tbl_PLZ-Vertriebsbereich_A")

    rst.FindFirst "PLZFeld = " & Me!PLZFeldImForm

    If rst.NoMatch = False Then
        Me!PLZFeldImForm.ForeColour = vbBlue
    End If

    rst.Close
    Set rst = Nothing
    Set dbe = Nothing

End Sub

Falls tbl_PLZ-Vertriebsbereich_A DS-Herkunft des Formulars ist (was ich allerdings nicht vermute) dann
kannst Du die Variablen dbe und rst und das referenzieren ersetzen durch
Me.RecordsetClone.FindFirst "..."
hth
gruss ekkehard

P.S. Kleine Bemerkung am Rande; - der Tabellenname tbl_PLZ-Vertriebsbereich_A deutet auf ein suboptimales Datenmodell hin.
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

Aloster

Danke ersteinmal.

Er zeigt mir aber einen Syntaxfehler in FROM-KLAUSEL (3131) in der Zeile:

        Set rst = dbe. OpenRecordset("SELECT PLZFeld FROM tbl_PLZ-Vertriebsbereich_A")

an.

bahasu

Hi

tausche tbl_PLZ-Vertriebsbereich_A
gegen [tbl_PLZ-Vertriebsbereich_A]

Das "-" Zeichen stört wohl.

Harald
Servus

bahasu

Hi,

und noch eine Frage:
Soll die Blaufärbung für das Einzel-Formular oder das Endlosformular oder die Tabellendarstellung gelten?

Harald
Servus

Aloster

Hallo Harald,

das soll für ein Einzelformular gelten. Jetzt kommt eine Fehlermeldung 438 (Objekt unterstützt diese Eigenschaft oder Methode nicht) in Zeile:
Me!PLZFeldImForm.ForeColour = vbBlue

bahasu

Hi und sorry,

hatte übersehen: ForeColour
besser ForeColor
Harald
Servus

Aloster


bahasu

#8
Hi,

und noch eine Bemerkung.
Deine Vorgabe ist: Wenn Du etwas eingibst, dann soll es u.U. blau werden.

Wenn es auch dann blau hinterlegt werden soll, wenn Du den Datensatz nur anzeigst, dann im Ereignis "Beim Anzeigen" die Zeile
call PLZFeldImForm_AfterUpdate
hinzufügen.

Harald
Servus

Beaker s.a.

Hallo Harald,
Danke für Unterstützung und Korrekturen.
Zitattausche tbl_PLZ-Vertriebsbereich_A
gegen [tbl_PLZ-Vertriebsbereich_A]
Das "-" hatte ich übersehen.
ZitatForeColour
besser ForeColor
Da kommt beim schnellen Runterschreiben immer das
Schulenglisch durch.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)