Checa tus referencias...
Si usas DAO, entonces necesitas el DAO 3.6 para Access 2000. El DAO 3.51 es para Access 97 ...
Si usas ADO, ADODB, etc. entonces fijate en este ejemplo ...
Dim oConn As ADODB.Connection
Dim oRecordset As ADODB.Recordset
Dim rs As Recordset
Dim nData As Long
Private Sub Form_Load()
Dim nCol As Long
Dim lFound As Boolean
On Error GoTo Cambiar_Proveedor
Set oConn = New Connection
oConn.Provider = "Microsoft.Jet.OLEDB.3.51"
oConn.Properties("Data Source").Value = App.Path & "\Data.mdb"
oConn.Properties("Password").Value = "xxx"
Intentar_Conexion:
oConn.Open ' Si hay error el procedimiento salta a "Cambiar_Proveedor"
' Si no hay error, o lo hubo y se resolvio cambiando proveedor, continuamos ...
On Error GoTo 0 ' Resumimos el tratamiento normal de errores
Set oRecordset = New Recordset
oRecordset.Open "SELECT Articulo FROM ArtCompra WHERE Tipo = 'PT'", oConn, adOpenKeyset, adLockOptimistic
If Not oRecordset.BOF Then
oRecordset.MoveFirst
nData = 0
Do While Not oRecordset.EOF
nData = nData + 1
Me.listNom.AddItem oRecordset.Fields("Articulo")
Me.listNom.ItemData(Me.listNom.NewIndex) = nData
Me.ListApe.AddItem Mid(oRecordset.Fields("Articulo"), 6, 3)
Me.ListApe.ItemData(Me.ListApe.NewIndex) = nData
Me.ListTel.AddItem Mid(oRecordset.Fields("Articulo"), 9, 2)
Me.ListTel.ItemData(Me.ListTel.NewIndex) = nData
oRecordset.MoveNext
Loop
End If
Exit Sub
Cambiar_Proveedor:
' Si se genero error al tratar de abrir con Access 97
' entonces prueba tratando de abrir con Access 2000
If oConn.Provider = "Microsoft.Jet.OLEDB.3.51" Then
Set oConn = New Connection
oConn.Provider = "Microsoft.Jet.OLEDB.4.0"
oConn.Properties("Data Source").Value = App.Path & "\Data.mdb"
oConn.Properties("Password").Value = "xxx"
Resume Intentar_Conexion
End If
' Si ya se cambio a Access 2000 y persiste el error entonces
' notificamos al usuario y cerramos la forma ...
MsgBox "Error( " & Err.Number & ") !!" & vbCrLf & _
Err.Description
Unload Me
End Sub