[AccessD] Add new record + fill fields with last entered data ?

Brock, Christian T, HRC-Alexandria Christian.Brock at hoffman.army.mil
Thu Apr 1 09:22:22 CST 2004


Why go to the trouble?  From the statement of intent, What the user really
wants is a duplicate current record button, instead of a new record button.
The Access XP command button wizard will allow you to create a button that
will duplicate the current record.

It creates the following lines of code
    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
    DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70
    DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70 'Paste Append

Obviously MS did not update the wizard to use readable code.  The following
will work as well.
    DoCmd.RunCommand acCmdSelectRecord
    DoCmd.RunCommand acCmdCopy
    DoCmd.RunCommand acCmdPasteAppend


Christian Brock




-----Original Message-----
From: Gustav Brock [mailto:gustav at cactus.dk] 
Sent: Thursday, 01 April 2004 09:36
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Add new record + fill fields with last entered data?


Hi Tina

> I begin to understand.  At the OnCurrent Event for the Form, the Event
> Procedure will set the DefaultValue of each TextBox to the values 
> determined to already be stored in the record just saved.  Is that 
> correct?

Yes and no. No saving needs to take place:

At the OnCurrent Event for the Form, the Event Procedure will set the
DefaultValue of each TextBox (or ComboBox etc.) to the values for the
current record of those controls.

> Does this require explicitly listing each TextBox of the form?

Yes.

/gustav


>>>How does one set the DefautlValue at OnCurrent?  I don't know how to do
>>>that.
>>
>>That's not difficult - something like this:
>>
>>  Dim txt As TextBox
>>  Set txt = Me!txtYourTextBox
>>
>>  txt.DefaultValue = txt.Value
>>
>>  Set txt = Nothing
>>
>>However, DefaultValue should be a string which means that if your
>>textbox contains decimals or a date/time value you must be careful and
>>convert to a string in US format:
>>
>>  txt.DefaultValue = LTrim(Str(txt.Value))
>>
>>or
>>
>>  txt.DefaultValue = _
>>    Format(txt.Value, "\#mm\/dd\/yyyy hh\:nn\:ss AM/PM\#")
>>
>>/gustav
>>
>>>>Tough day? No coffee?
>>>>
>>>>Set the DefaultValue at OnCurrent.
>>>>
>>>>As for Stuart's note on the KeyPreview, it's not a user feature, but a
>>>>property of the form.
>>>>
>>>>/gustav
>>>>      
>>>>>when a user clicks the 'Add new record' button (s)he wants the data of
the current record to be displayed in the new record.
>>>>>So if a user is on record 999 with field username filled with AAA and
then clicks on 'Add new record' then a new record (1000) must appear with
the field username filled with AAA.

-- 
_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com



More information about the AccessD mailing list