Office: (Office 2003) Rezeptsuche VBA/SQL über Formular mit Eingabefeldern?

Helfe beim Thema Rezeptsuche VBA/SQL über Formular mit Eingabefeldern? in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Zu a) – Teil MsgBox ok, erledigt *dance Zu a) – Teil "es kombiniert nicht richtig" auch erledigt *10points Zu b) – txtheadline ok *Smilie dann... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von schnattielein, 21. Oktober 2010.

  1. Rezeptsuche VBA/SQL über Formular mit Eingabefeldern?


    Zu a) – Teil MsgBox
    ok, erledigt *dance


    Zu a) – Teil "es kombiniert nicht richtig"
    auch erledigt *10points

    Zu b) – txtheadline
    ok *Smilie dann verzichte ich auf die Anzeige der Suchebegriffe. Noch bin ich nicht im Stande, diese Filterübergabe entsprechend zu ändern :P
    habs geändert - die Suchkriterien werden nicht angezeigt

    Zu c) – sortieren
    ok, ORDER BY SName geht - aber ORDER BY SName, Zname geht nicht, weil Zname ja gar kein Bestandteil dieses strSQL ist .... gehts irgendiwe anders?

    ==> hänge die neue Version wieder an *Smilie

    Zu d) Versuch mit 4 bestimmten Zutaten
    das war ja schon erledigt *Smilie

    abermals danke *knuddel



    Lieber Gruß Anja
     
    schnattielein, 1. November 2010
    #76
  2. Du hast aber schon die 3 Punkte mit passenden Feldnamen ersetzt? *Smilie

    /edit:
    Waren 4 Minuten genug? *biggrin.gif*

    Was soll Zname sein? Falls das der Name der Zutaten ist - welchen Sinn hat es danach die gefilterten Rezepte zu sortiert?
     
    Josef P., 1. November 2010
    #77
  3. ja war ausreichend ... als aller erstes hab ich gar kein Feldnamen eingegeben *redface *grins - hab oben schon editiert, gibt trotzdem n kleines Problemchen damit *wink.gif*

    ok Antwort zu
    Ich hänge einfach mal n Bild an *Smilie

    einfach im From-Zweig T2_Zuaten mit benennen, geht ja nicht, das gibt ja dann falsche Ergebnisse ...


    LG Anja
     
    schnattielein, 1. November 2010
    #78
  4. Rezeptsuche VBA/SQL über Formular mit Eingabefeldern?

    Die Zutatenliste wird aber hier aufbereitet:
    Code:
    ... hier kannst du dann auch nach ZName sortieren. *Smilie

    BTW: du kannst dir das in der Listbox übrigens einfacher machen, wenn du die SQL-Anweisung mit Parameter speicherst und die SID aus dem Formular nutzt.
    Dann reicht ein Requery aus um die Anzeige in der Listbox zu aktualisieren.

    z. B.:
    Datenherkunft Listbox:
    Code:
    Das Steuerelement "SID" nannte ich auf "txtSID" um, damit es keinen Konflikt mit dem Datenfeld "SID" gibt.

    VBA-Code:
    Code:
    Anm.: AktualisiereAnzeige fügte ich ein, weil Code doppelt vorhanden war und für mich so etwas besser verständlich ist:
    Code:
    Wenn ich diese Prozedur lese, sehe ich sofort, dass als Reaktion auf Current die Anzeige aktualisiert wird. Das meinte ich letztens mit "Der beste Code-Kommentar ist der Code selbst." *Smilie

    mfg
    Josef
     
    Josef P., 1. November 2010
    #79
  5. Habe den Teil

    Code:
    im Form_Load und Form-Current Ereignis geändert. Habe im F4 auch das textfeld in txtSID umbenannt

    Jetzt werden gar keine Zutaten mehr angezeigt *frown.gif* ... ojeee, ok, ich schau das mir morgen nochmal an.

    Die Stereung des Listenfeldes in eine eigene Prozedur zu packen, ist ne gute Idee ...

    (neue Version anbei, vielleicht kann du ja auch mal nachschauen, was ich falsch gemacht habe und nen kleinen Tipp geben?)

    Dankeschön Josef für deine Unterstützung *Smilie

    LG Anja
     
    schnattielein, 1. November 2010
    #80
  6. Code:
    Schau dir einmal diesen String genauer an.
    "Order By" klebt an der Zahl.

    Tipp: füge die Leerzeichen nicht am Ende sondern am Anfang jeder neuen Code-Zeile ein, dann siehst man sie besser - und es fällt früher auf, wenn sie fehlen.

    Code:
    Im Anhang ist noch die Variante mit der SQL-Anweisung in der Listbox.

    mfg
    Josef
     
    Josef P., 1. November 2010
    #81
  7. *handgegenkopphau*

    mmh ja, dachte mir schon, dass ich da was mit der Syntax verbockt habe. Habs mir noch nicht genauer angeschaut. Ja jetzt seh ich das auch. Das mit den ganzen " in dieser strSQL-Schreibweise verwirrt mich eben noch etwas. UND - hier kam nun noch der Parameter, der ja nicht in " geschfasst wird ... Tja, da war mir die SQL-Ansicht im Abfrageenturf für gespeicherte Abfragen lieber *tongue.gif*

    edit: aha, jetzt steht die DH fürs Listenfeld gar nicht mehr im Code, sondern in den Eigenschaften fürs Listenfeld ... verstehe. Das hatte ich oben in deiner Antwort falsch interpretiert, dachte du meinst die DH im Code *wink.gif*
    ... ich hänge mal noch die vorläufige Endversion an ...


    danke *Smilie *Smilie ... danke *Smilie
    danke danke Josef *happy




    P.S. Ich lass den Tread mal noch offen, weil ich mir in den nächsten Tagen mal noch den ganze Code genauer ansehen will (da hast du u.a. ein paar "spezielle" Prozeduren drin, die mir noch nicht ganz einleuchten)
    Wenn ich noch konkrete fragen habe, dann meld ich mich hier *Smilie

    LG Anja
     
    schnattielein, 1. November 2010
    #82
  8. Rezeptsuche VBA/SQL über Formular mit Eingabefeldern?

    Hallo Josef,


    inzwischen habe ich mich nun genauer mit den 2 Klassenmodulen beschäfftigt:

    Dazu habe ich zunächt Bilder von den Formularen und eine Liste mit den Steuerelementen in ein Word-Domkument eingefügt und dann die CODES in hinzugefügt (Copy-Paste) .... und dann habe ich das Ganze mir Schritt für Schritt angesehen und kommentiert bzw ausformuliert.

    Würde mich sehr freuen, wenn du dir das mal anschaust und deinen Senf dazugibst *wink.gif* ... es gibt ein paar Stellen, wo ich mir unsicher war...

    P.S. Bitte weise mich auch ruhig drauf hin, wenn ich Begriffe wie "Parameter" oder "Variable" etc. in falschen Zusammenhängen gebraucht habe ....

    Dankeschön LG Anja
     
    schnattielein, 7. November 2010
    #83
  9. Ich schaute mir das Dokument an, meinen Senf werde ich aber nicht dazu abgeben, da mir das über das Word-Dokument zu umständlich ist. *wink.gif*

    mfg
    Josef
     
    Josef P., 7. November 2010
    #84
  10. wie dann? Soll ich alles hier als Code hineinkopieren und meine Anmerkungen dazutun *redface?
     
    schnattielein, 7. November 2010
    #85
  11. Was hältst du davon, wenn wir immer nur einen Punkt nach dem anderen klären?
    Du schreibst einen (kurzen) Code-Auszug und beschreibst, was dir dabei unklar ist. Ist dieser Punkt geklärt, kommt der nächste Punkt usw.

    ... dann besteht meiner Meinung anch eine höhere Chance, dass auch andere helfen, wenn die einzelnen Fragestellungen gut genug beschrieben sind.
    An einer gemeinsamen Lösungsfindung bin ich nämlich sehr interessiert, damit das kein Privatissimum wird. *biggrin.gif*

    mfg
    Josef
     
    Josef P., 7. November 2010
    #86
  12. ja gern, das ist gut *Smilie - so machen wir das ...

    Dann fass ich nochmal für die Mitleser zusammen: Es geht um die Suchfunktion einer Smoothie-Datenbank mit folgender Tabellenstruktur:
    Ein Rezept ergibt sich aus den Daten von
    T1_Smoothies (P SID/ SName, SZubereitung, SHinweise, SHerkunft)
    T2_Zutaten (P ZID/ Zname)
    T3_Einheit (P EID/ EBezeichnung)
    in der Verknüpfungsrelation TV12_Rezept (P RID/SID, ZID, Menge, EID)
    ... ein Smoothie hat also mehrere RID-DS

    Dabei können Smoothies einerseits nach enthaltenen Zutaten und anderseits auch nach Wörtern (Strings) gesucht werden. Bei Bedarf können auch beide Möglichkeiten in einer Kombisuche vereint werden. Anbei dazu die beiden Formulare.

    Dazu hat Josef die zwei Klassenmodule für das F3 und das F4 entwickelt. Ich möchte nun im Folgenden die genaue Funktion der einzelnen Prozeduren und Methoden erläutern und Fragen dazu stellen.

    @josef: Bitte weise mich auch ruhig drauf hin, wenn ich Begriffe wie "Parameter" oder "Variable" etc. in falschen Zusammenhängen gebraucht habe

    nun los: Ich beginne mit der Erläuterung des Klassenobjektes Form_F3_Suche:
    Code:
    Anweisung Enum:
    deklariert Aufzählung; bezeichnet die Variable Filterart für dieses Klassenmodul?
    Die Variable „FilterArt“ wird in der Prozedur „ZeigeRezept“ ermittelt?

    allgemeine Frage: In wieweit spielt in diesem Modul die Reihenfolge der einzelnen Prozeduren eine Rolle???

    Code:
     
    schnattielein, 7. November 2010
    #87
  13. Rezeptsuche VBA/SQL über Formular mit Eingabefeldern?

    FilterArt ist in diesem Fall der Name vom Enum.
    Tipp: schau dir die Deklaration einmal in den Objektkatalog an.
    EnumImObjektkatalog.GIF

    Enums erhöhen (zumindest meiner Ansicht nach) die Lesbarkeit von Code.
    Beispiele kennst du bestimmt von OpenRecordset.
    Code:
    dbOpenDynaset stammt aus RecordsetTypeEnum.
    Die Code-Zeile könnte daher auch so aussehen:
    Code:
    ZeigeRezepte ermittelt nicht FilterArt, sondern nutzt das wie Long als Parametertyp.
    Vorteil: Wenn du die Prozedur verwendest, kannst du IntelliSense nutzen und musst nicht nachdenken,welchen Zahlenwert du als Parameter übergeben musst, da der durch die beschreibenden Namen ZutatenSuche bzw. TextSuche eingefügt wird.
    Im Prinzip könnte man Enums als Gruppierung von Konstanten betrachten.

    Die Reihenfolge der Prozeduren im Codemodul spielt überhaupt keine Rolle. Nur die Deklaration von Modul-Konstanten, Variablen, Enums u. ä. muss am Anfang stehen.
    Die Reihenfolge der Prozeduren ist beim Programmieren so entstanden, da ich Hilfsprozeduren meist direkt unter der ersten aufzurufenden Prozedur erstelle. Das liegt aber nur an der Art, wie ich programmiere.

    Beispiel:
    Zuerst erstellte ich ZeigeRezepte.
    Während ich den Code schrieb, stellte ich fest, dass ich den Filter für die Zutaten benötige. =>
    Ich schrieb in die Prozedur ZeigeRezepte die Zeile strFilter = ZutatenFilter.
    Anschließend erstellte ich eine leere Property-Prozedur direkt unterhalb von ZeigeRezepte und programmierte in ZeigeRezepte weiter.
    Erst nachdem das Grundgerüst von ZeigeRezepte fertig war, schreib ich den Code für die Hilfsprozeduren ZutatenFilter und TextFilter.

    mfg
    Josef
     
    Josef P., 7. November 2010
    #88
  14. Moin Anja,
    ich versuche es mal:

    Enum erzeugt quasi einen Typ "Filterart", so dass du verständliche Namen im Code verwenden kannst, die dann bei der Verarbeitung durch Long-Werte ersetzt werden.

    Reihenfolge der einzelnen Prozeduren
    Deklarationen müssen an bestimmten Stellen stehen, die einzelnen Prozeduren kannst du hintippen, wo du lustig bist. Ich habe mir allerdings eine grobe Reihenfolge angewöhnt, erst Open/Current und ähnliche, dann Steuerelemente (Felder/Buttons) und zum Schluss Prüfungen und Close Prozeduren, um hinterher schneller durchzufinden.

    maike
     
  15. Ahja verstehe *Smilie
    ok, wenn ich die Funktion des ganzen Moduls F3 kurz beschreiben will, wäre das Folgende eine richtige Erklärung?

    Code:
     
    schnattielein, 8. November 2010
    #90
