![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE. |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Membre Confirmé
![]() Date d'inscription: novembre 2003
Messages: 275
|
Bonjour,
Voilà je cherche simplement a ce que ma requete soit classé par ordre croissant dans mon tableau "lstResults" mais je bloque dans l'ajout de ORDER BY à la fin de ma requete car il me mets une erreur 3075, de quoi ça peut venir. Merci d'avance Jim Code :
Private Sub RefreshQuery()
Dim SQL As String
Dim SQLWhere As String
SQL = "SELECT AffaireEtendu.ID_Affaire_Auto, AffaireEtendu.NumDevis, AffaireEtendu.Nom, AffaireEtendu.Initiale, AffaireEtendu.Statut, AffaireEtendu.SourceAf, AffaireEtendu.Désignation, AffaireEtendu.Etape FROM AffaireEtendu WHERE (((AffaireEtendu.Statut)='Qualification' Or (AffaireEtendu.Statut)='En cours')) "
If Not Me.chkClient Then
SQL = SQL & "And (((AffaireEtendu!Nom) = '" & Me.cmbRechClient & "') ORDER BY AffaireEtendu.Nom"
End If
If Not Me.chkCommercial Then
SQL = SQL & "And ((AffaireEtendu!Initiale) = '" & Me.cmbRechCommercial & "') ORDER BY AffaireEtendu.Nom"
End If
If Not Me.chkEtape Then
SQL = SQL & "And ((AffaireEtendu!Etape) like '*" & Me.cmbRechEtape & "*') ORDER BY AffaireEtendu.Nom"
End If
If Not Me.chkSource Then
SQL = SQL & "And ((AffaireEtendu!SourceAf) = '" & Me.cmbRechSource & "') ORDER BY AffaireEtendu.Nom"
End If
If Not Me.chkDesignation Then
SQL = SQL & "And ((AffaireEtendu!Désignation) like '*" & Me.txtRechDesignation & "*') ORDER BY AffaireEtendu.Nom"
End If
SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
SQL = SQL & ";"
Me.lblStats.Caption = DCount("*", "AffaireEtendu", SQLWhere) & " / " & DCount("*", "AffaireEtendu")
Me.lstResults.RowSource = SQL
Me.lstResults.Requery
End Sub
|
|
|
|
|
|
#2 (permalink) |
|
Membre Expert
![]() Date d'inscription: mai 2005
Localisation: IDF - 94
Messages: 1 084
|
Insère la ligne
Code :
debug.print Sql
Tu verras exactement ce qui cloche dans ta requête, dans la fenêtre Execution
__________________
Merci de ne pas m'envoyer de message privé pour des pb techniques |
|
|
|
|
|
#5 (permalink) |
|
Invité de passage
![]() Date d'inscription: septembre 2008
Messages: 9
|
Salut,
Le problème, c'est que tu construis ta requête petit à petit, donc tu luio ajoute des morçeaux de String à chaque fois. Mais en faisant cela, tu ajoutes à chaque fois le ORDER BY AffaireEtendu.Nom, alors qu'il ne faut l'ajouter qu'à la toute fin de l'instruction SQl, juste avant le ";". Tu n'as donc qu'à enlever les 4 premiers ORDER BY AffaireEtendu.Nom. @+ |
|
|
|
|
|
#6 (permalink) |
|
Membre actif
![]() Date d'inscription: avril 2006
Localisation: Toulouse
Âge: 23
Messages: 182
|
basshero816 a raison.
Le order by ne se fait qu'à la fin d'une requête SQL. Même si tu peux garantir qu'il ne passe toujours que dans un seul de tes 4 checks, le Order by doit se mettre après la clause Where. |
|
|
|
|
|
#8 (permalink) |
|
Membre Confirmé
![]() Date d'inscription: novembre 2003
Messages: 275
|
Merci à tous,
Vous m'avez mis sur la voie, j'ai modifié : Code :
SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1)) SQL = SQL & ";" Code :
SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1)) SQL = SQL & "ORDER BY AffaireEtendu.Nom;" |
|
|
|
|
![]() |
![]() |
||
Problème avec Order by
|
||
| Outils de la discussion | |
|
|