Microsoft KB Archive/115901

= ACC: Field Object Type Property Returns "Invalid Operation" =

Article ID: 115901

Article Last Modified on 10/11/2006

-

APPLIES TO


 * Microsoft Access 2.0 Standard Edition
 * Microsoft Access 95 Standard Edition

-



This article was previously published under Q115901



Moderate: Requires basic macro, coding, and interoperability skills.



SYMPTOMS
When you assign a variable to a property (such as Type) of a field object of an Index object, you receive the error message "Invalid Operation." This occurs for all properties except Name and Attributes.

This article 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 the "Building Applications" manual.

NOTE: Visual Basic for Applications (used in Microsoft Access for Windows 95, version 7.0) is called Access Basic in version 2.0.



CAUSE
Field objects of an Index object have a subset of the normal properties. The only valid properties are Name and Attributes, and the Attributes property has special values. For an Index object's field object, the Attributes property represents an ascending or descending sort order.



RESOLUTION
If you need to refer to other properties of the field object, use the TableDef field object. For example, to get the Type property you could use x = tabledef.fields("myfield").properties("Type") instead of: x = tabledef.indexes("Myindex").fields("myfield").properties("Type")



Steps to Reproduce Behavior
 Open the sample database Northwind.mdb (or NWIND.MDB in version 2.0) and create a new module.  Enter the following line in the Declarations section of the module: Option Explicit   Enter the following code in the module: Function FieldType Dim ws As WorkSpace Dim db As Database Dim tdef As TableDef Dim result As String Dim i As Integer

' Set up the environment. Set ws = DBEngine.Workspaces(0) Set db = ws.Databases(0)

' Main routine Set tdef = db.tabledefs("Employees")

' The line below results in "Invalid Operation." result = tdef.indexes("PrimaryKey").fields(0).properties("Type") Debug.Print result

' Cleanup db.Close ws.Close End Function  On the View menu, click Debug Window (Or Immediate window in version 2.0. Type the following line, and then press ENTER:

? FieldType

Note the resulting error message.</li></ol>

<div class="references_section">