JessicaR44
Messages postés116Date d'inscriptionmardi 8 août 2006StatutMembreDernière intervention29 septembre 2013
-
12 déc. 2006 à 22:12
JessicaR44
Messages postés116Date d'inscriptionmardi 8 août 2006StatutMembreDernière intervention29 septembre 2013
-
14 déc. 2006 à 22:47
Bonsoir à tous !
Je dois faire une impotante modification dans un de mes programmes en VB6, et je me suis dit, tant qu'à faire, autant le convertir également en ADO (il utilise actuellement DAO).
Mais ça coince !!
Je parviens à créer parfaitement mes index, mais lorsque je veux les utiliser, j'ai le message suivant :
Erreur d'exécution 3251
Le fournisseur actuel ne prend pas en charge l'interface nécessaire pour la fonctionnalité d'index.
Sub ADOSeek()
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
' Open the connection
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\New.mdb;"
' Open the recordset
with rst
'Open the recordset
.Open "Countries", cnn, adOpenKeyset, adLockReadOnly, _
adCmdTableDirect
'Select the index used to order the data in the recordset
.Index = "ISO3166_3Index" '<<< c'est ici que ça coince
'Find the order
.Seek "BEL", adSeekFirstEQ
'If a match is found print the quantity of the order
If Not .EOF Then
Debug.Print .Fields("fr").Value
End If
end with
' Close the recordset
rst.Close
End Sub
Si quelqu'un pouvait me dire pourquoi ?
Merci d'avance
JessicaR44
Messages postés116Date d'inscriptionmardi 8 août 2006StatutMembreDernière intervention29 septembre 2013 14 déc. 2006 à 22:47
Bonsoir, à tous,
Je crois avoir trouvé la solution.
Il doit s'agir d'un problème de compatibilité entre ADO et DAO.
Les tables ont été créées à l'époque avec DAO 3.51.
Lorsque je veux passer à ADO, il crée parfaitement les index (qui sont d'ailleurs toujours compatibles avec Access 97), mais la méthode .index provoque l'erreur 3251.
Ce qui me fait penser à un problème de compatibilité, c'est que si je recrée la même table, cette fois avec ADO (que ce soit 3.51 ou 4.0, j'ai essayé les deux), je n'ai plus l'erreur. D'ailleurs, le message d'erreur dit bien "le fournisseur actuel..." cad Access97.
Si quelqu'un pouvait me confirmer la chose, ce serait sympa.
Quoi qu'il en soit, mon problème est résolu ! (ou plutôt, il ne l'est pas, puisque je ne passerai pas à ADO)
Merci quand même
Jessica
JessicaR44
Messages postés116Date d'inscriptionmardi 8 août 2006StatutMembreDernière intervention29 septembre 2013 13 déc. 2006 à 23:39
Bonsoir,
"dbOpenTable" ne figure pas parmi les types de curseurs de la méthode Open en ADO. Seuls sont disponibles adOpenDynamic, adOpenForwardOnly, adOpenKeyset et adOpenStatic.
Merci quand même d'avoir essayé