Liebe Leute,
bin blutiger Anfänger in VBA und trau mich nun doch hier eine Frage zu stellen:
Wie bekomme ich es hin das nach dem ausführen eines Berichts in einer Tabelle ein Datumsfeld mit dem Aktuellen Datum befüllt wird?
Ich führe den Bericht aus und bekomme es, mit einer Abfrage, auch hin dass der Datensatz auf erledigt gestellt wird ( false/true) nur wir ich in ein Feld das Datum schreiben soll behirn ich einfach nicht.
Bin für jeden Tipp dankbar. Ich glaub ich brauch einen Stoß in die richtige Richtung.
Hallo,
dazu musst du im entsprechenden Ereignis des Berichtes eine Aktualisierungs-Abfrage starten:
CurrentDB.Execute "Update TabelleXY set Datumfeld = '" & now() & "' Where Kriterium"
Beachte die einfachen Hochkommatas.
Kriteriumkönnten z.B. der Bezug auf einen bestimmten ID o.ä. sein.
Gruß Andreas
Hallo Hondo,
Danke das Du Dich mit einem dau abgibst.
Ich habe das jetzt schon Probiert:
CurrentDb.Execute "Update tblBeratungstermin set berterm_verrechnet_am = '" & Now() & "' Where fir_id = Me!fir_id"
Aber hier ist noch ein Grundsätzlicher Hund drinnen:
zu wenig Parameter. Ich denke schon das ich was prinzipielles nicht behirne.
Kannst Du mir sagen was?
DAAANK
Ist halt falsch. Verweise auf Steuerelemente oder Variablen gehören nicht in den String hinein sondern eingebunden:
CurrentDb.Execute "Update tblBeratungstermin set berterm_verrechnet_am = '" & Now() & "' Where fir_id = " & Me!fir_id
Gruß Andreas
Hallo,
kleine Korrektur:
CurrentDb.Execute "Update tblBeratungstermin set berterm_verrechnet_am = " & Format(Date,"\#yyyy-mm-dd\#") & " Where fir_id = " & Me!fir_id
@Hondo:
Backslash scheinen zu "verschwinden", was gar nicht gut ist...
Format(Date,"\#yyyy-mm-dd\#")
oder
CurrentDb.Execute "Update tblBeratungstermin set berterm_verrechnet_am = Date() Where fir_id = " & Me!fir_id
wenn "fir_id" in der Tabelle den Datentyp "Autowert", bzw, "Zahl, Long" besitzt
Achtung: vor den "#"_Zeichen muss jeweils ein Backslash stehen!
Vielen Dank an alle.
Werde das morgen alles mal ausprobieren hoffe ich komm drauf.
Schönen Abend
Äh, welche Backslashes?
Ah, in der Zusammenfassung beim schreiben eines neuen Posts werden sie angezeigt.
Seltsam.
\**\
\**\
\**\
AHA, bei mehreren Codeblöcken werden Backslashes nur im letzten angezeigt.
Andreas
Habe leider immer noch Probleme damit:
CurrentDb.Execute "Update tblBeratungstermin set berterm_verrechnet_am = " & Format(Date, "\#yyyy-mm-dd#\") & " Where fir_id = " & Me!fir_id
Fehler:
1 Parameter wurde erwartet es wurden zu wenig Parameter eingegeben.
Sehe einfach meine Fehler nicht.
Kann mir bitte nochmal wer eine Stoß geben?
Danke
Hallo,
kontrolliere, ob die angegebenen Felder (in der Tabelle als auch im Formular) vorhanden sind/existieren und Werte besitzen (speziell das Formular-Feld "Fir_id").
Zitatbin blutiger Anfänger in VBA
Nicht nur für Anfänger ist es fehleranfällig, SQL-Anweisungen per VBA zusammenzusetzen. Es empfiehlt sich daher, das Zusammensetzen erst in einer Stringvariable vorzunehmen. Somit kann man vor Ausführen der Anweisung diese erst in das Direktfenster (Strg + G) ausgeben, dort betrachten und prüfen (bei Kenntnis gültiger Syntax) oder gar den Ausgabestring als neue Abfrage zu testen bei dann besseren Fehlermeldungen.
Dim sSQL As String
sSQL = "UPDATE tblBeratungstermin SET berterm_verrechnet_am = Date() WHERE fir_id = " & Me!fir_id
Debug.Print sSQL ' Ausgabe in Direktfenster
CurrentDb.Execute sSQL, dbFailOnErrorAnmerkungen dazu:
VBA-Funktionen ohne "äußere Parameter" können direkt von der Jet-Engine ausgewertet werden und somit im String stehen. Das erspart dann die manchmal durchaus problematische datentypbedingte Formatierung:
Format(Date, "\#yyyy-mm-dd#\")
Der Backslash müsste zum Maskieren der Raute vor ihr stehen. So wirkt er als eigenes Zeichen und verändert das Format zu etwas nicht Auswertbarem.
fir_id wird bei obiger Anweisung sowohl in Tabelle als auch im Formulartextfeld als Ganzzahl (Long) erwartet.
Ich möchte mich bei allen herzlich bedanken.
Habe den Fehler (diesmal) gefunden, war echt zu doof die fir_id auch im Formular zu haben.
Da sieht man gleich dass ich mich erst mal in die Materie einarbeiten muss, wird wohl ein Zeitchen dauern bis ich hier klar komme.
Habe mir zwar das Buch "Access 2010 VBA-Programmierung" von Lorenz Hölscher angeschafft, komme aber gar nicht damit klar, bezw. bin vielleicht zu ungeduldig.
Habt Ihr VBA eigentlich in der Schule gelernt, oder Euch selbst bei gebracht?
Kann man sich das ohne Hilfe überhaupt aneignen?
Schönen Tag an alle.
Hallo,
@ebs: Mit der Darstellung der Backslashes gibt(gab) es hier Probleme insofern, als dass die Dinger trotz Vorhandensein im Posting nicht angezeigt wurden.....Siehe ein paar zurückliegende Beiträge...