Add a date to a form

A

AlastairO

I am wanting to add a CreateDate to a form which enters the date from the
computer system but doesn't update the next day.

Any helpers please!

Thanks

Alastair
 
D

Douglas J. Steele

I'm assuming you mean you want the CreateDate to be on a field in a table.
Simply putting a date on a form doesn't buy you much...

Set the field's DefaultValue to Date() (assuming all you want is the date),
or Now() (if you want both date and time). Whenever a new row is added to
the table, the field will pick up the default value. The Default Value will
have no effect on existing rows.
 
A

AlastairO

Hi Doug,

Thank you for your quick response. Looking at your answer, I can see what
you are getting at and I have realised that my question wasn't specific
enough (sorry). What I am doing is setting up a field (in a table) that puts
in that day's date when tick boxes from 7 fields are completed - a completion
date as it were. If the boxes aren't all ticked then the field is empty.

Hopefully this is more specific. Thanks for your help and time.

Alastair
 
D

Douglas J. Steele

Put code in the form's BeforeUpdate event to check whether the 7 check boxes
are completed and whether no CompletionDate already exists. If so, set the
CompletionDate.
 
L

Linq Adams via AccessMonster.com

Yes, Alastair, asking for a "CreationDate" when you actually want a
"CompletionDate" is a little ambiguous! Here's two sets of code to do it. If
you ***only*** have 7 checkboxes on your form, in total


Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim ctrl As Control
Dim Counter As Integer

Counter = 0

For Each ctrl In Me.Controls
If TypeOf ctrl Is CheckBox Then
If ctrl = -1 Then
Counter = Counter + 1
End If
End If
Next

If IsNull(Me.DateCompleted) And Counter = 7 Then
Me.DateCompleted = Date
End If

End Sub

If, on the other hand, you have more than 7 checkboxes on your form, but are
only concerned with the magic 7 for you completion date, for each of those 7
you need to goto Properties - Other and enter "marked" (without the quotes)
in the Tag Property of each, then use this code instead:

Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim ctrl As Control
Dim Counter As Integer

Counter = 0

For Each ctrl In Me.Controls
If TypeOf ctrl Is CheckBox Then
If ctrl.Tag = "marked" And ctrl = -1 Then
Counter = Counter + 1
End If
End If
Next

If IsNull(Me.DateCompleted) And Counter = 7 Then
Me.DateCompleted = Date
End If

End Sub

This assumes that once all 7 are checked you won't go back and unmark any. If
you want this possibility addressed you'd have to have more code to cover the
possibility.
 
Top