Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA tri requête en VBA

5 réponses
Avatar
domivax
Bonjour =E0 tous,

J'ai un formulaire avec une ListBox =E0 5 colonnes aliment=E9e par une
requ=EAte "MaQuery".

La requ=EAte ne comporte aucun tri et aucun crit=E8re.

Ce que je voudrais, c'est la cr=E9ation sur mon formulaire d'un bouton
"ASC" & un autre "DESC" en regard de chaque colonne de ma LisbBox pour
g=E9rer le tri.

Comment faire pour g=E9rer le tri des donn=E9es de ma LisbBox aliment=E9e
par MaQuery sans =EAtre oblig=E9 de r=E9=E9crire en VBA ma requ=EAte pour ch=
aque
bouton.
Il faudra que chaque bouton n'ait que l'instruction ORDER BY

Merci pour votre aide.
A bient=F4t.
Xavier

5 réponses

Avatar
Fabien
Bonjour à tous,

J'ai un formulaire avec une ListBox à 5 colonnes alimentée par une
requête "MaQuery".

La requête ne comporte aucun tri et aucun critère.

Ce que je voudrais, c'est la création sur mon formulaire d'un bouton
"ASC" & un autre "DESC" en regard de chaque colonne de ma LisbBox pour
gérer le tri.

Comment faire pour gérer le tri des données de ma LisbBox alimentée
par MaQuery sans être obligé de réécrire en VBA ma requête pour chaque
bouton.
Il faudra que chaque bouton n'ait que l'instruction ORDER BY

Merci pour votre aide.
A bientôt.
Xavier
Bonjour,

Tu peux modifier le contenu de ta requete grace a l'instruction
currentdb.querydefs("MaQuery").sql ="kdsflmksdflk"
Dés lors tu fait un

Dim StrSQl as string
StrSql=currentdb.querydefs("MaQuery").sql 'Tu reccupere l'instruction
en cours
'Tu cherche la position de la commande ORDER BY dans la chaine
'A priori ORDER BY est en fin de chaine
Strsql=Mid(strsql,instr(1,strsql,"ORDER BY")-1) & " ODRER BY
[lechampquim'interesse] " & lesens & ";"
'Tu réaffecte le texte de la requete à la requete qui alimente ta liste
currentdb.querydefs("MaQuery").sql = StrSql
'et tu raffraichis
me.maliste.requery
@+

Avatar
domivax
Bonjour,

Merci pour la réponse mais j'ai un message d'erreur.

Run-time error '13':
Type mismatch

Merci pour votre aide.
Xavier
Avatar
Fabien
Bonjour,

Merci pour la réponse mais j'ai un message d'erreur.

Run-time error '13':
Type mismatch

Merci pour votre aide.
Xavier
Salut

revoir la syntaxe : il y a quelque part l'utilisation d'un numérique
dans une expression qui attend de l'alpha ou le contraire.
ou une faute de frappe
Strsql=Mid(strsql,instr(1,strsql,"ORDER BY")-1) & " ORDER BY
[lechampquim'interesse] " & lesens & ";"
et non pas
Strsql=Mid(strsql,instr(1,strsql,"ORDER BY")-1) & " ODRER BY
[lechampquim'interesse] " & lesens & ";"

Sinon donne ici ton code ...

Avatar
domivax
merci pour la réponse.

Au fait, ta procèdure me fait disparaître toute ma chaine SQL (SELECT
etc...) , me garde le ORDER BY initial et me rajoute le nouveau ORDER
BY ensuite.

Merci pour ton aide.
Xavier
Avatar
Fabien
merci pour la réponse.

Au fait, ta procèdure me fait disparaître toute ma chaine SQL (SELECT
etc...) , me garde le ORDER BY initial et me rajoute le nouveau ORDER
BY ensuite.

Merci pour ton aide.
Xavier

Oups,

essaye avec
strsql = Left(strsql, InStr(1, strsql, "ORDER") - 1) & "ORDER By
[LaTable].[LeChamps] " & lesens & ";"

Il y a des fois où je me complique la vie pour rien ;-)
@+