Anzeige
Archiv - Navigation
1076to1080
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Query Abfrage mit Parameter?!

Query Abfrage mit Parameter?!
03.06.2009 17:22:06
Horst
Hallo zusammen,
lange nicht hier gewesen. Schön, dass es dieses Forum noch gibt.
Ich hole mir Daten über eine ODBC-Schnittstelle mit Hilfe des Microsoft Query.
Um die Datenmenge einzugrenzen, setzte ich als Kriterium [Datum] und fülle die folgende Parameterabfrage mit DD.MM.YYYY (z.B. 19.04.2002).
Soweit auch kein Problem, funktioniert. Doch wenn ich dieselbe Abfrage aus Excel heraus starte, die Parameterabfrage nach dem Kriterium fragt und ich das Datum genauso eingebe wie oben beschrieben, wird die Abfrage mit "allgemeiner ODBC-Fehler" abgebrochen.
Offensichtlich interpretiert Excel die Eingabe anders als Query. Auch hab ich es noch nicht geschafft das Datum direkt als Kriterium im Query (also ohne Parameterabfrage) vorzugeben.
Das Ganze können wir auch verkürzen, wenn mir jemand sagen kann wie die folgende CommandText aussehen soll:
"SELECT * FROM MeineTabelle MeineTabelle where BuchDatum= ?")
Ich hab bereits sämtliche mir geläufigen Formatierung (format("19.04.2002", "YYYY-MM-DD")) probiert. Kein Erfolg!
Folgendermaßen sehen die Daten im Query aus:
Nummer BuchDatum
12RR00019 2002-04-19 00:00:00,000
12RR03241 2002-07-17 00:00:00,000
12RR11325 2003-05-05 00:00:00,000
12RR29848 2004-08-26 00:00:00,000
12RR29862 2004-08-26 00:00:00,000
12RR37296 2005-03-26 00:00:00,000
12RR40898 2005-06-16 00:00:00,000
12RR52025 2006-04-29 00:00:00,000
12RR54735 2006-06-13 00:00:00,000
12RR57416 2006-08-14 00:00:00,000
12R000472 2002-04-19 00:00:00,000
12R007919 2002-04-19 00:00:00,000
12R019342 2002-04-19 00:00:00,000
Hoffe auf eure Hilfe.
Gruß Horst

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Query Abfrage mit Parameter?!
03.06.2009 17:39:09
fcs
Hallo Horst,
etwa so:

"SELECT * FROM MeineTabelle MeineTabelle where BuchDatum=" &  Format("19.04.2002", "YYYY-MM-DD") _
)


"19.04.2002" kannst du natürlich auch durch eine Variable vom Typ Date ersetzen.
evtl. als Format "YYYY-MM-DD hh:mm:ss"
verwenden.
Gruß
Franz

AW: Query Abfrage mit Parameter?!
03.06.2009 17:49:57
Horst
Hallo Franz,
Wenn´s so einfach wäre: genau das funktioniert eben nicht.
Ich bekomm die Abfrage aus VBA (bzw. Excel) mit keiner Formatierung hin, lediglich im Query und auch da nur mit der oben beschriebenen Parameter-Abfrage.
Hab auch schon "where (BuchDatum<={d '04-19-2002'})"~f~ in unzähligen Kombinationen getestet.
Auch folgende Schreibweise verursacht einen Fehler: ~f~"where (BuchDatum<='#19.04.2002#')"
Vielleicht noch 'ne Idee.
Anzeige
Ist das nicht #04/19/2002# ? _oT
03.06.2009 17:57:26
NoNet
_oT = "ohne Text"
AW: Ist das nicht #04/19/2002# ? _oT
03.06.2009 18:07:59
Horst
Hallo NoNet,
läuft auch nicht, ergibt einen SQL-Syntaxfehler (in VBA) und einen Syntaxfehler in Datum (in Query).
Laut Datenbank (Navision) ist das Feld BuchDatum vom Typ Date.
Als Makro aufzeichnen klappt leider auch nicht, beim zurückgeben an Excel wird abgebrochen und ein Bericht soll an Microsoft gesendet werden. (Vielleicht wäre das keine schlechte Idee, wenn sich daraufhin ein kompetenter Gates-Mitarbeiter telefonisch bei mir melden würde und sagt wie´s geht!) :-)
AW: Ist das nicht #04/19/2002# ? _oT
03.06.2009 21:59:04
fcs
Hallo Horst,
wen das Aufzeichnen des Makros schon nicht funktioniert, dann ist das natürlich nicht sehr schön. So hat man die Grund-Syntax fürs VBA-Modul natürlich auch nicht komplett. Leider erzeugt der Recorder ja für den Commandstring ein unübersichtliches, geschachteltes Array, das aber auch in eine "einfache" Stringvariable umgesetzt werden kann. Bei komplexen sehr langen Querryanweisungen kann hier der Recorder aussteigen wegen zuviel Zeichen in einer Programmzeile.
Den Text des Querry-Commands soltest du zumindest teilweise unter den Eigenschaften der Querry wiederfinden, nachdem du sie manuel über Daten importieren erzeugt hast.
Diesen SQL-Text am besten als zusammengebastelten Textstring im Code erzeugen und dann in den Command-Befehl einbauen.
Evtl. helfen dir meine Hinweise ja weiter.
Gruß
Franz
Anzeige
AW: Ist das nicht #04/19/2002# ? _oT
04.06.2009 08:52:47
Horst
Das Zusammenbasteln des SQL-Strings ist kein Problem, Filtern über andere Felder (z.B. String) läuft auch, mir fehlt lediglich die Schreibweise für dieses Datum-Feld.
Die Eigenschaften des SQL-Strings im Query sagt mir leider auch nicht mehr, denn die einzige bisher laufende Möglichkeit über Parameterabfrage wird ja doch nur als "?" angezeigt.
Hier ist die Lösung
04.06.2009 10:00:24
Horst
In einem kleinen Beitrag im Forum unter "Mibuso.com" steckte die Erlösung!
Damit nachfolgende Generationen auch noch was davon haben, hier die Lösung des Problems:
(http://mibuso.net/forum/viewtopic.php?t=2205&f=1)
Anzeige

21 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige