Si quito el with rsCiudad2 y el end with me da error de referencia no valida  y sin clasificar. Ahora he echo esto y me da error: No se encontro el elemento en la coleccion que corresponde con el nombre o el original de pedido y me señala (***):
    
Código vb:
Ver original- Set rsCiudad2 = New Recordset 
- 'Establecer sus propiedades 
- With rsCiudad2 
-     .CursorLocation = adUseClient 
-     .Open "select idprovincias from provincias where provincias='" & Combo2.Text & "'", cnPrueba, adOpenDynamic, adLockOptimistic 
- End With 
- 'Añadimos la tabla de ciudad2 al combo1 
- Do Until rsCiudad2.EOF() 
- ***Combo1.AddItem rsCiudad2!ciudad*** 
- rsCiudad2.MoveNext 
- Loop 
He probado cambiando rsCiudad2!ciudad a rsCiudad2!idprovincia o id ciudad y me quita el error pero lo que añade son los id de los que tengo en la base de datos. 
 Cita:  Tienes el recordset bien declarado y la conexión a la bd (cnPrueba) bien declarado y conectado?.
    Si porque la demas cosas que he echo con esa conexion me van perfectamente te lo pongo aqui para que lo veas:    
Código vb:
Ver original- Option Explicit 
- Public cnPrueba As Connection 
- Public rsTbl_Direccion As Recordset 
- Public rsciudad As Recordset 
- Public rsProvincias As Recordset 
- Public rsCiudad2 As Recordset 
-   
- Set cnPrueba = New Connection 
- 'Establecer sus propiedades 
-      With cnPrueba 
-         .Provider = "Microsoft.Jet.oledb.4.0" 
-         .ConnectionString = "prueba.mdb" 
-     End With 
- cnPrueba.Open 
Saludos