netzproblemi
Goto Top

Ueber ein Formular Zeitraeume abfragen - geht das?

Ich möchte gerne in einem Formular nach Zeiträumen suchen können.

Ich habe eine kleine Kurstabelle erstellt, mit einem "von" und einem "bis" Datum.
Beispiel: Kurs läuft vom: 13.10.2006 bis 27.10.2006 Nun möchte ich irgendwann einmal abfragen können: welche Kurse laufen in der Zeit vom: 00.00.0000 bis 00.00.00.

Unter Clipper konnte ich das - unter Access noch? nicht. Weiss jemand Rat?

Content-Key: 43110

Url: https://administrator.de/contentid/43110

Ausgedruckt am: 29.03.2024 um 10:03 Uhr

Mitglied: 27234
27234 26.10.2006 um 16:43:32 Uhr
Goto Top
Hallo,

ich kenne nun Clipper nicht, aber mit ACCESS geht es 100%, mit EXCEL meiner Meinung nach auch.

Gruß - Bolle97
Mitglied: Netzproblemi
Netzproblemi 26.10.2006 um 17:24:37 Uhr
Goto Top
Da muss ich doch staunen. Auch ich war mir klar, dass es unter Access geht - aber wie?????
Mitglied: 25110
25110 26.10.2006 um 17:27:00 Uhr
Goto Top
Hier ist es beschrieben:

http://support.microsoft.com/kb/304428/de

mfg
Mitglied: bastla
bastla 26.10.2006 um 18:07:52 Uhr
Goto Top
Hallo Netzproblemi!

Ergänzend: Die Abfrage selbst müsste folgende Kriterien (mit "Und" verknüpft) aufweisen:

Feld "von": <= ZeitraumEnde
Feld "bis": >= ZeitraumBeginn

HTH
bastla
Mitglied: Biber
Biber 26.10.2006 um 18:37:06 Uhr
Goto Top
...und falls Du die Von/Bis-Parameter aus Text umwandeln musst in einen Datumswert,
(z.B. beim Testen Deiner Queries), dann...
SELECT vondatum, bisdatum
FROM MeineTöpferkurse
where vondatum>=cdate("01.11.2005") and  bisdatum<=cdate("01.11.2006");  

Gruß
Biber
Mitglied: bastla
bastla 26.10.2006 um 18:41:57 Uhr
Goto Top
... wobei Du damit alle vollständig im angegebenen Zeitraum liegenden Kurse erhalten wirst.

Grüße
bastla
Mitglied: Biber
Biber 26.10.2006 um 18:57:00 Uhr
Goto Top
Ja, ja @bastla

war ja nur ein Beispiel....
SELECT vondatum, bisdatum, "Ganz im Zeitraum" as Anmerkung   
FROM MeineTöpferkurse
where vondatum>=cdate("01.11.2005") and  bisdatum<=cdate("1.11.2006")  
union
SELECT vondatum, bisdatum, "Zum Teil im Zeitraum (Ende später)" as Anmerkung   
FROM MeineTöpferkurse
where vondatum>=cdate("01.11.2005") and  bisdatum>cdate("1.11.2006")  
union
SELECT vondatum, bisdatum, "Zum Teil im Zeitraum (Anfang eher)" as Anmerkung   
FROM MeineTöpferkurse
where vondatum<cdate("01.11.2005") and  bisdatum<=cdate("1.11.2006")  

Besser? face-big-smile

[Die Überprüfung, ob VonDatum auch kleiner gleich BisDatum ist, kann er sich selber hinfrickeln...]

Grüße
Biber
[Edit]
Aber die eigentliche Frage ".... -geht das?" sollte doch jetzt mit einem klaren "Im Prinzip ja" beantwortet worden sein...
[/Edit]
Mitglied: bastla
bastla 26.10.2006 um 19:03:43 Uhr
Goto Top
@Biber

Ich hab ja (fast) gar nix gesagt ... face-wink

Grüße
bastla
Mitglied: Netzproblemi
Netzproblemi 26.10.2006 um 19:18:25 Uhr
Goto Top
Danke für die vielen Tipps - Ich muss also Visual Basic können oder kann ich es auch irgendwie über Abfragen lösen die ich dann in mein Formular einbinde?
Mitglied: Biber
Biber 26.10.2006 um 19:47:36 Uhr
Goto Top
@Netzproblemi

Auf eine so klare Oder-Frage verdienst Du ein deutliches Ja! von mir.

Du kannst die SQL-Abfrage (oder Neu-Deutsch "Query") sinngemäß so als Abfrage speichern:
SELECT vondatum, bisdatum, "Ganz im Zeitraum" as Anmerkung   
FROM MeineTöpferkurse
where vondatum>=cdate(Mindatum) and  bisdatum<=cdate(MaxDatum)
UNION SELECT vondatum, bisdatum, "Zum Teil im Zeitraum" as Anmerkung   
FROM MeineTöpferkurse 
where vondatum>=cdate(MinDatum) and  bisdatum>cdate(MaxDatum)
union
SELECT vondatum, bisdatum, "Zum Teil im Zeitraum (Anfang eher)" as Anmerkung   
FROM MeineTöpferkurse
where vondatum<cdate(MinDatum) and  bisdatum<=cdate(MaxDatum)
;

...Dann wird der Anwender jedes Mal nach den Parametern "MinDatum" und "MaxDatum" gefragt.
Es sei denn, diese "MinDatum" und "MaxDatum" sind schon als Variablen bekannt.

In dem M$-Link weiter oben sind doch Beispiele dafür, wie man/frau gegen Formularfelder prüfen kann.
(Genau, diese *würg*-Syntax mit ...[Formular]![FeldX].. etc.)

Visual Basic (for Appz) ist ab einem gewissen Komplexitätsgrad Deiner Formular allerdings schon hilfreich.
Was oben steht, hat aber bis auf die cdate()-Funktion nix mit VBA zu tun - das ist nur SQL oder was M$ dafür hält.

Gruß
Biber
Mitglied: Netzproblemi
Netzproblemi 29.10.2006 um 07:28:59 Uhr
Goto Top
Herzlichen Dank für deine Ausführung. Ich habe es versucht und auch einen kleinen Teilerfolg erreicht. Ich konnte die Abfrage allerdings nicht in ein Formular einbinden, er verlangte laufend Felder und das Ergebnis war auch nicht so ganz das, was ich mir vorstellte + auch nicht richtig.

Gibt es hierzu irgendwo eine verständliche Anleitung oder welches Fachbuch könntest du mir empfehlen?


Ich hatte mir Access-Heftchen von KnowWare gekauft und einfach den Verfasser angemailt. Der hatte sich noch am selben Tag hingesetzt und mir eine MusterDatenbank erstellt (im Gegensatz zum Herdt-Verlag die mich an Microsoft verwiesen).

Herzlichen Dank an alle - besonders natürlich an den Herrn Barkow von KnowWare.