You just need a separate table which includes a foreign key column referencing the primary key of your current table. The table should include columns for the current user name, the date/time when the row is inserted, as well as a column for the note.
You then open a form bound to the new table and open it in dialogue mode from a button on the main form. You'll find an example of a form opened in dialogue mode this way in FormsDemo.zip in my public databases folder at:
https://onedrive.live.com/?cid=44CC60D7FEA42912&id=44CC60D7FEA42912!169
If you have difficulty opening the link copy its text (NB, not the link location) and paste it into your browser's address bar.
In this little demo file the value of the primary key, ClientID, is passed to the second form via the OpenArgs mechanism with:
Const FORMNAME = "frmEvents"
Const MESSAGETEXT = "No current client record."
Dim strCriteria As String
strCriteria = "ClientID = " & Me.ClientID
' be sure a record has been entered
If Not IsNull(Me.ClientID) Then
' save current client record
Me.Dirty = False
' open linked form in dialogue mode
DoCmd.OpenForm FORMNAME, _
WhereCondition:=strCriteria, _
WindowMode:=acDialog, _
OpenArgs:=(Me.ClientID)
Else
MsgBox MESSAGETEXT, vbExclamation, "Invalid Operation"
End If
and in the frmEvents form's open event is assigned as the DefaultValue property of a control bound to the foreign key ClientID column in the Events table to which the second form is bound, with the following code:
If Not IsNull(Me.OpenArgs) Then
Me.Event.SetFocus
Me.cboClient.DefaultValue = """" & Me.OpenArgs & """"
End If
For an example of how to insert the current user's Windows login name and the current date time into a record see the ChangedRecordDemo file in the same OneDrive folder.