You receive a "Data Type Mismatch" error message when you set the ControlSource property of a combo box or a list box to a Date field type in Visual FoxPro (156550)
The information in this article applies to:
- Microsoft Visual FoxPro for Windows 3.0
- Microsoft Visual FoxPro for Windows 3.0b
- Microsoft Visual FoxPro for Windows 5.0
- Microsoft Visual FoxPro for Windows 6.0
- Microsoft Visual FoxPro for Windows 7.0
- Microsoft Visual FoxPro 8.0
- Microsoft Visual FoxPro 9.0 Professional Edition
This article was previously published under Q156550 SYMPTOMSIn Microsoft Visual FoxPro, if you set the ControlSource property of a combo box or a list box to a Date field type, you receive the following error message at run time:
Error with ComboName-Value: Data Type Mismatch.
Unbinding object ComboName CAUSE
Combo boxes and list boxes handle only Character, Numeric, and Null data
types. Other field types produce an error message when the form runs.
WORKAROUND
To work around this problem, use a SELECT-SQL statement to create an array,
instead of setting the ControlSource property of a combo box or list box to
a Date type field. Use the array in the RowSource property of the combo box or
the list box. The DTOC() function changes the data type from Date to Character.
For example, to fix the example that is described in the "Steps to reproduce the behavior" section, you can use the following code in the Init method
of the form:
SELECT DTOC(order_date) FROM orders INTO ARRAY adates
THISFORM.combo1.RowSource=THISFORM.combo1.RowSource
In the Valid event of the combo box or the list box, use a REPLACE statement,
instead of the ControlSource property, to put the value in the other
table:
REPLACE employee.hire_date WITH CTOD(THISFORM.combo1.Value)
The CTOD() function converts the selection back into a Date data type.
STATUS
This behavior is by design.
Modification Type: | Major | Last Reviewed: | 3/18/2005 |
---|
Keywords: | KB156550 |
---|
|