Office: SQL Filter erweitern?

Helfe beim Thema SQL Filter erweitern? in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo Liebe Leute, ich habe hier folgende Code in meiner Datenbank stehen: Code: Option Compare Database Option Explicit Dim Krit, SQL Code:... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von carstiee09, 30. Mai 2011.

  1. SQL Filter erweitern?


    Hallo Liebe Leute,

    ich habe hier folgende Code in meiner Datenbank stehen:

    Code:
    Code:
     
    carstiee09, 30. Mai 2011
    #1
  2. Hallo
    als erstes:
    ist nicht eine Saubere Definition!
    Werden Variablen innerhalb einer Zeile Definiert, so muss der Typ hinter jede Variable gesetzt werden. Das Beispiel
    nebenan ist falsch, da so nur die letzte Variable als String und die ersten zwei Variablen als Variant deklariert
    Dim strVariable1, strVariable2, strVariable3 As String
    und auch ohne daten Typ gefällt mir nicht sehr

    So ist es richtig:
    Dim strVariable1 As String, strVariable2 As String, strVariable3 As String

    Name und Jahr sind nicht Gute Feld Namen !
    (kliche auf Mein Doc) in meiner Fusszeile)
    und lies in der PDF-datei
    ab Seite : 26 (3.5 Feldnamen)

    für das: Krit = Krit & " AND Name LIKE '" & Me!Name & "*'"
    kannst Du evtl. einmal auf Seite: 73... (5.3.12 Where-Bedingung mit BuildCriteria erstelle)
    bei Datum ab Seite : 278-280

    für "If Not IsNull" ab seite 223 (9 Umgang mit NULL)

    Danach zur erweierung :
    einfach noch weitere "And"
    SQL = SQL & "And blabla = blablll "....... anfügen.

    ps. auch SQL ist nicht ein sehr Guter Name besser währe z.B. SqlStr
     
    Lanz Rudolf, 1. Juni 2011
    #2
  3. Moin,
    wo genau liegt denn dein Problem? Um ein neues Feld für die Suche aufzunehmen, musst du doch einfach nur eine weitere Zeile in dieser Art hinzufügen:
    Code:
    Obiges gilt für eine Suche nach Text mit Wildcard am Ende, für Zahlen, Datum etc. die Hinweise im Code befolgen und bei Bedarf hier nachfragen.
    Bei einem Kombifeld beachten, dass Me!Kombifeld den Wert aus der ersten, gebundenen Spalte für den Vergleich liefert. Wenn du eine andere Spalte vergleichen willst, musst du mit Me!Kombifeld.Column(X) darauf zugreifen, wobei die Zählung der Spalten bei 0 beginnt, die zweite Spalte wäre also Column(1).

    Und befolge auch Ruedis Ratschläge:
    Code:
    und vermeide Feldnamen wie "Name", "Jahr", etc.
    maike
     
    maikek, 1. Juni 2011
    #3
  4. SQL Filter erweitern?

    Hallo Maikek,

    das ich ein neues Feld einfügen kann weiß ich, jedoch weiß ich es nicht wie es mit dem Kombifeld geht. Ich habe auch die Werte in das Kombifeld übernommen, es so probiert:

    Code:
    jedoch nimmt er es nicht an.

    Carsten
     
    carstiee09, 1. Juni 2011
    #4
  5. anbei mal die Original Datei.
     
    carstiee09, 1. Juni 2011
    #5
  6. Hallo Carsten,

    auf welchem Formular in Deiner Beispielanwendung findet man das Kombinationsfeld für die Auswahl des Jahres?

    Du hast übrigens schon ein Kombinationsfeld in Deinem SQL-String mit drin. Das Land ist gemäß Deiner Beispieldatenbank ein Kombinationsfeld. Die Syntax kannst Du von dort übertragen.
    Hier ist Dir ein Column zuviel in den Code gerutscht:
    Code:
    Ich würde das Jahr nich mittels LIKE such sondern statt dessen auf Gleichheit prüfen.
    Code:
    Die Frage ist auch, ob das Jahr als Textwert gespeichert ist. In der Beispieldatenbank kann ich das Feld leider nicht finden. Wenn es kein Textfeld ist, müssen die Anführungzeichen entfernt werden:
    Code:
    Die vorerst letzte Frage wäre, ob das Kombinationsfeld für die Auswahl des Jahres mehr als eine Spalte hat. Wenn dem nicht der Fall ist, kannst Du auf die Angabe der Column verzichten:
    Code:
    Das es sich bei dem Begriff Jahr um einen sehr ungünstigen Bezeichner handelt hatte Ruedi Dir schon geschrieben. Hier kannst Du nachlesen, warum das problematisch ist:
    www.donkarl.com?FAQ1.5

    HTH
     
    Thomas Möller, 1. Juni 2011
    #6
  7. Code:
    Jahr (dass das ein Sch...name ist, wurde ja schon erwähnt) heißt dein Kombifeld und auch dein Tabellenfeld?

    Im Kriterium vergleichst du zwei Werte, den aus dem Tabellenfeld mit dem aus dem Kombifeld, ob sie übereinstimmen.
    Hat dein Kombifeld mit den Jahren wirklich zwei Spalten?
    Wenn du dir dein Kriterium mal ansiehst, was wird da jetzt verglichen?
    Code:
    Oben in deinem Code steht als Kommentar folgender Satz:
    Ich vermute mal, Jahr ist ein Feld vom Datentyp Zahl? Dann vergleiche hier auf Gleichheit (= 2005), nicht auf Ähnlichkeit (LIKE 2005*).

    maike
     
    maikek, 1. Juni 2011
    #7
  8. SQL Filter erweitern?

    Hallo Lanz Rudolf,

    anbei nochmal die Datei von mir.

    Grüße
    Carsten
     
    carstiee09, 2. August 2011
    #8
  9. Das ist die Beispieldatei aus dem DBWiki von Reinhard Kraasch und mitnichten deine Datei.
    Da auf Vorschläge meinerseits keine Reaktion erfolgt, gehe ich mal davon aus, dass diese nicht erwünscht sind.
    maike
     
    maikek, 3. August 2011
    #9
  10. Hallo Maike,

    doch Vorschläge zu dem Thema sind erwünscht. Würde gern nach mehreren Vornamen in der Datenbank suchen können, nicht nur nach einem.

    Grüße
    Carsten
     
    carstiee09, 3. August 2011
    #10
  11. Die Frage mit dem Kombifeld Jahr hat sich also erledigt?

    Wenn du nach mehreren Vornamen suchen willst, musst du dir per Code den Suchstring Krit erweitern/zusammenstellen.
    Entweder in dieser Art:
    Code:
    oder mit OR verknüpft:
    Code:
    Dafür brauchst du zur Eingabe der Suchkriterien entweder mehrere Felder oder z.B. ein Kombi-/Listfeld, das du entsprechend programmierst.
    maike
     
  12. Hallo Maike,

    ja das Thema hat sich erledigt. Danke.

    Ich habe es mit folgendem Code probiert: Code:
    auch ein neues Textfeld eingefügt, jedoch filtert Access es nicht.

    Deinen Code: Code:
    verstehe ich leider nicht, wie wird dieser aufgebaut?

    Carsten
     
    carstiee09, 3. August 2011
    #12
  13. SQL Filter erweitern?

    If Not IsNull(Me!Vorname2) Then Krit = Krit & " AND Vorname2LIKE '" & Me!Vorname2 & "*'"
    Hast du ein Feld in deiner Tabelle, das Vorname2 heißt?

    Der String mit OR würde so in etwa erzeugt:
    Code:
    Die Mischung von AND und OR in den Kriterien ist allerdings nicht ganz problemlos, da entstehen möglicherweise Vereinigungs- und Schnittmengen, die du so nicht wolltest. Eventuell musst du da dann noch Klammern einfügen.
    maike
     
  14. oh das hatte ich vergessen, die Tabelle anzupassen, jetzt geht es. Danke.

    Wie meinst du das mit:
     
    carstiee09, 3. August 2011
    #14
  15. Wenn du ein zweites Vornamenfeld in der Tabelle abfragst - was du so vorher nicht gesagt hattest - wirst du ja wohl doch mit AND verbinden wollen?
    Vorname = Hans OR Vorname2 = Klaus findet sowohl Hans wie auch Klaus
    Vorname = Hans AND Vorname2 = Klaus findet nur Hans Klaus

    Vereinigungs- und Schnittmengen:
    [KBDE]AND irgendwas = 1 AND irgendwasanderes = "ja" OR Vorname LIKE "Klaus"[/kbd] findet
    1 und ja und dazu noch alle, die mit Vornamen Klaus heißen, egal ob 1 oder ja ...
    maike
     
