Fonction sort pour un recordset ADO

Fonction sort pour un recordset ADO - VB/VBA/VBS - Programmation

Marsh Posté le 23-07-2002 à 10:29:14    

Salut,
 
Je programme sous VB6 et j'utilise un recordset ADO.
Avant une consultation, je voudrais ranger mes enregistrements en fonction d'un champs.
J'ai donc trouvé la fonction Sort, mais elle ne fonctionne pas.
Cela de me donne le message d'erreur suivant :
 
Erreur d'exécution '3251' :
L'opération demandée par l'application n'est pas prise en charge par le fournisseur.
 
Si ca peut aider, dans les références, j'ai coché "Microsoft ActiveX Data Objects 2.0 Library".
 
Quelqu'un a-t-il une solution ?
Merci d'avance

Reply

Marsh Posté le 23-07-2002 à 10:29:14   

Reply

Marsh Posté le 23-07-2002 à 10:32:21    

Quel SGBD utilises tu ?


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 23-07-2002 à 10:35:00    

Harkonnen a écrit a écrit :

Quel SGBD utilises tu ?




Oups, petit oubli :)  
 
J'utilise une base Access

Reply

Marsh Posté le 23-07-2002 à 10:46:26    

Et "Sort" ne fonctionne pas avec Access ?  :heink:  
 
Bizarre ça... Si le ORDER BY en SQL est supporté, je vois pas pourquoi Sort ne fonctionnerait pas !
 
Si ça marche vraiment pas, essaie de trier directement ta base par un ORDER By, mais ça m'étonne vraiment !


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 23-07-2002 à 10:49:29    

Harkonnen a écrit a écrit :

Et "Sort" ne fonctionne pas avec Access ?  :heink:  
 
Bizarre ça... Si le ORDER BY en SQL est supporté, je vois pas pourquoi Sort ne fonctionnerait pas !
 
Si ça marche vraiment pas, essaie de trier directement ta base par un ORDER By, mais ça m'étonne vraiment !




 
C'est ptet du a la librairie ADO chargée...
 
Je pense que je vais faire avec Order by
 
Merci !

Reply

Marsh Posté le 23-07-2002 à 12:30:28    

Salut,
 
Comment utilises-tu la fonction sort de l'objet recordset ?

Reply

Marsh Posté le 23-07-2002 à 13:40:23    

kinanveu a écrit a écrit :

Salut,
 
Je programme sous VB6 et j'utilise un recordset ADO.
Avant une consultation, je voudrais ranger mes enregistrements en fonction d'un champs.
J'ai donc trouvé la fonction Sort, mais elle ne fonctionne pas.
Cela de me donne le message d'erreur suivant :
 
Erreur d'exécution '3251' :
L'opération demandée par l'application n'est pas prise en charge par le fournisseur.
Si ca peut aider, dans les références, j'ai coché "Microsoft ActiveX Data Objects 2.0 Library".
 
Quelqu'un a-t-il une solution ?
Merci d'avance




 
Ce message signifie que ton pilote ODBC ne comprend pas l'instruction sort. C'est le pilote qui te permet de te connecter à la base access. Cependant je ne sais pas lequel tu pourrais substituer, jamais essayer mais erreur déja rencontrer, contourner avec ORDER BY en SQL ou GROUP BY.

Reply

Marsh Posté le 23-07-2002 à 13:56:11    

daritz a écrit a écrit :

 
 
Ce message signifie que ton pilote ODBC ne comprend pas l'instruction sort. C'est le pilote qui te permet de te connecter à la base access. Cependant je ne sais pas lequel tu pourrais substituer, jamais essayer mais erreur déja rencontrer, contourner avec ORDER BY en SQL ou GROUP BY.
 




il a dit qu'il utilisait ADO... ODBC, j'aurais éventuellement pu comprendre pq ça merdait, mais ADO  :??:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 23-07-2002 à 13:59:55    

rs.sort = "nomdu/deschamps"
c bien comme ca que tu l'utilises ?

Reply

Marsh Posté le 23-07-2002 à 14:19:50    

Harkonnen a écrit a écrit :

 
il a dit qu'il utilisait ADO... ODBC, j'aurais éventuellement pu comprendre pq ça merdait, mais ADO  :??:  




 
ADO sont un groupe d'objets qui tavaillent avec des bases de données. ODBC c'est un type de pilote qui permet à ces objets de se lier à une base et y accéder. Si le pilote ne gère pas la commande, tes objets en revanche peuvent avoir ces commandes comme dans le cas ici. La commande "sort" n'est pas pris en compte par le pilote, mais l'objet ADO est pourvu de la commande.
La solution serait de trouver un pilote de connexion à une base gérant la commande.

