PDA

Vollständige Version anzeigen : Variablen in SQL?


Dina
28.05.2001, 10:37
Hallo!
Wie übernehme ich codierte Variablen (VBA)
als Kriterium in Access generierte Abfragen?
Danke!
Dina

O-Schreiner
28.05.2001, 10:59
Hi Dina,

nun, das ist eine interstellare Fragestellung ähnlich der "wie geht Word?" :) aber ich versuch es Dir mal zu erklären.

Deine Variablen beinhalten sicher Werte die Du in bestimmten Spalten Deiner Tabelle per SQL suchst, oder? Ich geh einfach mal davon aus.

Also baust Du einen SQL-String auf, der Deine Spalten enthält (die Du sehen willst) und der in der WHERE-Klaúsel die Bedingung also Deine Werte prüft. Dabei musst Du leider die einzelnen Feld-Typen berücksichtigen:

Text-Felder müssen mit einem ' (einfaches Gänsefüsschen) geprüft werden
Zahlen / Wert kann man direkt so übernehmen
Datum muss amerikanisch notiert werden (MM/DD/YYYY) und mit # (dem Nummernkreuzchen) eingebetten werden

also Beispiel:

DIM SQLString as String

SQLString = "SELECT Spalte, Spalte, Spalte FROM Tabelle WHERE SpalteText = '" & DeineTextVariable & "';"

SQLString = "SELECT Spalte, Spalte, Spalte FROM Tabelle WHERE SpalteNumerisch = " & DeineNumerischeVariable & ";"

HTH cu, Olly

Dina
28.05.2001, 12:46
Ich will die Variable als Kriterium im Access-Abfragegenerator eingeben und keinen SQL-String codieren.
Wie kann man Variablen als Kriterium im Abgragegenerator eingeben?
Danke!!!
Dina

O-Schreiner
28.05.2001, 14:44
*hm* gute Frage ... also wie Du von dort an eine VBA-Variable rankommst weiss ich leider auch nicht. Einen Parameter kannst Du aber mit [VariablenName] in den Kriterien einsetzen. Der wird dann am Anfang der Abfrage vom Benutzer abgefragt.

Wars das?

cu, Olly

jb
28.05.2001, 14:47
Das frage ich mich auch... JB. Genau die gleiche. Höffentlich finden wir was...

jb
28.05.2001, 16:53
Halo. Ich weiß nicht, ob das helfen wird, aber (Entschuldigen Sie mein Deutsch, bitte - ich lerne es nur für 1 Jahr). - Aber, zum Thema:

Vielleicht es ist so:

Es ist möglich erst ein Formular zu erstellen, wo die Kriterien abgegeben werden (z.B. mit der Spalte "Name") und ein Buttin, damit man kann die Abfrage starten. - denn, in Abfrage Kriterien wir schreiben:

Wie [Formulare]![Dein_FORMULAR]![Vorname].[Text]

Damit wird diese Abfrage zeigen dir nur die Daten, die in der Spalte "Name" haben das, was hat man in der Spalte "Name" in Formular geschrieben.

Ja, auch dass - als du Abfrage mit dem Knopfdruck startest - vergiss du nicht

Name.SetFocus

in Button - Befehl schreiben.


Viel Glück!

barlo
31.05.2001, 08:30
Hallo Dina,
versuche es mit einer selbst erstellten globalen Funktion, die du in das Kriterienfeld einsetzt.

=meineglobaleFunktion()
(nicht getestet)

Diese Funktion ermittelt den Wert der Variablen und übergibt Sie beim Aufruf.
Achte auf den DatenTyp!

mfg Barlo

Stema
07.06.2001, 18:42
Hallo Dina,

wenn ich's richtig verstanden habe, möchtest Du ein Query starten (aus DB-Fenster, aus VBA) und ein Kriterium zur Einschränkung eingeben.
Ist ganz einfach: Du setzt in der Abfrage eine Variable einfach in eckige klammern, z.B. [Produkt]. Rufst Du jetzt die Abfrage auf, dann kommt eine Inputbox: Bitte Parameterwerte eingeben.
Auch aus VBA kannst Du die Variable füttern.

Private Sub Command0_Click()
Dim DB As Database
Dim Qry As QueryDef
Dim Kriterium As String

Set DB = CurrentDb
Set Qry = DB.QueryDefs("Query1")
Kriterium = "Fernseher"
Qry.Sql = "SELECT * FROM tblTabelle WHERE fldFeld= """ & Kriterium & """"
DoCmd.OpenQuery Qry.Name
Qry.Sql = "SELECT * FROM tblTabelle WHERE fldFeld= [Produkt]"
Qry.Close
End Sub