Thema:

SQL Filter erweitern?

Die Seite wird geladen...
  1. SQL Filter erweitern? - Similar Threads - SQL Filter erweitern

  2. SQL: Filtern mit mehreren Werten aus einer Excelspalte (Liste)

    in Microsoft Excel Hilfe
    SQL: Filtern mit mehreren Werten aus einer Excelspalte (Liste): Hallo zusammen, ich bräuchte Eure Hilfe, bei dem ich nicht weitere komme. Ich lasse importiere SQL-Daten über mehrere Abfragen im Editor vor filtern. Eine Spalte über einen Artikel...
  3. SQL-Abfrage mit where

    in Microsoft Access Hilfe
    SQL-Abfrage mit where: SQL-Abfrage mit where-Parameter. PNrHaupt ist eine Zahl. Ich vermute, da liegt der Fehler, aber ich weiss nicht, wie ich das darstellen soll. Bei jeder neuer PNrHaupt soll eine neue Datei erstellt...
  4. Apostroph in sql Recordset

    in Microsoft Access Hilfe
    Apostroph in sql Recordset: Hallo Gemeinde, einen hätte ich noch: sqlTitel = "SELECT * FROM tbl_Files_Edited WHERE Titel='" & strTitel & "'" Set rs1 = db.OpenRecordset(sqlTitel) Enthält strTitel einen...
  5. Access - SQL: Inhalt auf 255 Zeichen beschränkt

    in Microsoft Access Hilfe
    Access - SQL: Inhalt auf 255 Zeichen beschränkt: Hallo zusammen, in Access habe ich ein Modul mit folgender Funktion: Public Function SQLListe(Nummer As Long) As String Dim strSQL As String Dim rs As DAO.Recordset strSQL = "SELECT Dokument...
  6. Abfrage mit den jüngsten Einträgen erstellen

    in Microsoft Access Hilfe
    Abfrage mit den jüngsten Einträgen erstellen: Hallo liebe Experten, ich bastel gerade an einer Access-Datenbank für die Besuche meiner Klienten. Aus meiner Tabelle "KlientenT" und einer weiteren Tabelle mit "BesucheT" möchte ich eine Abfrage...
  7. Tabellen-Datenquelle in ganzem Dokument ändern

    in Microsoft Access Hilfe
    Tabellen-Datenquelle in ganzem Dokument ändern: Hallo, ich habe eine Access-Datenbank (FE & BE getrennt) mit mehreren Tabellen, Abfragen und Formularen. Nun möchte ich das BE nach SQL migrieren. Den Assistenten hierzu scheint es ja nicht mehr...
  8. Datenimport aus SQL - Filter in Zelle definieren

    in Microsoft Excel Hilfe
    Datenimport aus SQL - Filter in Zelle definieren: Hallo an alle, ich importiere über einen Button Daten aus einer Datenbank ins Excel. Der Code dazu schaut so aus: Sub Schaltfläche3_KlickenSieAuf() With ActiveWorkbook.Connections("Abfrage...
  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