VB6 : Trie de colonne avec requete SQL

VB6 : Trie de colonne avec requete SQL - VB/VBA/VBS - Programmation

Marsh Posté le 19-03-2007 à 10:58:37    

Salut tous le monde, voila j aimerai savoir comment fait on pour trier des colonnes d'uen table access avec une requete SQL, quand je met un "ORDER BY" sur plusieurs niveaux ca ne fonctionne pas.
Si je met sur un niveau :
SELECT Date, Site, Transporteur, Poids_Net FROM Journal ORDER BY [Transporteur]
la c est ok, mais si je met :
SELECT Date, Site, Transporteur, Poids_Net FROM Journal ORDER BY [Transporteur], [Site]
la ca fonctionne plus.
Si quelqu'un peut m 'aider, merci


Message édité par rayno le 19-03-2007 à 13:58:59
Reply

Marsh Posté le 19-03-2007 à 10:58:37   

Reply

Marsh Posté le 19-03-2007 à 11:09:29    

Bonjour,
essaie avec ca :
SELECT Date, Site, Transporteur, Poids_Net FROM Journal ORDER BY 3 ASC, 2 ASC;

Reply

Marsh Posté le 19-03-2007 à 11:09:35    

ça devrait. Donne un exemple.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 19-03-2007 à 11:30:32    

Salut jpcheck, je viens d 'essayer comme ca (les colonnes "Transporteurs" et "Sites" correspondent aux colonnes 10 et 7):
With Param_Etats
        .Et_Adodc.Enabled = True
        .Et_Adodc.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\FLMCHARG\DataBase\Datacharg.mdb"
        .Et_Adodc.RecordSource = "SELECT Date, Site, Transporteur, Poids_Net FROM Journal ORDER BY [10] ASC, [7] ASC"
        .Et_Adodc.CommandType = adCmdText
        .Et_Adodc.Refresh
End With
 
Quand je ne met pas les crochets pour 10 et 7, il me dit que le champ 10 et introuvable, et quand je met les crochets il me dit qu il n y a pas de valeur pour l un ou plusieurs paramètres de mon Et_Adodc... Je vois pas d ou viens la souci

Reply

Marsh Posté le 19-03-2007 à 11:34:03    

Nb : Quand je met les crochets il se plante sur la methode "refresh"

Reply

Marsh Posté le 19-03-2007 à 11:40:26    

En dehors du fait que tu dis simplement « ça ne fonctionne pas » sans préciser les symptômes ou les messages d'erreur.
En dehors du fait que je ne vois pas vraiment le rapport avec VB6.
En dehors du fait que ce forum contient une sous catégorie SGBD/SQL plus adaptée il me semble (si les réponses données ici ne suffisent pas).

 

Il n'y aucune raison que le ORDER BY avec plusieurs champs ne fonctionne pas.
Comme piste à suivre, je te conseille d'enlever les crochets sur les champs du ORDER BY et d'ajouter un ; en fin de phrase SQL. Mais je crains que cela soit insuffisant.

 

Donne plus de détails

 

edit: bon, le temps d'écrire et tu as rajouté des détails ; on va avancer :).


Message édité par tegu le 19-03-2007 à 11:42:13
Reply

Marsh Posté le 19-03-2007 à 11:44:32    

Salut tegu, je viens de donner les messages d'erreur qu il me genere...
Je viens de trouver le "pourquoi" ca ne fonctionne pas, je devais obligatoirement definir un ordre de trie :
"SELECT Date, Site, Transporteur, Poids_Net FROM Journal ORDER BY [Transporteur] ASC, [Site] ASC"
Les crochets fonctionnent donc bien.
Merci à ceux s'etant interessé à ce post ;-)
 

Reply

Marsh Posté le 19-03-2007 à 14:25:42    

Pour info, dans Access les crochets ont deux utilités :  
- Délimiter le nom d'un champ comportant des espaces ou des caractères inhabituels (ex. [Nom du client] = 'Toto' )
- Définir un paramètre dont il faudra fournir la valeur à l'exécution de la requête (utilisé en critère de filtre par exemple : ... WHERE champ = [critere] )
 
Tes messages d'erreur - quand tu jouais avec les crochets - étaient liés à la deuxième partie.
 
Pour ce qui est de la syntaxe avec ASC, heureusement que Microsoft est l'auteur de Jet.OLEDB et de Access... même pas foutus d'être compatibles (Access n'a pas besoin de ASC qui est la valeur par défaut).

Reply

Sujets relatifs:

Leave a Replay

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