Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/01/2012, 17h21   #1
Membre émérite
 
Homme
Chercheur
Inscription : mars 2010
Messages : 733
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chercheur

Informations forums :
Inscription : mars 2010
Messages : 733
Points : 931
Points : 931
Par défaut Afficher résultat requete dans msgbox

Bonjour,

je cherche à récupérer la valeur d'une requête dans une Msgbox mais je n'y arrive pas. J'ai fouiné sur la toile pour comprendre comment cela fonctionne mais rien ne semble marcher. Je dois faire une erreur quelque part mais je ne sais pas où. Si une âme charitable pouvait me renseigner ce serait super. Voici le code:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Option Compare Database
 
Private Sub Commande1_Click()
 
 
 
'déclarations des variables
Dim Didact As DAO.Database
Dim Temp_Mouvement As Variant
Dim requete As String
Dim toto As String
Dim stock  As DAO.Recordset
 
 
 Set Didact = CurrentDb
 
 'Set Temp_Mouvement = Didact.OpenRecordset("Mouvement", dbOpenDynaset)
 'requete = "SELECT Sum(Mouvement.Quantite) AS Stock_entree FROM Emplacement INNER JOIN (Articles INNER JOIN Mouvement ON Articles.Ref_article = Mouvement.Ref_Article) ON Emplacement.Ref_Emplacement = Mouvement.Ref_Emplacement WHERE (((Articles.Ref_Article)=[saisir article :]) AND ((Emplacement.Ref_Emplacement)=[saisir emplacement : ]));"
requete = "SELECT Articles.SeuilReapro_article as stock2 FROM Articles where  Articles.Ref_article = 'Prod-008';"
 Set stock = Didact.OpenRecordset(requete, dbOpenDynaset)
 
MsgBox ("Stock : " + Str(stock.Fields("item 1").Value))
 
End Sub
J'ai vu au debogueur que la valeur récupérée dans Articles.SeuilReapro_article se trouve dans le champ Value du champ Item 1 de stock mais impossible de le récupérer.
Aleph69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 17h43   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 475
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 475
Points : 7 564
Points : 7 564
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Option Compare Database
 
Private Sub Commande1_Click()
 
'déclarations des variables
Dim Didact As DAO.Database:set didact=currentdb
Dim Temp_Mouvement As Variant
Dim requete As String
Dim toto As String
Dim stock  As DAO.Recordset
 
 
 Set Didact = CurrentDb
 
 'Set Temp_Mouvement = Didact.OpenRecordset("Mouvement", dbOpenDynaset)
 'requete = "SELECT Sum(Mouvement.Quantite) AS Stock_entree FROM Emplacement INNER JOIN (Articles INNER JOIN Mouvement ON Articles.Ref_article = Mouvement.Ref_Article) ON Emplacement.Ref_Emplacement = Mouvement.Ref_Emplacement WHERE (((Articles.Ref_Article)=[saisir article :]) AND ((Emplacement.Ref_Emplacement)=[saisir emplacement : ]));"
requete = "SELECT Articles.SeuilReapro_article as stock2 FROM Articles where  Articles.Ref_article = 'Prod-008';"
 Set stock = Didact.OpenRecordset(requete, dbOpenDynaset)
 
MsgBox "Stock : " & stock![stock2] 'Ancienne version plus compacte de stock.fields("stock2") ou de stock.fields(1)
 
stock.close:set stock=nothing 'Ferme le recorset et libère la mémoire allouée
set db=nothing 'Libère la mémoire allouée
 
End Sub
Le "Item 1" que tu vois dans le debuggeur est seulement une matérialisation du champ correspondant. Une astuce qui permet à cet outil de rester générique.

En principe les libérations ne sont pas obligatoires car le compilateur devrait s'en charger. En réalité il est recommandé de libérer explictement les ressources utilisées dés qu'on en a plus besoin. Cela aide la machine à bien gérer sa mémoire ce qui évite des bugs parfois très mystérieux.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 17h47   #3
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 475
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 475
Points : 7 564
Points : 7 564
Tu aurais pu aussi utiliser DFirst à la place.

Code :
1
2
3
4
5
6
7
dim result as variant
result=DFirst("[SeuilReapro_article]","Articles","[Articles.Ref_article] = ""Prod-008""")
if not isnull(result) then
     msgbox result
   else
     msgbox "Non trouvé !"
end if
A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 18h24   #4
Rédacteur/Modérateur
 
Avatar de GAYOT
 
Homme Jean-Damien GAYOT
Inscription : novembre 2004
Messages : 2 076
Détails du profil
Informations personnelles :
Nom : Homme Jean-Damien GAYOT
Âge : 56
Localisation : France, Meuse (Lorraine)

Informations professionnelles :
Secteur : Distribution

Informations forums :
Inscription : novembre 2004
Messages : 2 076
Points : 4 399
Points : 4 399
Envoyer un message via Skype™ à GAYOT
Bonsoir
Dans tes recherches as tu lu ce tutoriel?
http://jdgayot.developpez.com/tutori...ultats-labels/
__________________
Plus j'avance et plus j'ai l'impression de ne rien savoir. Et comme j'essaie d'aller loin..!!.

Tutoriels sur:http://jdgayot.developpez.com

Pas de sujets techniques par Mp. Sinon
GAYOT est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h12.


 
 
 
 
Partenaires

Hébergement Web