Hi admsvcs
I had exactly the same query as you which I originally got round by using a temporary field to enter my data in and then pasting in into the memo field with the current Users ID and date/time stamp, rather a convoluted solution but it did the job. Having looked at what was suggested here I re-visited the idea and came up with the following.
First the idea doesn't work as listed because Now() returns a date data type and not a string, using Date$ and Time$ would be one solution, or using the Format() function to format Now() as a string.
Secondly, using on click is not good as if you try to edit the text by clicking in the box it will run the script again.
Thirdly, using Me.Memorandum = Now() would replace any text already in the memo field with the current date/time, which may or may not be what you want to acheive.
My solution is as follows where :-
MaintNotes is the name of my memo field
I have used the 'On Enter' event so that the script only runs every time you enter the memo field not every time you click it (you could of course also use 'Double Click' if you only wanted a date/Time stamp sometimes.
Getuser() is a function of mine that returns the name of the currently logged in user
Private Sub MaintNotes_Enter()
Dim CUser, MN As String
MN = MaintNotes
CUser = GetUser()
Me.MaintNotes = CUser + Format(Now(), " dd/mm/yyyy hh:mm") + Chr(13) + Chr(10) + Chr(10) + MN
End Sub
This then saves any current content in the memo field in variable MN, gets the current users name from GetUser() and then creates a stamp consisting of
Users Name, Date (UK formatted) and Time, Carriage Return and 2 line feeds
and lastly adds the saved "Old" text to the end.
I then insert my "new" notes below the stamp and above the previous notes.
This means that the latest note is always at the top of the memo, obviously you can change these options and the order in which they are added to suit your purpose.
Hope this helps.
Regards
Rick-K