Hallo Rob,
Ich weiss ich geh dir möglicherweise auf die nerven doch ich
danke dir für deine geduld:wink:
du gehst nicht auf die Nerven, du bedenkst nur nicht, dass wir hier „blind“ sind. Wenn du von etwas sprichst, was du auf deinem PC hast, können wir das hier nicht sehen. Je mehr Informationen du von vornherein gibst, desto weniger Rückfragen kommen und desto eher kann dir geholfen werden.
Wenn man dir immer wieder die Informationen aus der Nase ziehen muss, macht es irgendwann keinen Spaß mehr und man fragt/antwortet einfach gar nicht mehr.
mit den HTML-Tags (siehe unten) kann man einen Code auch „schön“ darstellen:
> Option Compare Database
>
> Const cDQ As String = """"
>
> Sub AuditTrail(frm As Form, recordid As Control)
> 'Track changes to data.
> 'recordid identifies the pk field's corresponding
> 'control in frm, in order to id record.
> Dim ctl As Control
> Dim varBefore As Variant
> Dim varAfter As Variant
> Dim strControlName As String
> Dim strSQL As String
> On Error GoTo ErrHandler
> 'Get changed values.
> For Each ctl In frm.Controls
> With ctl
> 'Avoid labels and other controls with Value property.
> If .ControlType = acTextBox Then
> If .Value .OldValue Then
> varBefore = .OldValue
> varAfter = .Value
> strControlName = .Name
> 'Build INSERT INTO statement.
> strSQL = "INSERT INTO " \_
> & "Audit (EditDate, User, RecordID, SourceTable, "
> \_
> & " SourceField, BeforeValue, AfterValue) " \_
> & "VALUES (Now()," \_
> & cDQ & Environ("username") & cDQ & ", " \_
> & cDQ & recordid.Value & cDQ & ", " \_
> & cDQ & frm.RecordSource & cDQ & ", " \_
> & cDQ & .Name & cDQ & ", " \_
> & cDQ & varBefore & cDQ & ", " \_
> & cDQ & varAfter & cDQ & ")"
> 'View evaluated statement in Immediate window.
> Debug.Print strSQL
> DoCmd.SetWarnings False
> DoCmd.RunSQL strSQL
> DoCmd.SetWarnings True
> End If
> End If
> End With
> Next
> Set ctl = Nothing
> Exit Sub
>
> ErrHandler:
> MsgBox Err.Description & vbNewLine \_
> & Err.Number, vbOKOnly, "Error"
> End Sub
soll ich hier einfach das username mit currentuser ersetzen???
& cDQ & Environ(„username“) & cDQ & ", " _
Frage: hast du dir dir Hilfe dazu durchgelesen? Hast du für dich beschlossen, das die gelieferten Daten die richtigen sind?
Warum hast du es nicht einfach mal getestet?
emmm ja, wi sollte ich es umprog. das er nicht nur die
änderungen wahrnimmt sondern auch den ersten eintrag den ich
mache???
schau dir den Code an. Es wird nur auf Änderung in den Feldern geprüft. Wenn du also RECORDNEW abfragen willst, baust du eine IF - Bedingung ein, mit neuer INSERT Anweisung, die dann das neue Ereignis ebenfalls in der Historie speichert.
Gute NACHT*G*
dito
Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)