Hallo Leute,
ich will die Auswertung meiner Access 2003-Datenbank datumsabhängig gestalten. D.h. alle Datensätze zwischen Datum 1 und Datum 2 sollen einbezogen werden. Datum 1 und 2 sollen aber nicht festgelegt sein, sondern es soll dem Datenbanknutzer möglich sein, z.B. via Dialogfenster, die gewünschten Daten einzugeben (sprich: ohne dass der Quelltext der Sql-Abfrage modifiziert werden muss). Ist sowas möglich?
Hallo, guten Abend,
JA das ist möglich - auf verschiedene Arten und Weisen!
Zitatz.B. via Dialogfenster
...also per Inputbox wobei hierbei das Datum als Text übergeben wird.
Dieses Datum musst du dann jedoch aufbereiten um es an die Abfrage übergeben zu können
Der SQL-String wird dadurch dynamisch geändert und muss nicht im Quellcode umgeschrieben werden.
So KÖNNTE die Sache in folgender Art gelöst werden:
Private Sub Datumsauswahl()
Dim strDatum1 As String, strDatum2 As String, startDatum as String, endDatum as String
Dim strSQL As String
strDatum1 = InputBox("Bitte Datum 1 eingeben", "Datum 1")
strDatum2 = InputBox("Bitte Datum 2 eingeben", "Datum 2")
startDatum = Format(strDatum1, "\#yyyy\-mm\-dd\#")
endDatum = Format(strDatum2, "\#yyyy\-mm\-dd\#")
strSQL = "SELECT * FROM DeineTabelle WHERE Datum BETWEEN " & startDatum & " AND " & endDatum
'SQL-String hier weiterverarbeiten....
'....
'...
'..
End Sub
Das Handling der Datumswerte in diesem Beispiel ist natürlich übertrieben in die Länge und Breite gezogen, kann und sollte vereinfacht dargestellt werden und dient in der Form hier nur der Veranschaulichung der Vorgänge.
Wobei die Funktionalität in obigem Beispiel sehr wohl gegeben ist, bitte auch zu beachten, dass auch zum Abfangen etwaiger Eingabefehler keine Fehlerbehandlung integriert ist!
HTH
Peter
Danke für die Hilfe, habs jetzt letztendlich mit einer Parameter-Abfrage hingekriegt. Wahrscheinlich nicht so elegant, aber Zweck zumindest erfüllt...
Hallo boxfishy,
Zitat...habs jetzt letztendlich mit einer Parameter-Abfrage hingekriegt. Wahrscheinlich nicht so elegant, aber Zweck zumindest erfüllt...
Das kann man wohl so sagen, Parameterabfragen sind nun wirklich nicht das Gelbe...
Dabei ist die Umsetzung von Peters Vorschlag doch realisierbar!
Schau dir mal ein kleines Beispiel an, hierbei die Realisierung von Gründung von: und Gründung bis:
Gruß Oma
[Anhang gelöscht durch Administrator]
Stellt sich mittlerweile raus, dass die Parameterabfrage echt unpraktikabel ist, daher habe ich mir nochmal vorgenommen, das mit der Input-Box zu probieren. Schätze mal, den Vorschlag von Peter muss ich über ein VBA-Modul in die Datenbank einfügen (ist das richtig?). Bin datenbank- und programmiertechnisch noch blutiger Anfänger und habe daher tatsächlich keine Ahnung von VBA. Wie muss ich den SQL-String da weiterführen? Alles was ich bisher versucht habe, führte zu dem Ergebnis, dass er den Befehl als ungültig befunden hat.
@Oma: wo finde ich dein erwähntes Beispiel?
Grüße boxfishy
Hallo,
auch mit einer Inputbox ist das doch nicht so das rechte. mache ein Eingabeformular für deinen Auswahldaten.
Das Beispiel siehst du, wenn du dich angemeldet hast!!!
Gruß Oma
Prinzip in deinem Beispiel leuchtet mir ein. In deinem Beispiel ist das ganze als Formular, ich soll die Abfrage in einem Bericht zurückgeben. Wenn der Bericht geöffent wird, wäre es schön, wenn dann ein Dilogfenster aufgeht, wo das Anfangs- und Enddatum eingegeben werden kann und dann nur die entsprechenden Daten berücksichtigt werden.
Hallo,
ob Formular- oder Berichtsausgabe; das Beispiel kann man doch entsprechend umbauen
Gruß Oma
Danke für die Hilfe,
kriegs nicht wirklich hin, check null, was ich hier wie machen muss. Wie gesagt, hab Null Ahnung von VBA. Werds wohl dann besser doch mal mit kleinem umfassenden Nachhilfekurs versuchen.
Grüße
Boxfishy
Hallo,
vielleicht hilft dir ein kleines Beispiel bei deinem Nachhilfekurs ;D
Gruß Oma
[Anhang gelöscht durch Administrator]