Hallo zusammen,
ich bin relativ neu, was Access angeht.
Ich habe eine Tabelle in der unter anderem folgende Spalten vorhanden sind:
intervall, letztepruefung, naechstepruefung
In die Zelle Intervall wird eine Zahl eingetragen. Zum Beispiel 0,5 für halbes Jahr, 1 für 1 Jahr usw.
In die Zelle letztepruefung wird das Datum der letzten Geräteprüfung eingetragen.
Die Zelle naechstepruefung soll eigenständig anhand intervall und letztepruefung errechnet werden.
Die Zellen sind folgende Datentypen:
intervall (zahl)
letztepruefung (datum)
naechstepruefung (datum)
Ich wäre euch sehr dankbar, wenn mir jemand schildern kann, wie das Datum automatisch eingetragen wird.
Danke euch
Hallo,
das Intervall würde ich in Monaten angeben, das ist dann eine ganze Zahl, damit lässt sich leichter rechnen.
Das Feld Naechstepruefung ist in der Tabelle überflüssig, die nächste Prüfung wird nur in einer Abfrage errechnet.
NaechstePruefung: DatAdd("m";[Intervall];[LetztePruefung])
In SQL die komplette Abfrage:
SELECT LetztePruefung, Intervall,
DateAdd("m",[Intervall],[LetztePruefung]) AS NaechstePruefung
FROM Tabellenname
PS:
In Access gibt es keine Zellen, die gibt es nur in Excel.
Da gibt es Felder (=Spalten) und Datensätze (=Zeilen).
Hallo,
ZitatZum Beispiel 0,5 für halbes Jahr, 1 für 1 Jahr usw.
Da musst Du präziser werden.
Vorschlag: das Intervall in Monatseinheiten angeben, z. B: 12 == 1 Jahr, 6 == 1/2 Jahr.
Weiterhin kann "naechstepruefung" ersatzlos entfallen.
Der nächste Prüfungstermin kann jederzeit aus "Intervall" und "LetztePrüfung" berechnet werden:
LP: DateAdd("m";[Intervall];[LetztePrüfung])z. B. als berechnete Spalte in einer Abfrage.
Wartungsplanung (https://www.access-o-mania.de/forum/index.php?topic=24409.msg143630#msg143630)
Danke euch schon mal für die Unterstützung.
Muss nur mal sehen, wie ich die Abfrage dann auf mein Formular bekomme :o
Hallo,
es ist zweckmäßig als Datenquelle für ein Formular immer eine Abfrage zu verwenden.
Nur dann ist z.B. eine zuverlässige Sortierung der Daten möglich.
Außerdem ist eine gespeicherte Abfrage im Regelfall auch der schnellste Zugriff auf die Daten.
Access erstellt im Hintergrund auch bei Verwendung der Tabelle direkt immer eine Abfrage.
Wenn eine angelegte Abfrage vorleigt entfällt dieser Schritt.
Lege also eine Abfrage an mit der Tabelle als Datenbasis, nimm die Felder in die Abfrage auf die benötigt werden. Füge der Abfrage die Berechnung hinzu:
NaechstePruefung: DateAdd("m";[Intervall];[LetztePruefung])
Obiger Code ist für die Entwurfsansicht.
Speichere die Abfrage mit einem Namen und binde dann das Formular an die Abfrage (Datenquelle).
Guten Morgen,
also...
Ich habe eine Abfrage erstellt. Da rechnet er sauber.
Wenn ich aber die Abfrage an das Formular binden möchte, steht im Feld #Name?
Hallo,
zeige mal den SQL Text der Abfrage.
Was steht in dem Formularfeld das #Name zeigt als Steuerelementinhalt ?
Hier die SQL Abfrage
]
SELECT LetztePruefung, pruefungsintervall, DateAdd("m",[pruefungsintervall],[LetztePruefung]) AS NaechstePruefung
FROM abc_messgeraete;
[/code
Im Feld =[qry_messgeraete_intervall]![NaechstePruefung]
Hallo,
das Feld wird direkt an das Abfragefeld gebunden.
NaechstePruefung
Ohne Gleichheitszeichen.
Hat das Formular nur diese 3 Felder?
Leider komme ich nicht weiter.
Ich hab mal meine Datei beigefügt. Vielleicht kann einer unterstützen.
Es geht um das Formular abc_messgeraete
Hallo,
warum machst Du nicht das was man Dir sagt ? ;D
Ich zitiere mich:
ZitatLege also eine Abfrage an mit der Tabelle als Datenbasis, nimm die Felder in die Abfrage auf die benötigt werden. Füge der Abfrage die Berechnung hinzu:
Speichere die Abfrage mit einem Namen und binde dann das Formular an die Abfrage (Datenquelle).
Genau das habe ich jetzt gemacht.
DB im Anhang.
Anmerkungen:
- Warum sind keine Beziehungen mit referentieller Integrität eingestellt (erst dann ist es eine echte Datenbank) ?
- Keine Nachschlagefelder in den Tabellen verwenden, nur in Formularen
- keine Wertelisten für die Formularkombis verwenden (immer Tabellen anlegen)
Super, danke dir.
Wie gesagt, ich bin komplett neu. Ich nehme mir deine Tipps zu Herzen :-)
Ich werde noch verrückt.
Hab jetzt die Abfrage 1zu1 in einer neuen Datei übernommen.
Und wieder errechnet er die NaechstePruefung nicht.
Klar kann ich die fertige Access Datei verwenden. Um jedoch das Prinzip zu verstehen, wollte ich es selbst nochmal versuchen.
Hallo,
so lässt sich mit Deinen Angabe keine Fehlersuche betreiben.
- Kommt eine Fehlermeldung
- wie sieht die Abfrage für das Formular jetzt aus ?
Am Prinzip ist auch nicht viel zu verstehen. Das ist eine einfache Abfrage mit der Tabelle als Datenherkunft mit allen Feldern der Tabelle erweitert um die Spalte für die Berechnung.
Diese Abfrage ist dann Datenquelle des Formulars.
Lade einfach die Datei die nicht rechnet hier noch mal hoch, wenn Du nicht klar kommst.
Guten Morgen, Problem behoben.
Hatte nicht die richtige Quelle in den Eigenschaften angegeben.
Danke euch