Heenan, Lambert
Lambert.Heenan at AIG.com
Wed Jan 26 16:33:34 CST 2005
I don't have any sample code, other than what's in the help file, but you
need to look at the OrdinalPosition property of each field in order to list
them in the order they appear in in table design view.
Here's the code from the help file
This example changes the OrdinalPosition property values in the Employees
TableDef in order to control the Field order in a resulting Recordset. By
setting the OrdinalPosition of all the Fields to 1, any resulting Recordset
will order the Fields alphabetically. Note that the OrdinalPosition values
in the Recordset don't match the values in the TableDef, but simply reflect
the end result of the TableDef changes.
Sub OrdinalPositionX()
Dim dbsNorthwind As Database
Dim tdfEmployees As TableDef
Dim aintPosition() As Integer
Dim astrFieldName() As String
Dim intTemp As Integer
Dim fldTemp As Field
Dim rstEmployees As Recordset
Set dbsNorthwind = OpenDatabase("Northwind.mdb")
Set tdfEmployees = dbsNorthwind.TableDefs("Employees")
With tdfEmployees
' Display and store original OrdinalPosition data.
Debug.Print _
"Original OrdinalPosition data in TableDef."
ReDim aintPosition(0 To .Fields.Count - 1) As Integer
ReDim astrFieldName(0 To .Fields.Count - 1) As String
For intTemp = 0 To .Fields.Count - 1
aintPosition(intTemp) = _
.Fields(intTemp).OrdinalPosition
astrFieldName(intTemp) = .Fields(intTemp).Name
Debug.Print , aintPosition(intTemp), _
astrFieldName(intTemp)
Next intTemp
' Change OrdinalPosition data.
For Each fldTemp In .Fields
fldTemp.OrdinalPosition = 1
Next fldTemp
' Open new Recordset object to show how the
' OrdinalPosition data has affected the record order.
Debug.Print _
"OrdinalPosition data from resulting Recordset."
Set rstEmployees = dbsNorthwind.OpenRecordset( _
"SELECT * FROM Employees")
For Each fldTemp In rstEmployees.Fields
Debug.Print , fldTemp.OrdinalPosition, fldTemp.Name
Next fldTemp
rstEmployees.Close
' Restore original OrdinalPosition data because this is
' a demonstration.
For intTemp = 0 To .Fields.Count - 1
.Fields(astrFieldName(intTemp)).OrdinalPosition = _
aintPosition(intTemp)
Next intTemp
End With
dbsNorthwind.Close
End Sub
> -----Original Message-----
> From: accessd-bounces at databaseadvisors.com
> [SMTP:accessd-bounces at databaseadvisors.com] On Behalf Of
> Drawbridge.Jack at ic.gc.ca
> Sent: Wednesday, January 26, 2005 4:20 PM
> To: accessd at databaseadvisors.com
> Subject: [AccessD] ADO - Getting a Tables columns back in physical
> order
>
> I'm sure someone has a solution to this.
>
> I have A2K and am using ADOX to retrieve the structures of existing
> tables.
>
> When I use this type of approach
>
> Dim cat As New ADOX.Catalog
> Dim tbl As ADOX.Table
> Dim col As ADOX.Column
> cat.ActiveConnection = CurrentProject.Connection
>
> for each tbl in cat.Tables
> If tbl.name = "Table I'm Looking For" then
> for each col in tbl.Columns
> debug.print col.name
> next col
> endif
> next tbl
>
> I get the column names, but in ascending name order. How do I get the
> Column Names in the physical order in the table??? Does someone have
> sample code?
>
> TIA
>
> jack
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com