SQL Abfrage aus Formular erstellen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: SQL Abfrage aus Formular erstellen

Re: SQL Abfrage aus Formular erstellen

von RobertG » Mo, 23.09.2013 18:57

Hallo Pixelletter,

vielleicht

Code: Alles auswählen

sSQL = "SELECT ""Land"", ""Region"", ""IFF"" FROM ""Bestand_Videos"" WHERE ""Land"" = '"+ sLand +"'"
Lediglich Zahlenwerte kommen ohne eine Maskierung mit Hochkommata aus. Warum allerdings "Column not found" kommt, wenn Du einen Inhalt eingibst, kann ich auch nicht sagen. Dazu müsste ich die Tabelle "Bestand_Videos" kennen.

Gruß

Robert

Re: SQL Abfrage aus Formular erstellen

von pmoegenb » Mo, 23.09.2013 17:59

Hast Du wirklich eine Spalte/Feldnamen mit der Bezeichnung IFF ?

Re: SQL Abfrage aus Formular erstellen

von Pixelletter » Mo, 23.09.2013 16:46

Ok, dann sollte es eigentlich so aussehen?

Code: Alles auswählen

 sSQL = "SELECT ""Land"", ""Region"", ""IFF"" FROM ""Bestand_Videos"" WHERE ""Land"" = "+ sLand
Funktioniert auch, bleibt das Problem, dass ich eine Fehlermeldung "Collum not found" erhalte, wenn ich für sLand den Inhalt einer Zelle der Spalte Land eingebe.
Irgend etwas stimmt mit dem Filter nicht.

Re: SQL Abfrage aus Formular erstellen

von RobertG » Fr, 20.09.2013 16:27

Hallo Pixelletter,

mich wundert eigentlich, wie Du die Abfrage konstruiert hast. Ich bin immer davon ausgegangen, dass die Feldbezeichnungen in doppelten Anführungsstrichen stehen müssen. Die ganzen AS-Bezeichnungen kannst Du Dir jedenfalls sparen.
Das sieht dann für eine einfache Abfrage so aus:

Code: Alles auswählen

 "SELECT * FROM ""Tabelle1"""
Der Abfragestring ist in doppelten Anführungsstrichen gehalten, Tabellenbezeichnungen und Feldbezeichnungen ebenfalls in Anführungszeichen, die aber durch Anführungszeichen wiederum maskiert werden müssen, damit sie als solche auch in dem String erscheinen.
Die einzelnen Felder klapperst Du mit

Code: Alles auswählen

SQL_Result.getString(1)
SQL_Result.getString(2)
SQL_Result.getString(3)
ab, wenn Du z.B. 3 Felder, formatiert als 'char', hast.

Gruß

Robert

SQL Abfrage aus Formular erstellen

von Pixelletter » Fr, 20.09.2013 16:02

Hallo! Ich steh mal wieder vor'm Scheunentor.

Ich möchte ein Formular bauen, mit dem man Ergebnisse aus einer Datenbank suchen und filtern kann. Also eine SQL- Abfrage, die durch Textfelder verändert werden kann, ohne die .odb-datei zu öffnen.

Ich habe mir aus verschiedenen Foren-Beiträgen folgendes zusammen gebastelt (siehe unten). Dieses Makro sollte eigentlich den Text, der in das Textfeld txtLand geschrieben wird (z.B. Spanien, Griechenland, Deutschland), als Kriterium für die Abfrage verwenden. Dann sollten mir die Datensätze mit diesem Kriterium in msgboxen gezeigt werden. (Im nächsten Schritt sollten alle Datensätze mit dem Kriterium in einem Tabellenkontrollfeld gezeigt werden, aber eins nach dem anderen).

Tatsächlich liefert es aber nur ein Ergbnis, wenn ich einen Spalltennamen eingebe. (Also Land, Region usw.) Ich hab auch schon die SQL-Abfrage mit dem Abfragen-Assistent erstellt und eingefügt. Damit konnte das Programm aber garnichts anfangen.

Warum funktioniert der Filter nicht?
Und wie bekomme ich es hin, dass mir der ganze Datensatz angezeigt wird?

Der Code sieht so aus:

Code: Alles auswählen

Sub S_such_Land
        oform = thiscomponent.drawpage.Forms.MainForm
        oconnection = oform.activeconnection
        otxtLand = oform.txtLand
        sLand = otxtLand.text
        SQL_Statement = oconnection.createstatement
        sSQL = "SELECT Land AS ""Land"", Region AS ""Region"", IFF AS ""IFF"" FROM ""Bestand_Videos"" WHERE Land = "+ sLand
        msgbox "Bis hier hin läuft's. sLand= " + sLand
        SQL_Result = SQL_Statement.executequery(sSQL)
        While SQL_Result.next()
        msgbox SQL_Result.getString (1)
        Wend
End Sub

Nach oben