{Access} Requete SQL en VBA
Résolu/Fermé
fabnpp
Messages postés
4
Date d'inscription
vendredi 24 juillet 2009
Statut
Membre
Dernière intervention
27 juillet 2009
-
24 juil. 2009 à 13:15
fabnpp Messages postés 4 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 27 juillet 2009 - 27 juil. 2009 à 14:11
fabnpp Messages postés 4 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 27 juillet 2009 - 27 juil. 2009 à 14:11
A voir également:
- {Access} Requete SQL en VBA
- Find vba - Astuces et Solutions
- Sql lister les tables ✓ - Forum Programmation
- Vba attendre 1 seconde ✓ - Forum VB / VBA
- Access runtime ✓ - Forum Access
- Acer quick access - Forum Logiciels
4 réponses
incaout
Messages postés
347
Date d'inscription
lundi 8 septembre 2008
Statut
Membre
Dernière intervention
15 novembre 2012
74
26 juil. 2009 à 20:25
26 juil. 2009 à 20:25
Salut
Utilises tu ADO ou DAO ?
DAO est l'ancienne méthode. En DAO,
dim db as database 'déclare un objet base de données
dim enr as recordset 'crée un objet recordset pour manipuler les données
set db = currentdb 'associe la base de données ouverte
rq = "select TG.DIFdispo from TG where (TG.num=1)"
set enr = db.querydefs(rq).openrecordset 'exécute la requete et récupère les résultats dans un recordset
if enr.recordcount>0 then 'vérifie que des résultats sont présent
enr.movefirst 'se place sur le 1er résultat
while enr.eof = false 'parcours chaque résultat
valeur = enr.fields(0).value 'récupère la valeur du champ 1 dans la variable valeur
reponse = inputbox("veuillez etc...","titre",valeur) 'affiche une boite de saisie avec la valeur initiale
enr.edit 'edite l'enregistrement en cours
enr.fields(0).value = reponse 'insère dans le champ 1 la valeur de la saisie utilisateur
enr.update 'Met à jour l'enregistrement
enr.movenext 'passe au résultat suivant
wend
end if
'ferme les objets
enr.close
db.quit
'libére les variables
set enr = nothing
set db = nothing
A tester et à adapter. Si tu as des questions n'hésites pas.
Cdlt
IC
Utilises tu ADO ou DAO ?
DAO est l'ancienne méthode. En DAO,
dim db as database 'déclare un objet base de données
dim enr as recordset 'crée un objet recordset pour manipuler les données
set db = currentdb 'associe la base de données ouverte
rq = "select TG.DIFdispo from TG where (TG.num=1)"
set enr = db.querydefs(rq).openrecordset 'exécute la requete et récupère les résultats dans un recordset
if enr.recordcount>0 then 'vérifie que des résultats sont présent
enr.movefirst 'se place sur le 1er résultat
while enr.eof = false 'parcours chaque résultat
valeur = enr.fields(0).value 'récupère la valeur du champ 1 dans la variable valeur
reponse = inputbox("veuillez etc...","titre",valeur) 'affiche une boite de saisie avec la valeur initiale
enr.edit 'edite l'enregistrement en cours
enr.fields(0).value = reponse 'insère dans le champ 1 la valeur de la saisie utilisateur
enr.update 'Met à jour l'enregistrement
enr.movenext 'passe au résultat suivant
wend
end if
'ferme les objets
enr.close
db.quit
'libére les variables
set enr = nothing
set db = nothing
A tester et à adapter. Si tu as des questions n'hésites pas.
Cdlt
IC
fabnpp
Messages postés
4
Date d'inscription
vendredi 24 juillet 2009
Statut
Membre
Dernière intervention
27 juillet 2009
27 juil. 2009 à 09:20
27 juil. 2009 à 09:20
Je ne sais pas si j'utilise DAO ou ADO, il me semble que ADO est plus rapide.
Je viens de tester le code, et problème dans la déclaration des variables access me dit qu'il y a une erreur et me surligne mon démarrage de macro je ne sais pas quoi mettre donc j'ai mis
sub test_database()
merci beaucoup
cordialement
Je viens de tester le code, et problème dans la déclaration des variables access me dit qu'il y a une erreur et me surligne mon démarrage de macro je ne sais pas quoi mettre donc j'ai mis
sub test_database()
merci beaucoup
cordialement
fabnpp
Messages postés
4
Date d'inscription
vendredi 24 juillet 2009
Statut
Membre
Dernière intervention
27 juillet 2009
27 juil. 2009 à 10:07
27 juil. 2009 à 10:07
après test lors de l'exécution cette ligne
Set enr = db.querydefs![rq].OpenRecordset
pose problème
De plus en regardant le code c'est juste une mise à jour? pas l'addition de la nouvelle valeur à l'ancienne?
je suis désolé, je patauge complétement
Cordialement
Set enr = db.querydefs![rq].OpenRecordset
pose problème
De plus en regardant le code c'est juste une mise à jour? pas l'addition de la nouvelle valeur à l'ancienne?
je suis désolé, je patauge complétement
Cordialement
fabnpp
Messages postés
4
Date d'inscription
vendredi 24 juillet 2009
Statut
Membre
Dernière intervention
27 juillet 2009
27 juil. 2009 à 14:11
27 juil. 2009 à 14:11
MERCI c'est résolu