I have a MS Access form with an edit button.
Before it edits the record, it runs this code to backup to a changelog table:
DoCmd.RunSQL "INSERT INTO PlanningChangeLog SELECT * FROM Planning " & _
"WHERE Bestelbon = " & Me.txtSearch & ""
I have created two new columns in this changelog table called Timestamp which uses the =Now() function, and UserAccount where I would like the SQL code to insert the environment username.
But I can't make sense of how to write this statement.
Any help would be appreciated.
Thanks
EDIT: This sql code seems to work, except it won't recognise my user variable. It always gives me a prompt to manually type it in.
Private Sub CommandEdit_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim sql As String
Dim user As String
user = Environ("username")
'eerst een check of het zoekveld niet leeg is
If Nz(Me.txtSearch.Value, "") = "" Then
MsgBox "Geef een bestelbon in !!", vbExclamation
Exit Sub
Else
'maakt een backup van de originele record
'DoCmd.RunSQL "INSERT INTO PlanningChangeLog SELECT * FROM Planning " & _
'"WHERE Bestelbon = " & Me.txtSearch & ""
'DoCmd.RunSQL "INSERT INTO PlanningChangeLog SELECT [ID], Now() as [TimeStampEdit], user as [UserAccount], [Datum], [Bestelbon], [Transporteur], [Productnaam], [Tank] FROM Planning " & _
'"WHERE Bestelbon = " & Me.txtSearch & ""
DoCmd.RunSQL "INSERT INTO PlanningChangeLog(" & _
"ID, TimeStampEdit, UserAccount, Datum, Bestelbon, Transporteur, Productnaam, Tank) " & _
"SELECT ID, Now() as TimeStampEdit, user as UserAccount, Datum, " & _
"Bestelbon, Transporteur, Productnaam, Tank FROM Planning " & _
"WHERE Bestelbon = " & Me.txtSearch & ""
Any suggestions on how to have it recognise the variable?
..."INSERT INTO PlanningChangeLog SELECT p.*, null, '" & Environ("USERNAME") & "' FROM Planning p " &...PlanningChangeLogtable, and I'm assuming your new fields are the last two in that table. Note your original statement also has no explicit destination fields defined....