SQL in VBA einbinden

Dieses Thema im Forum "MS Access" wurde erstellt von Shyne, 19 Februar 2009.

  1. Shyne

    Shyne
    Expand Collapse
    New Member

    Registriert seit:
    17 November 2008
    Beiträge:
    10
    Zustimmungen:
    0
    Hallo zusammen,

    hab ne kurze Frage, da ich leider alleine nicht weiter komme.

    Habe mir eine Access 2007 -Datenbank erstellt, alles soweit fertig.
    Bin derweil am Formular dran und komme nicht weiter.

    Hintergrund: (Kennt jeder aus Online-Shop´s ect.) habe ein Kombinationfeld,
    das mir erlaubt aus der Tabelle.Hersteller die Hersteller per Up-Down Menü auszuwählen. Jetzt wähle ich einen Hersteller aus und möchte im nächsten Kombinationsfeld nur deren Artikel auswählen können und nicht von allen Herstellern.

    Habe eine SQL-Abfrage mal geschrieben, jedoch muss ich die als Ereignis
    im ersten Kombinationsfeld hinterlegen, doch ohne VBA scheint es nicht zu funktionieren.

    Code:
    SELECT Art.Modell_Bezeichnung
    FROM ArtikelNr AS Art
    WHERE Art.ID_Hersteller=Kombinationsfeld4;
    
    Hoffe es ist einigermaßen verständlich rübergekommen.

    Danke.
     
  2. Samos.Harper

    Samos.Harper
    Expand Collapse
    New Member

    Registriert seit:
    7 Oktober 2009
    Beiträge:
    3
    Zustimmungen:
    0
    Also es sollte beides gehen ...

    im Formular genauso wie unter VBA. Weshalb es nicht geht, zeigt Dir schon Dein SQL, denn ein Kombinationsfeld ist ein Objekt, während ein SQL eine reine Stringoriente Sprache ist.

    Um das für ein und allemal in den Griff zu kriegen, solltest Du das unter VBA machen, das ist insgesamt eleganter und wirkt auch verständlicher.

    Zunächst musst Du sicherstellen, dass beim Laden des Formulars, auf dem sich Dein Kombinatioinsfeld4 befindet, dieses auch mit Herstellerdaten gefüllt ist. Das hast Du sicher schon beim editieren des Feldes gemacht.

    Unter VBA erzeugt Dein Kombinationsfeld auch Ereignisse. Ich würde im Ereignis Kombinationsfeld4_LostFocus folgend Abfragestring bilden:

    "SELECT Art.Modell_Bezeichnung FROM ArtikelNr AS Art WHERE Art.ID_Hersteller=" & Kombinationsfeld4.text & ";"

    Hier siehst Du nun den Unterschied. Der Abfragestrinmg kann mit einem Objekt allein nichts anfangen, sondern Du musst den Abfragestring mit einer Eigenschaft des Objekts ergänzen.

    Diesen SQL-Commandstring kannst Du dann weiterverwenden, entweder befüllst Du damit ein weiteres Kombinationsfeld oder das ganze Formular ...

    Viel Spass damit

    Überrings ist dieser String (wie ich meine) auch so, oder so ähnlich erstellbar ...

    SELECT Art.Modell_Bezeichnung
    FROM ArtikelNr AS Art
    WHERE Art.ID_Hersteller=Formular!Kombinationsfeld4.text;

    Diese blöde Art der Objectverwendung habe ich nie genutzt, daher weiß ich das nicht genau.

    LG S. Harper

    QUOTE=Shyne;139840]Hallo zusammen,

    hab ne kurze Frage, da ich leider alleine nicht weiter komme.

    Habe mir eine Access 2007 -Datenbank erstellt, alles soweit fertig.
    Bin derweil am Formular dran und komme nicht weiter.

    Hintergrund: (Kennt jeder aus Online-Shop´s ect.) habe ein Kombinationfeld,
    das mir erlaubt aus der Tabelle.Hersteller die Hersteller per Up-Down Menü auszuwählen. Jetzt wähle ich einen Hersteller aus und möchte im nächsten Kombinationsfeld nur deren Artikel auswählen können und nicht von allen Herstellern.

    Habe eine SQL-Abfrage mal geschrieben, jedoch muss ich die als Ereignis
    im ersten Kombinationsfeld hinterlegen, doch ohne VBA scheint es nicht zu funktionieren.

    Code:
    SELECT Art.Modell_Bezeichnung
    FROM ArtikelNr AS Art
    WHERE Art.ID_Hersteller=Kombinationsfeld4;
    
    Hoffe es ist einigermaßen verständlich rübergekommen.

    Danke.[/QUOTE]
     
Die Seite wird geladen...

Diese Seite empfehlen