PRB: Error or GP Fault When Pass Data Control as Control (105540)
The information in this article applies to:
- Microsoft Visual Basic Standard Edition for Windows 3.0
- Microsoft Visual Basic Professional Edition for Windows 3.0
This article was previously published under Q105540 SYMPTOMS
Trying to reference the properties of a Recordset or Database using a data
control that was passed as Control to a Sub or Function results in this
error message:
Invalid object reference
In addition, passing a data control into a Sub procedure as Control may
result in a general protection (GP) fault, as it does in this example:
Sub subtest (crtname As Control)
crtname.UpdateControls
' Simply having this line in the code causes the GP fault.
' If you turn the line into a comment, the GP fault does not occur.
End Sub
CAUSE
Recordset and Database specific properties are not available to
objects passed as Control. You should replace the "As Control" with "As
Data."
NOTE: the Data object type is not easy to find in the Visual Basic
documentation. It is, however, listed with the other possible object data
types in the "Object Variables" popup on the Help menu topic, "Database
Objects." Object types include CheckBox, ComboBox, CommandButton,
CommonDialog, Control, Data, DirListBox, DriveListBox, FileListBox, Form,
Frame, Grid, HScrollBar, Image, Label, ListBox, MDIForm, OptionButton,
PictureBox, TextBox, Timer, and VScrollBar. The Professional Edition adds
the following additional object types: Database, Dynaset, Field, Fields,
Index, Indexes, QueryDef, Snapshot, Table, TableDef, and TableDefs.
WORKAROUND
Pass the data control as Data. For example, use the following code
instead of the code shown below in the MORE INFORMATION section:
Sub MySub(d As Data)
Debug.Print d.Recordset.EOF
Modification Type: | Major | Last Reviewed: | 10/28/2003 |
---|
Keywords: | kbprb KB105540 |
---|
|