ACC: Can't Paste Append Using Input Mask Based on Short Date
ID: Q160575
|
The information in this article applies to:
-
Microsoft Access versions 7.0, 97
SYMPTOMS
Moderate: Requires basic macro, coding, and interoperability skills.
When you use the Paste Append command to append a record in Form view of a
form containing a control with any variation of the Short Date in its
InputMask property, the appended record contains a Null value in that
control.
The Short Date format appears in the InputMask property as something
resembling "99/99/00;0;_".
RESOLUTION
There a three workarounds:
- Change the control's InputMask property from Short Date to a different
input mask, such as Medium Date.
- Open the form in Datasheet view before you execute the Paste Append
command.
- Write code to temporarily move the control's input mask to a form level
variable before you execute Paste Append, and then reassign the input
mask from the variable to the control's InputMask property using the
OnEnter property of the control.
Follow these steps to implement the third workaround:
The following example assumes that you are familiar with Visual Basic for
Applications and with creating Microsoft Access applications using the
programming tools provided with Microsoft Access. For more information
about Visual Basic for Applications, please refer to your version of the
"Building Applications with Microsoft Access" manual.
CAUTION: Following the steps in this example will modify the sample
database Northwind.mdb. You may want to back up the Northwind.mdb file,
or perform these steps on a copy of the Northwind.mdb database.
- Start Microsoft Access and open the sample database Northwind.mdb.
- Open the Employees (page break) form in Design view (or the Employees
form in version 7.0).
- Select the HireDate text box control, and then view its properties.
- Click the Build button next to the InputMask property to invoke the
Input Mask Wizard. Click Short Date, and then click Finish.
- On the View menu, click Code.
- Type the following line in the Declarations section of the form module:
Dim mstrIMask As String
- Type the following procedures:
Private Sub Form_BeforeInsert(Cancel As Integer)
mstrIMask = Me!HireDate.InputMask
Me!HireDate.InputMask = ""
End Sub
Private Sub Form_AfterInsert()
If mstrIMask<> "" Then Me!Hiredate.Inputmask=mstrImask
End Sub
- Close the form module and switch to Form view.
- On the Edit menu, click Select Record.
- On the Edit menu, click Copy.
- On the Edit menu, click Paste Append.
- On the Edit menu, point to Go To and then click Last. Note that the
HireDate value is appended correctly.
STATUS
Microsoft has confirmed this to be a problem in Microsoft Access 7.0
and 97.
This problem no longer occurs in Microsoft Access 2000.
MORE INFORMATIONSteps to Reproduce Problem
CAUTION: Following the steps in this example will modify the sample
database Northwind.mdb. You may want to back up the Northwind.mdb file, or
perform these steps on a copy of the Northwind.mdb database.
- Follow steps 1 through 4 in the "Resolutions" section of this article.
- Switch the form to Form view.
- On the Edit menu, click Select Record.
- On the Edit menu, click Copy.
- On the Edit menu, click Paste Append.
- On the Edit menu, point to GoTo and then click Last. Note that the
HireDate field is empty.
REFERENCES
For more information about input masks, search the Help Index for
"InputMask property," or ask the Microsoft Access 97 Office Assistant.
Additional query words:
Keywords : FmsProb GnlDe GnlInpt
Version : WINDOWS:7.0,97
Platform : WINDOWS
Issue type : kbbug
|