Thema:

Rezeptsuche VBA/SQL über Formular mit Eingabefeldern?

Die Seite wird geladen...
  1. Rezeptsuche VBA/SQL über Formular mit Eingabefeldern? - Similar Threads - Rezeptsuche VBA SQL

  2. VBA in einer Zeile zu lang

    in Microsoft Excel Hilfe
    VBA in einer Zeile zu lang: Moin, mein VBA Code ist für eine Zeile zu lang. Kann mir einer helfen wie ich den auf 2 Zeilen aufteilen Kann? arrSchuhDaten = Array(Range("A6"), Range("F6"), Range("J6"), Range("A7"),...
  3. Listbox wird nicht breiter, Schriftgrösse ändert sich

    in Microsoft Excel Hilfe
    Listbox wird nicht breiter, Schriftgrösse ändert sich: Hallo, ich habe ein Formular dessen Breite ich mit der Maus ändern kann. Im Formular habe ich einen Rahmen und darin eine Listbox deren Breite an die Formularbreite angepasst wird....
  4. Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch

    in Microsoft Excel Hilfe
    Kontrollkästchen aktivieren ohne VBA - wenn KK1 angekreuzt dann KK2 auch: Hallo zusammen, erstmal danke für all die Tipps und Kniffe, die ich ohne eigenen Thread gefunden und gelernt habe. Leider finde ich mein Thema nirgendwo... Aktuell habe ich zwei Spalten mit...
  5. Per Hyperlink ausgeblendetes Blatt einblenden

    in Microsoft Excel Hilfe
    Per Hyperlink ausgeblendetes Blatt einblenden: Hola ins Forum, ich bräuchte mal wieder eure Hilfe. Ich habe ein Tabellenblatt das mir als Register dient und wo Hyperlinks eingefügt sind um auf das dazugehörige Blatt zu springen. Diese Blätter...
  6. Bilder über VBA Größe und DPI ändern für Webshop

    in Microsoft Excel Hilfe
    Bilder über VBA Größe und DPI ändern für Webshop: Hallo Excel Spezialisten, Ich habe mir eine recht aufwendige Tabelle gebastelt, aus der ich Daten für meinen Webshop generiere und in einer .csv bereitstelle. Es werden neue Preislisten...
  7. VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen

    in Microsoft Word Hilfe
    VBA: Platzhalter ersetzen und evtl. leere Zeile einfügen: Hallo zusammen, ich habe eine Word-Vorlage mit Platzhaltern, in die ich mit VBA Daten aus einer Excel-Datei einfüge (in eine Excel-Zeile schreibe ich alle Daten für ein neues Word-Dokument). So...
  8. Rezeptsuche per Zutatenfilter

    in Microsoft Access Hilfe
    Rezeptsuche per Zutatenfilter: Guten Abend Leute, nach langem hin und her. Habe ich mich doch entschieden, dass ich euch um Hilfe bitten muss. Es handelt sich um ein Projekt. Dabei soll von Gruppen eine Datenbank erarbeitet...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden