Espero que te encuentres muy bien, tengo un código que me gustaría que estudiaras, al menos a mi me funciona bien.. revísalo y adáptalo, está hecho con conexión a Access 2000.. Option Explicit Dim myConn As ADODB.Connection Dim myRecSet As ADODB.Recordset Private Sub Form_Load() Set myConn = New ADODB.Connection Set myRecSet = New ADODB.Recordset myConn.CursorLocation = adUseClient myConn.Open "PROVIDER=Microsoft.jet.OLEDB.4.0;data source=ruta.mdb;" Call Fill_listbox("tabla", "campo", , List1, "campo") 'ordenado por campo o si quieres usas este otro ' Call Fill_listbox("tabla", "campo", , List1) 'no ordenado End Sub Public Sub Fill_listbox(ByVal sbTableName As String, ByVal sbFieldName As String, _ Optional ByRef comboName As ComboBox, Optional ByRef listName As ListBox, _ Optional ByVal sbOrder As String) On Error Resume Next If sbOrder = "" Then sbOrder = sbFieldName listName.Clear DoEvents myRecSet.CursorLocation = adUseClient myRecSet.Open "SELECT " & sbFieldName & " FROM " & sbTableName & " order by " & sbFieldName & ";", myConn, adOpenKeyset, adLockReadOnly With myRecSet Do Until .EOF listName.AddItem .Fields(sbFieldName) .MoveNext Loop End With myRecSet.Close Set listName = Nothing End Sub Un cordial saludo desde Chile.. Fvomaster