Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

datumsabhängige Abfrage

Begonnen von boxfishy, August 09, 2010, 20:17:04

⏪ vorheriges - nächstes ⏩

boxfishy

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?

database

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

boxfishy

Danke für die Hilfe, habs jetzt letztendlich mit einer Parameter-Abfrage hingekriegt. Wahrscheinlich nicht so elegant, aber Zweck zumindest erfüllt...

oma

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]
nichts ist fertig!

boxfishy

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

oma

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
nichts ist fertig!

boxfishy

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.

oma

Hallo,

ob Formular- oder Berichtsausgabe; das Beispiel kann man doch entsprechend umbauen

Gruß Oma
nichts ist fertig!

boxfishy

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

oma

Hallo,

vielleicht hilft dir ein kleines Beispiel bei deinem Nachhilfekurs ;D

Gruß Oma

[Anhang gelöscht durch Administrator]
nichts ist fertig!