Reply

Marsh Posté le 23-07-2002 à 14:19:50   

Reply

Marsh Posté le 23-07-2002 à 14:24:02    

DAO, ADO, ODBC, .... peuvent pas nous sortir une fois pour toutes une norme universelle plutot que de décliner la même à toutes les sauces ???  :fou:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 23-07-2002 à 14:34:49    

Si c'est comme tu le dis il n'y aurait pas d'évolution et donc pas de chiffre d'affaire qui monte...

Reply

Marsh Posté le 23-07-2002 à 15:08:00    

Citation :

rs.sort = "nomdu/deschamps"  


 
Comment est déclaré ton objet rs ?
Tu pourrais le morceau de code où l'erreur se produit ?

Reply

Marsh Posté le 24-07-2002 à 16:19:38    

shyangel a écrit a écrit :

Citation :

rs.sort = "nomdu/deschamps"  


 
Comment est déclaré ton objet rs ?
Tu pourrais le morceau de code où l'erreur se produit ?




 
Voila ma partie declaration :

Code :
  1. Public cnnCalc As New ADODB.Connection
  2. Public recTable As New ADODB.Recordset
  3. Public strRecTable As String
  4. With cnCalc
  5.     .ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;" _
  6.      & "Data Source=C:\MaBase.mdb"
  7.     .Open
  8. End With
  9. strRecTable = "select * from Table"
  10. recTable.Open strRecTable, cnnCalc, adOpenKeyset, adLockOptimistic


 
et voila ou ca merde :

Code :
  1. recTable.Sort = "tab_champs1 DESCENDING"


 
Si ca peut vous eclaircir...  :)

Reply

Marsh Posté le 24-07-2002 à 16:23:05    

les dim as new spa bien !
essaye dans le DESCENDING dans le sort

Reply

Marsh Posté le 24-07-2002 à 16:27:03    

HappyHarry a écrit a écrit :

les dim as new spa bien !
essaye dans le DESCENDING dans le sort




 
Pas bien les dim as new ? Faudrait faire koi a la place alors ?
Et le "essaye dans le DESCENDING dans le sort", j'avoue que je comprends pas trop...

Reply

Marsh Posté le 24-07-2002 à 16:29:19    

nan les dim as new c pas bien, vb risque de se chier dessus dans la libétation des ressources
au choix createobject ou set machin = new bidule apres la déclaration
 
je voulais dire essaye d'enlever le descending

Reply

Marsh Posté le 24-07-2002 à 16:35:47    

HappyHarry a écrit a écrit :

nan les dim as new c pas bien, vb risque de se chier dessus dans la libétation des ressources
au choix createobject ou set machin = new bidule apres la déclaration
 
je voulais dire essaye d'enlever le descending




 
Ok pour le dim as new. merci pour le renseignement.
Pour le Sort, j'avais deja essayé sans le DESCENDING, ca change rien.
Par contre, est-ce qu'y aurait pas qqchose a changé dans ma chaine de connexion ? C'est ptet une histoire de pilotes ODBC comme c'est dit dans un message plus haut ?

Reply

Marsh Posté le 24-07-2002 à 16:37:17    

ben pourquoi tu utilises pas directement le pilote access ?

Reply

Marsh Posté le 24-07-2002 à 16:40:55    

HappyHarry a écrit a écrit :

ben pourquoi tu utilises pas directement le pilote access ?




 
Je me suis trompé : je voulais dire OLEDB, comme c'est mis plus haut pour la proprieté ConnectionString.
 
Pour utiliser le pilote Access, elle est bonne ma ConnectionString ou je devrai la changer ?

Reply

Marsh Posté le 24-07-2002 à 16:44:09    

ben si je demande c qu'elle est pas bonne ...

Reply

Marsh Posté le 24-07-2002 à 16:59:09    

HappyHarry a écrit a écrit :

ben si je demande c qu'elle est pas bonne ...
 




 
Et tu saurais koi mettre a la place ?

Reply

Marsh Posté le 24-07-2002 à 17:00:30    

pas de tete mais trouvé en 2 secondes sur google  :sarcastic:  
 
String Format: DRIVER={Microsoft Access Driver (*.mdb)};DBQ=[path to database]

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed