If you want to separate the CreateDT from the ChangeDT, you need two columns. The CreateDT should use a table level default of Now(). The ChangeDT should be populated in the Form's BeforeUpdate event.
If you want to stick with a single control that is only updated when the record is added, you'll need to either remove the code entirely and use the table level default or have the code check whether or not this is a new record.
PS, Date and Time should not be separate fields and more importantly, Function names should NEVER be used as column names. Using Date and Time for column names leads to subtle errors if you for get to encase the offending names in square brackets. You could end up getting today's date rather than the date from the record if you use date rather than [date] in code.
Use a single field. Name it something meaningful such as TimeIn (whatever makes sense for your purpose), define it as a Date data type and set its default to Now() which includes BOTH date AND time. Date() is ONLY date. Time() is ONLY time.
Every application I build logs dates automatically. Usually it is only CreateDT and ChangeDT but other instances might be SaleDT or LogInTime. Dates such as CreateDT and ChangeDT can NEVER be changed by the user but other automatic dates can although some might require special security and generate a log record. Time keeping applications are one example. The user clocks in and the app captures the date and time. If he wants that to be changed, he has to convince a supervisor that he was actually in earlier and simply forgot to log in so the app captures the Supervisor, the change reason and the original value and logs it.