Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

aus Formulareingabe Daten berechnen





Frage

Hallo liebe Leute, könnte nochmal eure Hilfe brauchen! Folgendes Problem: Ich habe eine Tabelle mit der ich Hilfe eines Fomulares neue Datensätze einfüge. In dem Formular/Tabelle gibt es ein Datumsfeld 1 und ein Datumsfeld 2. Jetzt beginnt meinProblem. Wie bekomme ich hin, das a) aus den beiden Datenfeldern eine Differenz ermittelt wird b) aus Datumsfeld 2 der Monat c) aus Datumsfeld 2 das Jahr ermittelt wird? Diese Felder werden im Formular auch nicht dargestellt! Mir geht es nicht um die Formeln, sondern mehr darum, das der User diese Werte nicht eingeben muß! Ich möchte gerne erreichen, dass die Werte automatisch gefüllt werden, wenn der User seine Eingabe beendet hat. Eine Möglichkeit wäre, eine Aktualisierungsabfrage "hinterher zu schicken"! Ich suche aber eine Möglichkeit, dies nur für diesen Datensatz zu realisieren! Sorry, mangels VBA Kenntnisse suche ich eine "Standardlösung"! Vielleicht hat einer einen guten Tipp für mich! Besten Dank! gruss pelle

Antwort 1 von Teddy7

Hi Pelle !

Eine "Standardlösung" dazu gibt es nicht.
Normalerweise würde man die 3 Informationen da erzeugen wo man sie braucht - also z.B. in der Abfrage, die einem Bericht zugrunde liegt, der die Daten anlistet. Da müßte man dann nur zusätzliche Spalten in der Abfrage einrichten, die die Werte ermitteln.

Wenn´s denn unbedingt im Formular sein soll - also wahrscheinlich auch in die Tabelle gespeichert werden soll - dann geht´s nur mit VBA.
Allerdings ist auch das keine Hexerei. Man hinterlegt einfach in einem Ereignis den nötigen Code.
Um die dabei ermittelten Werte ggf. in die Tabelle zu bekommen würde man (unsichtbare) Felder auf die Form legen - will man die Daten nur anzeigen nimmt man ungebundene Felder.
Also z.B. im Ereignis "nach Aktualisierung" des Datumdfeld2 dieser Code hinterlegt:
if not isnull(datumsfeld2) then
AnzeigeMonat2 = month(Datumsfeld2)
AnzeigeJahr2 = year(Datumsfeld2)
if not isnull(datumsfeld1) then
Datumsdiff = datediff(Datumsfeld2, Datumsfeld1)
end if

///////////
wobei ich mir beim datediff nicht ganz sicher bin - aber den genauen Wortlaut findest Du in der AccessHilfe.

Gruß
Teddy

Antwort 2 von pelle

Hallo Teddy,

danke für deine Antwort!

Sie hat mich auf eine Idee und eine Lösung gebracht.

Ich habe in dem Formular drei "Textfelder" einrichtet
(unsichtbar in der Formularansicht).

Dieses Felder werden entsprechend gefüllt aus den Formulareingaben:

a) =Monat(Datumsfeld 2)
b) =Jahr(Datumsfeld 2)
c) = Datumsfeld 2 - Datumsfeld 2 +1

Nach Ereignis Aktualisierung steuere ich über Makros "setzen Wert"
die Werte aus den Textfeldern in die Tabellenwerte ein!

Klappt so weit ganz gut!
Muß nur noch was an dem Ereignis-Typ feilen!

Bin da aber zuversichtlich!

Besten Dank!

gruss
pelle

Antwort 3 von Teddy7

Wenn mal eines der Datumsfelder nicht gefüllt ist wirst Du auf Fehler rumpeln !

Antwort 4 von pelle

Hallo Teddy,

danke für den Hinweis!

Ich habe schon daran gedacht.
Ich habe in meiner Antwort nur die Wenn.... weggelassen!

gruss
pelle

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: