Although I'll be the first to admit that ADO is not one of my stronger areas,
try this version:
Sub EditQueryUsingADO(intSortOrder As Integer)
On Error GoTo ProcError
' Early binding
' Note: Requires references set to
' "Microsoft ActiveX Data Objects 2.x Library" and
' "Microsoft ADO Ext. 2.x for DDL and Security"
Dim conn As ADODB.Connection
Dim cmd As ADODB.Command
Dim cat As New ADOX.Catalog
Dim view As ADOX.view
Dim strSQL As String
Set conn = Application.CurrentProject.Connection
Set cat = New ADOX.Catalog
Select Case intSortOrder
Case 1
strSQL = "SELECT Field1, Field2, Field3 FROM [My Table] " _
& "ORDER BY Field1"
Case 2
strSQL = "SELECT Field1, Field2, Field3 FROM [My Table] " _
& "ORDER BY Field2"
Case Else
strSQL = "SELECT Field1, Field2, Field3 FROM [My Table] " _
& "ORDER BY Field3"
End Select
' Open the Catalog
Set cat.ActiveConnection = conn
Set view = cat.Views("qryTest")
Set cmd = view.Command
cmd.CommandText = strSQL
Set view.Command = cmd
ExitProc:
'Clean up
On Error Resume Next
Set cmd = Nothing: Set view = Nothing: Set cat = Nothing
conn.Close: Set conn = Nothing
Exit Sub
ProcError:
MsgBox "Error " & Err.Number & ": " & Err.Description, _
vbCritical, "Error in procedure EditQueryUsingADO..."
Resume ExitProc
End Sub
Tom Wickerath, Microsoft Access MVP
http://www.access.qbuilt.com/html/expert_contributors.html
http://www.access.qbuilt.com/html/search.html
__________________________________________