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 HTTP Post - Probleme JSON Payload

    in Microsoft Excel Hilfe
    VBA HTTP Post - Probleme JSON Payload: Moin, ich steh auf dem Schlauch.... Ich möchte mit VBA einen HTTP Post senden. Das klappt beim versenden OHNE Payload auch soweit auch ganz gut. Private Function http_post(url As String,...
  3. Kombinationsfeld in VBA auswerten

    in Microsoft Access Hilfe
    Kombinationsfeld in VBA auswerten: Guten Tag, ich habe ein VBA-Problem mit Kombinationsfeldern. Umfeld: Eine Tabelle A mit Namen incl. Adressen, indiziert (NamenID), keine doppelten Einträge möglich. Eine Tabelle B mit Rechnungen,...
  4. Download per VBA nicht aktuell

    in Microsoft Access Hilfe
    Download per VBA nicht aktuell: Hallo, ich nutze in VBA eine Download-Funktion, die mir die neueste Version meines Frontend downloaden soll. Der Download an sich funktioniert, doch leider wird eine alte Version gespeichert. Ich...
  5. Autofilter bei Zelländerung automatisch aktualisieren – ohne VBA

    in Microsoft Excel Hilfe
    Autofilter bei Zelländerung automatisch aktualisieren – ohne VBA: Hallo zusammen, ich habe eine Frage zur automatischen Aktualisierung von Autofilter-Ergebnissen in einer intelligenten Tabelle – und zwar ohne VBA. Ausgangssituation: Ich habe eine intelligente...
  6. Bereich mit VBA zusammenhalten

    in Microsoft Word Hilfe
    Bereich mit VBA zusammenhalten: Ich schreibe aus Access mit VBA Anschriften in ein Worddokument. Jede Anschrift soll zusammengehalten werdem, damit am Seitenende keine Anschrift getrennt wird. Wie muss ich vorgehen um eine...
  7. bedingte Formatierung Schriftgröße (VBA?)

    in Microsoft Excel Hilfe
    bedingte Formatierung Schriftgröße (VBA?): Hallo zusammen, ich kämpfe mich gerade durch die bedingte Formatierung von Excel. So langsam habe ich das Gefühl, dass ich damit die Schriftgröße einer Tabelle nicht ändern kann. Laut Google...
  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