Ich entwickle derzeit eine kleine Access-Datenbank für eine Vereinsverwaltung.
1) In dieser Datenbank wird ein Ja/nein-Feld über eine Aktualisierungsabfrage verändert. Ich möchte erreichen, dass
das Makro, mit dem die Abfrage über Klick auf einen Button geöffnet wird, datumsmäßig gebunden ist - das Makro soll
nur in einem bestimmten Zeitraum ausgeführt werden können. Wie kann ich das erreichen?
2) Die Inhalte einer Spalte einer bestimmten Tabelle müssen zum Jahresanfang gelöscht werden - wie bewerkstellige
ich das, ohne dass ich in der Tabelle selbst die Daten löschen muss?
Office - Word, Excel und Co. 9.754 Themen, 41.624 Beiträge
Zu 1:
Was genau moechtest du erreichen?
Zu 2:
Nur einer Spalte, oder die ganze Tabelle?
Loeschen einer Spalte: Aktualisierungsabfrage bauen:
UPDATE deinetabelle
SET deinespalte = NULL;
Loeschen einer ganzen Tabelle:
Loeschabfrage:
DELETE FROM deinetabelle;
Volker "neanderix"
Zu 1 kann ich dir erst helfen, wenn ich genau weiss, was du willst.
Nochn Tipp: loese dich von den Makros und lerne VBA.
Danke erst mal für die Antwort! Du hast recht - VBA ist angesagt. Hast Du einen Buchtip für VBA-Anfänger?
zu der ersten Frage:
Es gibt in der DB einen an eine Abfrage gebundenen Serienbrief bzgl. der Beitragsbescheinigung (Finanzamt)
Wenn eine Bescheinigung ausgestellt worden ist, wird über eine Aktualisierungsabfrage das entsprechende Feld in der zugehörigen Tabelle (Bescheinigung ja/nein)
auf 0 gesetzt. Da Bescheinigungen jedes Jahr neu ausgestellt werden müssen, sollen zu Anfang des Jahres
die Felder für alle Mitglieder auf 0 gesetzt werden. Das läuft über eine Aktualisierungsabfrage.
Ich hätte aber gerne, dass diese Aktualisierungsabfrage nur in einem eng begrenzten Zeitraum ausgeführt werden kann - nämlich in den ersten Tagen des neuen Jahres -
damit nicht versehentlich im Laufe des Jahres alle Felder auf 0 gesetzt werden können.
Läßt sich das machen?
Du kannst mich auch direkt erreichen unter: claudia.heyne@freenet.de
Danke nochmal!
>Danke erst mal für die Antwort! Du hast recht - VBA ist angesagt. Hast Du einen Buchtip für VBA-Anfänger?
Yupp, habbich: WEnn du mit Access 97 arbeitst, empfehle ich "ACCESS 97 - Das handbuch" aus dem Verlag "Microsoft Press",
geschrieben von Ralf Albrecht und Natascha Nicol; ein Buch gleichen Titels von denselben Autoren gibt es auch fuer Access 2000
Das Buch enthaelt eine komplette Einfuehrung in Access, einen kurzen Einstig in die Theorie der Relationalen Datenbanken (Stichwort "Normalisierung") und eine
sehr gute Einfuehrung in VBA und auch in die Abfragesprache SQL - damit kommst du weiter, als mit dem grafischen Abfrageeditor.
Ausserdem Empfehlenswert fuer VBA-Einsteiger unter A2K: "Access Programmierung in 21 Tagen" aus dem Verlag Markt und Technik, geschrieben von Said Baloui; als
Einfuehrung in ACCESS und als nachschlagewerk "Access 2000 Kompendium" selber Verlag, selber Autor.
Als Lieferanten kann ich dir den EDV-Buchversand Delf Michel in Remscheid empfehlen, die liefern innerhalb von 24h und sind
sehr zuverlaessig.
Zu deiner Frage:
Geh in den Abfrageentwurf, und lass dir die SQL-Ansicht zeigen.
Fuege folgende WHERE Klausel hinzu:
WHERE month(date())=1 AND day(date()) between 1 and 5;
Erklaerung:
date() holt sich das aktuelle Systemdatum. Month(date()) trennt hiervon den Monat, Day(date()) den Tag ab.
die WHERE-Klausel ueberprueft nun, ob:
1. der Monat der erste, also der Januar ist.
2. mittels der BETWEEN...AND... Bedingung ob der Tag zwischen dem 1. und dem 5. (jeweils einschliesslich) liegt.
3. sind die beiden Bedingungen ueber das erste "AND " verknuepft, muessen also gleichzeitig vorliegen.
Du kannst natuerlich in der Klausel die Datumsspanne erweitern oder aendern, ganz nach Belieben.
Noch'n Tipp zum Schluss:
Schau dir mal die Access-FAQ unter www.donkarl.com an.
Die sind auch meine erste Anlaufstelle bei egal welchen problemen mit Access.
Volker "neanderix"
A
Hallo Volker,
das hilft wirklich weiter.Danke! Claudia