OVH Cloud OVH Cloud

Ouvrir ET trier les données d'une table depuis formulaire

4 réponses
Avatar
Soso
Hello à toi qui pourra m'aider.

J'arrive parfaitement à ouvrir ma table Access...mais y a-t-il un moyen de
faire un tri à l'ouverture?
Merci mille fois
Soso

Voici mon code
If stDocNameNT = "" Then MsgBox "Pas de données": GoTo Exit_ViewTableNT_Click:
Me.ViewTable = stViewTable
DoCmd.OpenTable stDocNameNT, acViewNormal, acReadOnly 'acViewPreview

4 réponses

Avatar
3stone
Salut,

"Soso"
| J'arrive parfaitement à ouvrir ma table Access...mais y a-t-il un moyen de
| faire un tri à l'ouverture?
| Merci mille fois
| Soso
|
| Voici mon code
| If stDocNameNT = "" Then MsgBox "Pas de données": GoTo Exit_ViewTableNT_Click:
| Me.ViewTable = stViewTable
| DoCmd.OpenTable stDocNameNT, acViewNormal, acReadOnly 'acViewPreview


Par principe, on ne travaille pas directement sur les tables, il est donc inutile de "l'ouvrir"


Pour ordonner les enregistrements selon un ou des champs, utilise une requête
de sélection dans laquelle tu pourra indiquer les champs à trier!
Ces requêtes sont ensuite utilisées comme source de formulaires (pour la saisie
et consultation) et des états pour leur impression.


PS: Dans ton "code", évite des 'if then goto' qui sont d'un autre monde ;-)


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Avatar
Soso
Hello,

Merci pour tes conseils...je vais éviter les if then...
ça me va parfaitement de générer une requête, mais cette requête n'existe
pas au préalable (je ne sais pas à l'avance sur quelle table elle sera
faite) et je ne veux pas qu'elle reste stockée ensuite.
J'ai essayé avec ...

DoCmd.OpenQuery ("select * from " & stDocNameDiff0 & Tri), acNormal, acEd

Mais bien entendu, il ne trouve pas la requête. Y a-t-il une façon de créer
une requête temporairement....le temps de la visualiser?

Merci


Salut,

"Soso"
| J'arrive parfaitement à ouvrir ma table Access...mais y a-t-il un moyen de
| faire un tri à l'ouverture?
| Merci mille fois
| Soso
|
| Voici mon code
| If stDocNameNT = "" Then MsgBox "Pas de données": GoTo Exit_ViewTableNT_Click:
| Me.ViewTable = stViewTable
| DoCmd.OpenTable stDocNameNT, acViewNormal, acReadOnly 'acViewPreview


Par principe, on ne travaille pas directement sur les tables, il est donc inutile de "l'ouvrir"


Pour ordonner les enregistrements selon un ou des champs, utilise une requête
de sélection dans laquelle tu pourra indiquer les champs à trier!
Ces requêtes sont ensuite utilisées comme source de formulaires (pour la saisie
et consultation) et des états pour leur impression.


PS: Dans ton "code", évite des 'if then goto' qui sont d'un autre monde ;-)


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/




Avatar
3stone
Salut,

"Soso"
| Merci pour tes conseils...je vais éviter les if then...


Non... c'est le "goto" final qu'il faut éliminer ;-)


| ça me va parfaitement de générer une requête, mais cette requête n'existe
| pas au préalable (je ne sais pas à l'avance sur quelle table elle sera
| faite) et je ne veux pas qu'elle reste stockée ensuite.
| J'ai essayé avec ...
|
| DoCmd.OpenQuery ("select * from " & stDocNameDiff0 & Tri), acNormal, acEd


Regarde "CreateQueryDef"

Le OpenQuery porte bien son nom... il ouvre une requête.
Tu peux aussi utiliser "RunSQL" et "Db.Execute" mais pour des requêtes action.


Ceci dit, je ne vois pas à quoi peut servir le fait de "créer" une requête par VBA
et d'afficher sont résultat. C'est une démarche inutile dans une application...


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Avatar
Soso
Hello,
Pourquoi ouvrir une requête en vb? Je stocke temporairement des
enregistrements dans une table access (lignes analysées) et je veux que
l'utilisateur puisse y accéder depuis un formulaire. Ces données doivent être
triées dans un ordre spécifique car je fais un journal de protocole qui donne
le no de ligne où se trouve l'erreur
Voilà


Salut,

"Soso"
| Merci pour tes conseils...je vais éviter les if then...


Non... c'est le "goto" final qu'il faut éliminer ;-)


| ça me va parfaitement de générer une requête, mais cette requête n'existe
| pas au préalable (je ne sais pas à l'avance sur quelle table elle sera
| faite) et je ne veux pas qu'elle reste stockée ensuite.
| J'ai essayé avec ...
|
| DoCmd.OpenQuery ("select * from " & stDocNameDiff0 & Tri), acNormal, acEd


Regarde "CreateQueryDef"

Le OpenQuery porte bien son nom... il ouvre une requête.
Tu peux aussi utiliser "RunSQL" et "Db.Execute" mais pour des requêtes action.


Ceci dit, je ne vois pas à quoi peut servir le fait de "créer" une requête par VBA
et d'afficher sont résultat. C'est une démarche inutile dans une application...


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/