Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1332to1336
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
Access Abfrage aus Excel VBA
07.10.2013 20:03:46
Sebastian
Hallo,
ich versuche gerade werte aus eine Access Datenbank zu filter. Aber irgendwie funktioniert das nicht richtig.
Ich habe in meiner Datenbank das Datum als "Text" gespeichert format "dd.mm.yyyy". Meine beiden vergleicher stehen in zwei Textboxen, ebenfalls in diesen Format.
Wenn ich Abfrage scheint er immer nur den Tag als Vergleich zu nehmen. Was mache ich nur falsch?
mein Code für die Abfrage:

MeinStart = TextBox26
MeinEnde = TextBox27
SQLCommand = "SELECT * FROM Reisen where ReiseDatum >= '" & MeinStart & "' and ReiseDatum 

Hat jemand eine Rat für mich? Vielen Dank schonmal Beste Grüße
Sebastian

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Access Abfrage aus Excel VBA
08.10.2013 00:04:13
fcs
Hallo Sebastian,
wenn du das Datum in der Datenbank wirklich als Text im Format TT.MM.JJJJ gespeichert hast, dann hast du einen Kardinalfehler begangen.
Datumsangaben in dieser Schreibweise als Text kann man nicht mehr vernüftig mit &lt oder &gt abfragen,
da die Sortierreihenfolge ja dann z.B.
01.01.2012
01.01.2013
01.01.2014
01.02.2013
01.03.2013
02.01.2013
02.09.2013
03.02.2013
ist.
Eigentlich kommst du aus dieser Klemme nur wieder raus, indem du in deiner Datenbank ein echtes Datumsfeld einrichtest oder das Textfeld umschreibst in ein Format JJJJ-MM-TT. Bei dieser Datumsschreibweise funktioniert dann auch die Selektion &gt= und &lt=.
Gruß
Franz

Anzeige
AW: Access Abfrage aus Excel VBA
08.10.2013 00:11:08
Sebastian
Die Datenbank hat nur ein paar einträge - Bis jetzt!!
Also ist es sinnvoll das ganze nochmal zu löschen, die datenbank spalte als datum deklarieren und dann neu eintragen zu lassen, richtig?
Aber wenn ich vor dem Eintragen das Datum in einem Textfeld habe, wie speicher ich das dann in die Datenbank?
Bisher habe ich das so gemacht:
"INSERT INTO Reisen (ReiseDatum) VALUES ('" & TextBox1 & "')"
Da bekomme ich aber sicher nur das Datum als Text eingetargen oder?
Vielen Dank nochmal für Hilfe
Gruß
Sebastian

AW: Access Abfrage aus Excel VBA
08.10.2013 07:23:07
Sebastian
Guten Morgen,
ich habe jetzt mal meine Datenbank zum test angepasst. Also Feld in Datum/zeit und Standartdatum.
Als wert in der Datenbank steht jetzt "08.10.2013 07:10:14" einzutragen = now
Aber wie kann ich das Abfragen?
Dim MeinStart as Date
MeinStart = "08.10.2013 07:10:14"
SQLCommand = "SELECT * FROM Reisen where ReiseDatum >= '" & MeinStart & "' ORDER BY ReiseDatum DESC"

Bekomme jetzt Trotzdem Typen unverträglich :-(
Und eigentlich brauche ich die Uhrezit auch nicht. Also im späteren Textfeld steht dann nur das Datum 08.10.2013.
Hat noch jemand eine Idee?
Vielen Dank für Hilfe

Anzeige
AW: Access Abfrage aus Excel VBA
08.10.2013 07:29:01
Sebastian
Noch ein nachtrag: mit deinem Vorschlag das Format auf JJJJ-MM-TT klappt es. aber es muss doch auch mit dem Richtigen Datum funktionierten

AW: Access Abfrage aus Excel VBA
08.10.2013 07:51:39
fcs
Hallo Sebastian,
ich kann dir nicht 100% sagen, wie der Textbox Inhalt in die SQL-Abfrage eingebaut werden muss.
Probiere mal
SQLCommand = "SELECT * FROM Reisen where ReiseDatum >= '" & CDate(MeinStart) _
& "' ORDER BY ReiseDatum DESC"
oder
SQLCommand = "SELECT * FROM Reisen where ReiseDatum >= '" & Cdbl(CDate(MeinStart)) _
& "' ORDER BY ReiseDatum DESC"

Die zusätzliche Zeitangabe in der Datenbank ist bei &gt= kein Problem.
Ich bin der SQL-Syntax aber nicht so firm, dass ich dir die korrekte Syntax für die erforderlichen Wertumwandlungen angeben kann, damit andere Vergleiche wie = oder &lt= oder &gt korrekt funktionieren.
mfg
Franz

Anzeige
AW: Access Abfrage aus Excel VBA
08.10.2013 07:58:12
Sebastian
Vielen Dank für deine Antwort - Aber das funkioniert beides leider nicht :-(
Man kann schon verzweifeln.
Hat noch jemand eine Idee?

AW: Access Abfrage aus Excel VBA
08.10.2013 08:10:39
Sebastian
Ich nochmal - habe jetzt rausbekommen das ich das Datum z.B. so abfragen kann:
SQLCommand = "SELECT * FROM ReisePunkte where Month(ReiseDatum) = 11 and Day(ReiseDatum) = 8 and year(ReiseDatum) = 2013 ORDER BY ReiseDatum DESC" 'ASC"
Das funktioniert auch - aber wie bekomme ich das komplette Datum auf einmal?

AW: Access Abfrage aus Excel VBA
08.10.2013 10:08:07
Luschi
Hallo Sebastian,
bei mir klappt das so:

Sub testSQL()
Dim MeinStart As String, MeinEnde As String
Dim sqlCommand As String
MeinStart = "30.09.2013"
MeinEnde = "04.10.2013"
sqlCommand = "SELECT * FROM Reisen Where Reisen.ReiseDatum >= #" & _
Format(MeinStart, "m\/d\/yyyy") & "# And Reisen.ReiseDatum 
Gruß von Luschi
aus klein-Paris
PS: Da bei Dir das Datum aus Textboxen kommt, liegt es wie bei mir als Textwert vor umd muß entsprechend umformatiert werden (Monat/Tag/Jahr). Die '/'-Zeichen müssen in der Format´-Funktion maskiert werden und die '#'-Zeichen sind in Access-SQL Pflicht.

Anzeige
AW: Access Abfrage aus Excel VBA
08.10.2013 10:29:14
Sebastian
Hallo Luschi,
vielen Dank für deine Hilfe. Der Code Läuft ohne fehler durch - allerdings werden mir keinen Daten mehr ausgegeben.
Ich zweifle langsam an mir selber oder an meiner Access Datenbank. Deklariert habe ich dort eindeutig Datum/Uhrzeit und Standartdatum. Die werte sehen so aus "08.10.2013 07:10:14"
Was mache ich nur falsch?

AW: Access Abfrage aus Excel VBA
08.10.2013 10:46:06
Sebastian
Ohhh das funktioniert - Habe das Meinende übersehen :-)
Datum geändert und es funktioniert.
Vielen Dank

23 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige