Boa tarde, Iceguy 'Crie uma tabela auxiliar, denominada tblAuxiliar, com os mesmos campos 'Execute o código seguinte 'obtém o resultado na tabela tblAuxiliar Sub OrdenarIceguy() 'criado por Alexandre Neves 'em 2011-02-20 'para Iceguy 'do fórum ScripBrasil Dim Rst1 As DAO.Recordset, Rst2 As DAO.Recordset CurrentDb.Execute "DELETE * FROM tblAuxiliar;" Set Rst1 = CurrentDb.OpenRecordset("SELECT Campo1,campo2 FROM SuaTabela ORDER BY Campo2;") Do While Not Rst1.EOF If DCount("*", "tblAuxiliar", "Campo1='" & Rst1(0) & "'") = 0 Then Set Rst2 = CurrentDb.OpenRecordset("SELECT Campo1,campo2 FROM SuaTabela WHERE Campo1='" & Rst1(0) & "' ORDER BY Campo2;") Do While Not Rst2.EOF CurrentDb.Execute "INSERT INTO tblAuxilar(Campo1,Campo2) VALUES ('" & Rst2(0) & "'," & Rst2(1) & ");" Rst2.MoveNext Loop End If Rst1.MoveNext Loop Set Rst1 = Nothing: Rst2 = Nothing End Sub Cumprimentos,