Bonjour,
N'ayant pas résolu mon problème avec des requêtes, je me tourne vers la
programmation VBA.
J'ai trouvé des centaines d'exemples et de façon de faire, très pointu sur
internet. Mais je ne sais pas lancer un seul de ce petits programmes.
Dans un premier temps, je voudrais faire ceci :
Faire un formulaire avec un bouton qui lorsque je clique, lance un module
qui liste le contenu d'une de mes tables.
Il est clair que je ne cherche pas a faire une requête select lancée par un
bouton du formulaire (ça je sais le faire). Bien comprendre que je cherche à
apprendre les rudiment nécessaire pour faire un programme VBA.
Une autre façon de dire ce que je cherche serait :
comment en VBA faire l'équivalent de
SELECT champ1, champ2 FROM table WHERE x=Y
merci
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
FreeAccess
Bonjour,
Pas très clair ton explication. Si j'ai bien compris tu veux seulement afficher sur un Form le contenue d'une de tes tables avec un critère du genre champ x doit contenir Y !!! Et bien en VBA c'est la même chose, si tu ne connais pas le code exact, fait d'abord une requête, clic droit 'Mode SQL' et récupère le code. Ensuite sur la propriétés "Sur clic" qui doit afficher tes données :
Dim sSQL as STRING sSQL = "SELECT...........(ici tu recopie le code issue de ta requête)..."
Pour plus de précision 'Touche F1' sur le mot RunSQL. Bonne continuation
Bonjour,
Pas très clair ton explication. Si j'ai bien compris tu veux seulement
afficher sur un Form le contenue d'une de tes tables avec un critère
du genre champ x doit contenir Y !!!
Et bien en VBA c'est la même chose, si tu ne connais pas le code
exact, fait d'abord une requête, clic droit 'Mode SQL' et récupère
le code.
Ensuite sur la propriétés "Sur clic" qui doit afficher tes données :
Dim sSQL as STRING
sSQL = "SELECT...........(ici tu recopie le code issue de ta
requête)..."
Pour plus de précision 'Touche F1' sur le mot RunSQL.
Bonne continuation
Pas très clair ton explication. Si j'ai bien compris tu veux seulement afficher sur un Form le contenue d'une de tes tables avec un critère du genre champ x doit contenir Y !!! Et bien en VBA c'est la même chose, si tu ne connais pas le code exact, fait d'abord une requête, clic droit 'Mode SQL' et récupère le code. Ensuite sur la propriétés "Sur clic" qui doit afficher tes données :
Dim sSQL as STRING sSQL = "SELECT...........(ici tu recopie le code issue de ta requête)..."
Pour plus de précision 'Touche F1' sur le mot RunSQL. Bonne continuation
Papilou
Pas très clair ton explication. Mes excuses je vais essayé de faire plus clair
Si j'ai bien compris tu veux seulement afficher sur un Form le contenue d'une de tes tables avec un critère du genre champ x doit contenir Y !!! Je veux, faire en VBA le même style d'affichage qui se fait quant je lance
une requête. Je sais faire un formulair, lancer une requête, ecrire une requête en SQL ou QBE.... Pas de problème pour moi. Mais j'ai un problème que je ne peux pas résoudre avec une requête. Donc il faut passer par du VBA ou autre chose. Mais de la programmation.
Et bien en VBA c'est la même chose, si tu ne connais pas le code exact, fait d'abord une requête, clic droit 'Mode SQL' et récupère le code.
Oui je sais cela, mais ce n'est pas une requête que je veux faire. mais un petit programme qui affiche le contenue d'une table par exemple, et pour commencer. Dans un autre temps, quand je saurais faire cela, je ferai un programme plus complexe. Mais je veux juste essayer.
Merci de ton aide.
Pas très clair ton explication.
Mes excuses je vais essayé de faire plus clair
Si j'ai bien compris tu veux seulement
afficher sur un Form le contenue d'une de tes tables avec un critère
du genre champ x doit contenir Y !!!
Je veux, faire en VBA le même style d'affichage qui se fait quant je lance
une requête.
Je sais faire un formulair, lancer une requête, ecrire une requête en SQL ou
QBE.... Pas de problème pour moi. Mais j'ai un problème que je ne peux pas
résoudre avec une requête. Donc il faut passer par du VBA ou autre chose.
Mais de la programmation.
Et bien en VBA c'est la même chose, si tu ne connais pas le code
exact, fait d'abord une requête, clic droit 'Mode SQL' et récupère
le code.
Oui je sais cela, mais ce n'est pas une requête que je veux faire. mais un
petit programme qui affiche le contenue d'une table par exemple, et pour
commencer. Dans un autre temps, quand je saurais faire cela, je ferai un
programme plus complexe. Mais je veux juste essayer.
Pas très clair ton explication. Mes excuses je vais essayé de faire plus clair
Si j'ai bien compris tu veux seulement afficher sur un Form le contenue d'une de tes tables avec un critère du genre champ x doit contenir Y !!! Je veux, faire en VBA le même style d'affichage qui se fait quant je lance
une requête. Je sais faire un formulair, lancer une requête, ecrire une requête en SQL ou QBE.... Pas de problème pour moi. Mais j'ai un problème que je ne peux pas résoudre avec une requête. Donc il faut passer par du VBA ou autre chose. Mais de la programmation.
Et bien en VBA c'est la même chose, si tu ne connais pas le code exact, fait d'abord une requête, clic droit 'Mode SQL' et récupère le code.
Oui je sais cela, mais ce n'est pas une requête que je veux faire. mais un petit programme qui affiche le contenue d'une table par exemple, et pour commencer. Dans un autre temps, quand je saurais faire cela, je ferai un programme plus complexe. Mais je veux juste essayer.
Merci de ton aide.
FreeAccess
Ok,
Oui je sais cela, mais ce n'est pas une requête que je veux faire. mais un petit programme qui affiche le contenue d'une table par exemple, et pour commencer. Dans un autre temps, quand je saurais faire cela, je ferai un programme plus complexe. Mais je veux juste essayer.
L'exemple de la requête était juste la façon de montrer comment récupérer le code SQL ;-))
Mais j'ai un problème que je ne peux pas résoudre avec une requête. Donc il faut passer par du VBA ou autre chose. Mais de la programmation.
Généralement, sauf cas particulier, on gére pratiquement tout avec une requête, éventuellement avec des requêtes imbriquées.
mais un petit programme qui affiche le contenue d'une table par exemple
Donc pour ça pas de secret, touche F1 et regarde 'RunSQL' - 'Création table en VBA' - etc .......ou consulte l'excellent site http://access.developpez.com/faq/?page=TATablesAndFields#CreerFormTbl.
Ici tu trouveras une tonne d'information pour faire ce que tu veux......et même poser des questions.
Bonne continuation
Ok,
Oui je sais cela, mais ce n'est pas une requête que je veux faire. mais un
petit programme qui affiche le contenue d'une table par exemple, et pour
commencer. Dans un autre temps, quand je saurais faire cela, je ferai un
programme plus complexe. Mais je veux juste essayer.
L'exemple de la requête était juste la façon de montrer comment
récupérer le code SQL ;-))
Mais j'ai un problème que je ne peux pas résoudre avec une requête. Donc il faut passer par du VBA ou autre chose.
Mais de la programmation.
Généralement, sauf cas particulier, on gére pratiquement tout avec
une requête, éventuellement avec des requêtes imbriquées.
mais un petit programme qui affiche le contenue d'une table par exemple
Donc pour ça pas de secret, touche F1 et regarde 'RunSQL' - 'Création
table en VBA' - etc .......ou consulte l'excellent site
http://access.developpez.com/faq/?page=TATablesAndFields#CreerFormTbl.
Ici tu trouveras une tonne d'information pour faire ce que tu
veux......et même poser des questions.
Oui je sais cela, mais ce n'est pas une requête que je veux faire. mais un petit programme qui affiche le contenue d'une table par exemple, et pour commencer. Dans un autre temps, quand je saurais faire cela, je ferai un programme plus complexe. Mais je veux juste essayer.
L'exemple de la requête était juste la façon de montrer comment récupérer le code SQL ;-))
Mais j'ai un problème que je ne peux pas résoudre avec une requête. Donc il faut passer par du VBA ou autre chose. Mais de la programmation.
Généralement, sauf cas particulier, on gére pratiquement tout avec une requête, éventuellement avec des requêtes imbriquées.
mais un petit programme qui affiche le contenue d'une table par exemple
Donc pour ça pas de secret, touche F1 et regarde 'RunSQL' - 'Création table en VBA' - etc .......ou consulte l'excellent site http://access.developpez.com/faq/?page=TATablesAndFields#CreerFormTbl.
Ici tu trouveras une tonne d'information pour faire ce que tu veux......et même poser des questions.
Bonne continuation
Bonjour
Oui je sais cela, mais ce n'est pas une requête que je veux faire. mais un petit programme qui affiche le contenue d'une table par exemple, et pour commencer. Dans un autre temps, quand je saurais faire cela, je ferai un programme plus complexe. Mais je veux juste essayer.
on n'affiche pas une requête en vba, mais on peut parcourir le contenu d'une table ou d'une requête
Quoi qu'il en soit, il faut savoir que les données dans une table access n'ont pas forcément le même ordre "interne" que celui "affiché" et qu'il te faudra une clé primaire avec numéro auto incrémentiel pour savoir quelle donnée a été saisie avant l'autre....
sinon, pour parcourir ta table, ta requete ou ta syntaxe sql, une façon de faire pourrait être la suivante :
Public Sub parcourirdonnees() Dim dbs As DAO.Database Dim rst As DAO.Recordset Set dbs = Application.CurrentDb Set rst = dbs.OpenRecordset("Select * from TaTable;") rst.MoveLast rst.MoveFirst Do While Not rst.EOF MsgBox rst("champ1") & " - " & rst("Champ2") rst.MoveNext Loop rst.Close dbs.Close Set rst = Nothing Set dbs = Nothing End Sub
+a -- Arnaud --------------------------------------------- infos, conseils et liens : http://www.mpfa.info ---------------------------------------------
Bonjour
Oui je sais cela, mais ce n'est pas une requête que je veux faire. mais un petit programme qui affiche le contenue d'une table par
exemple, et pour commencer. Dans un autre temps, quand je saurais faire cela, je ferai un programme plus complexe. Mais je veux
juste essayer.
on n'affiche pas une requête en vba, mais on peut parcourir le contenu d'une table ou d'une requête
Quoi qu'il en soit, il faut savoir que les données dans une table access n'ont pas forcément le même ordre "interne" que celui
"affiché"
et qu'il te faudra une clé primaire avec numéro auto incrémentiel pour savoir quelle donnée a été saisie avant l'autre....
sinon, pour parcourir ta table, ta requete ou ta syntaxe sql, une façon de faire pourrait être la suivante :
Public Sub parcourirdonnees()
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Set dbs = Application.CurrentDb
Set rst = dbs.OpenRecordset("Select * from TaTable;")
rst.MoveLast
rst.MoveFirst
Do While Not rst.EOF
MsgBox rst("champ1") & " - " & rst("Champ2")
rst.MoveNext
Loop
rst.Close
dbs.Close
Set rst = Nothing
Set dbs = Nothing
End Sub
+a
--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------
Oui je sais cela, mais ce n'est pas une requête que je veux faire. mais un petit programme qui affiche le contenue d'une table par exemple, et pour commencer. Dans un autre temps, quand je saurais faire cela, je ferai un programme plus complexe. Mais je veux juste essayer.
on n'affiche pas une requête en vba, mais on peut parcourir le contenu d'une table ou d'une requête
Quoi qu'il en soit, il faut savoir que les données dans une table access n'ont pas forcément le même ordre "interne" que celui "affiché" et qu'il te faudra une clé primaire avec numéro auto incrémentiel pour savoir quelle donnée a été saisie avant l'autre....
sinon, pour parcourir ta table, ta requete ou ta syntaxe sql, une façon de faire pourrait être la suivante :
Public Sub parcourirdonnees() Dim dbs As DAO.Database Dim rst As DAO.Recordset Set dbs = Application.CurrentDb Set rst = dbs.OpenRecordset("Select * from TaTable;") rst.MoveLast rst.MoveFirst Do While Not rst.EOF MsgBox rst("champ1") & " - " & rst("Champ2") rst.MoveNext Loop rst.Close dbs.Close Set rst = Nothing Set dbs = Nothing End Sub
+a -- Arnaud --------------------------------------------- infos, conseils et liens : http://www.mpfa.info ---------------------------------------------
Papilou
Je progresse, je progresse Merci anor PS: Pour toutes les remarques sur la table je suis daccord, mais c'est ainsi, elle est comme cela on ne peut la changer. Il faut que je trouve le moyen de l'exploiter comme elle est. Par contre, et c'est ca mon objectif, je peut a partir de ma table initiale en construire une autre. En attendant, ce programme fonctionneparfaitement. Mais ne peut-on pas afficher les résultat autrement que dans une MsgBox????? C'est chiant d'appuyere 50 fois sur OK....
Private Sub Commande0_Click() On Error GoTo Err_Commande0_Click MsgBox "hello" Dim db As Database Dim reponse As Recordset Dim sql As String
Set db = CurrentDb() sql = "SELECT champ1, champ2, champ3, champ4 FROM table1 WHERE champ10000;"
Set reponse = db.OpenRecordset(sql, dbOpenDynaset)
While Not reponse.EOF MsgBox reponse.Fields("champ1") & " " & reponse.Fields("champ2") & " " & reponse.Fields("champ3") & " " & reponse.Fields("champ4") reponse.MoveNext Wend reponse.Close: Set reponse = Nothing db.Close: Set db = Nothing
Je progresse, je progresse
Merci anor
PS: Pour toutes les remarques sur la table je suis daccord, mais c'est
ainsi, elle est comme cela on ne peut la changer. Il faut que je trouve le
moyen de l'exploiter comme elle est. Par contre, et c'est ca mon objectif,
je peut a partir de ma table initiale en construire une autre.
En attendant, ce programme fonctionneparfaitement.
Mais ne peut-on pas afficher les résultat autrement que dans une MsgBox?????
C'est chiant d'appuyere 50 fois sur OK....
Private Sub Commande0_Click()
On Error GoTo Err_Commande0_Click
MsgBox "hello"
Dim db As Database
Dim reponse As Recordset
Dim sql As String
Set db = CurrentDb()
sql = "SELECT champ1, champ2, champ3, champ4 FROM table1 WHERE
champ10000;"
Set reponse = db.OpenRecordset(sql, dbOpenDynaset)
While Not reponse.EOF
MsgBox reponse.Fields("champ1") & " " & reponse.Fields("champ2") & " " &
reponse.Fields("champ3") & " " & reponse.Fields("champ4")
reponse.MoveNext
Wend
reponse.Close: Set reponse = Nothing
db.Close: Set db = Nothing
Je progresse, je progresse Merci anor PS: Pour toutes les remarques sur la table je suis daccord, mais c'est ainsi, elle est comme cela on ne peut la changer. Il faut que je trouve le moyen de l'exploiter comme elle est. Par contre, et c'est ca mon objectif, je peut a partir de ma table initiale en construire une autre. En attendant, ce programme fonctionneparfaitement. Mais ne peut-on pas afficher les résultat autrement que dans une MsgBox????? C'est chiant d'appuyere 50 fois sur OK....
Private Sub Commande0_Click() On Error GoTo Err_Commande0_Click MsgBox "hello" Dim db As Database Dim reponse As Recordset Dim sql As String
Set db = CurrentDb() sql = "SELECT champ1, champ2, champ3, champ4 FROM table1 WHERE champ10000;"
Set reponse = db.OpenRecordset(sql, dbOpenDynaset)
While Not reponse.EOF MsgBox reponse.Fields("champ1") & " " & reponse.Fields("champ2") & " " & reponse.Fields("champ3") & " " & reponse.Fields("champ4") reponse.MoveNext Wend reponse.Close: Set reponse = Nothing db.Close: Set db = Nothing
"Papilou" a écrit dans le message de news: 447043ea$0$9978$
je peut a partir de ma table initiale en construire une autre. En attendant, ce programme fonctionneparfaitement. Mais ne peut-on pas afficher les résultat autrement que dans une MsgBox????? C'est chiant d'appuyere 50 fois sur OK....
ben justement, c'est à cet endroit, à la place des msgbox, que tu vas incorporer ton programme qui va faire je ne sais quoi en fonction des valeurs de champs du recordset qu'il est en train de parcourir ...
-- Arnaud --------------------------------------------- infos, conseils et liens : http://www.mpfa.info ---------------------------------------------
re
"Papilou" <jl.martine@wanad.fr> a écrit dans le message de news: 447043ea$0$9978$636a55ce@news.free.fr...
je peut a partir de ma table initiale en construire une autre.
En attendant, ce programme fonctionneparfaitement.
Mais ne peut-on pas afficher les résultat autrement que dans une MsgBox?????
C'est chiant d'appuyere 50 fois sur OK....
ben justement, c'est à cet endroit, à la place des msgbox, que tu vas incorporer ton programme qui va faire je ne sais quoi
en fonction des valeurs de champs du recordset qu'il est en train de parcourir ...
--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------
"Papilou" a écrit dans le message de news: 447043ea$0$9978$
je peut a partir de ma table initiale en construire une autre. En attendant, ce programme fonctionneparfaitement. Mais ne peut-on pas afficher les résultat autrement que dans une MsgBox????? C'est chiant d'appuyere 50 fois sur OK....
ben justement, c'est à cet endroit, à la place des msgbox, que tu vas incorporer ton programme qui va faire je ne sais quoi en fonction des valeurs de champs du recordset qu'il est en train de parcourir ...
-- Arnaud --------------------------------------------- infos, conseils et liens : http://www.mpfa.info ---------------------------------------------
Papilou
Oui,oui c'est cela je m'y emploi, maintenant je sais faire.
c'est juste le msgbox qui me gene, mais ce n'est pas important, si on a pas autre chose je m'en contenterai. merci pour tout, ca marche maintenant NB: merci aussi pour les requêtes avec dcount et union, mais ca prend trop de temps machine c'est pour cela que je fait cette solution.
<Anor> a écrit dans le message de news:
re
"Papilou" a écrit dans le message de news: 447043ea$0$9978$
je peut a partir de ma table initiale en construire une autre. En attendant, ce programme fonctionneparfaitement. Mais ne peut-on pas afficher les résultat autrement que dans une MsgBox????? C'est chiant d'appuyere 50 fois sur OK....
ben justement, c'est à cet endroit, à la place des msgbox, que tu vas incorporer ton programme qui va faire je ne sais quoi en fonction des valeurs de champs du recordset qu'il est en train de parcourir ...
-- Arnaud --------------------------------------------- infos, conseils et liens : http://www.mpfa.info ---------------------------------------------
Oui,oui c'est cela
je m'y emploi, maintenant je sais faire.
c'est juste le msgbox qui me gene, mais ce n'est pas important, si on a pas
autre chose je m'en contenterai.
merci pour tout, ca marche maintenant
NB:
merci aussi pour les requêtes avec dcount et union, mais ca prend trop de
temps machine c'est pour cela que je fait cette solution.
<Anor> a écrit dans le message de news:
ODtknyMfGHA.1856@TK2MSFTNGP03.phx.gbl...
re
"Papilou" <jl.martine@wanad.fr> a écrit dans le message de news:
447043ea$0$9978$636a55ce@news.free.fr...
je peut a partir de ma table initiale en construire une autre.
En attendant, ce programme fonctionneparfaitement.
Mais ne peut-on pas afficher les résultat autrement que dans une
MsgBox?????
C'est chiant d'appuyere 50 fois sur OK....
ben justement, c'est à cet endroit, à la place des msgbox, que tu vas
incorporer ton programme qui va faire je ne sais quoi
en fonction des valeurs de champs du recordset qu'il est en train de
parcourir ...
--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------
Oui,oui c'est cela je m'y emploi, maintenant je sais faire.
c'est juste le msgbox qui me gene, mais ce n'est pas important, si on a pas autre chose je m'en contenterai. merci pour tout, ca marche maintenant NB: merci aussi pour les requêtes avec dcount et union, mais ca prend trop de temps machine c'est pour cela que je fait cette solution.
<Anor> a écrit dans le message de news:
re
"Papilou" a écrit dans le message de news: 447043ea$0$9978$
je peut a partir de ma table initiale en construire une autre. En attendant, ce programme fonctionneparfaitement. Mais ne peut-on pas afficher les résultat autrement que dans une MsgBox????? C'est chiant d'appuyere 50 fois sur OK....
ben justement, c'est à cet endroit, à la place des msgbox, que tu vas incorporer ton programme qui va faire je ne sais quoi en fonction des valeurs de champs du recordset qu'il est en train de parcourir ...
-- Arnaud --------------------------------------------- infos, conseils et liens : http://www.mpfa.info ---------------------------------------------
re
"Papilou" a écrit dans le message de news: 447061ca$0$9996$
c'est juste le msgbox qui me gene, mais ce n'est pas important, si on a pas autre chose je m'en contenterai.
ben le msgbox c'était juste pour l'exemple et te montrer comment extraire le contenu d'un champ spécifique... donc à toi de remplacer le msgbox par ce que tu veux ...???!!!!
a+ arnaud
re
"Papilou" <jl.martine@wanad.fr> a écrit dans le message de news: 447061ca$0$9996$636a55ce@news.free.fr...
c'est juste le msgbox qui me gene, mais ce n'est pas important, si on a pas autre chose je m'en contenterai.
ben le msgbox c'était juste pour l'exemple et te montrer comment extraire le contenu d'un champ spécifique...
donc à toi de remplacer le msgbox par ce que tu veux ...???!!!!
"Papilou" a écrit dans le message de news: 447061ca$0$9996$
c'est juste le msgbox qui me gene, mais ce n'est pas important, si on a pas autre chose je m'en contenterai.
ben le msgbox c'était juste pour l'exemple et te montrer comment extraire le contenu d'un champ spécifique... donc à toi de remplacer le msgbox par ce que tu veux ...???!!!!