Access VBA - enregistrer sous variable valeur d'un champ d'un état - VB/VBA/VBS - Programmation
Marsh Posté le 03-04-2009 à 09:43:22
Bonjour,
Un état ? Vous voulez dire une impression ou bien un statut ?
VBA utilise une hiérarchie d'objets.
Pour obtenir une information, il faut utiliser la syntaxe :
la_donnee = nom_objet.value |
Le nom de l'objet peut être ambigu, auquel cas, il faut écrire :
la_donnee = nom_pere_objet.nom_objet.value |
Parfois il faut mettre un point d'exclamation plutôt qu'un point. Si un nom contient des espaces, il faut le mettre entre crochets. Un des problèmes que rencontre le programmeur est de connaitre l'objet à utiliser. Cela dépend des versions de Access et de la manière dont l'application a été construite. Heureusement, souvent, il est possible d'utiliser un objet particulier, nommé me, qui désigne l'objet en cours.
Si votre donnée se trouve dans un champ d'un formulaire, alors utiliser :
la_donnee = Me![nom_du_champ_de_saisie] |
Bon courage !
Marsh Posté le 03-04-2009 à 09:58:53
Merci pour la reponse rapide
Alors c'est un etat que j'imprime à partir d'une requête que je modifie en SQL pour imprimer BL par BL.
Je souhaite que pour chaque impression recupérer les infos contenu dans mon état.
Je n'utilise pas de formulaire et j'essaie de faire ressortir mon n° de BL pour commencer.
AMI = technicien
J'ai essayé Me! mais il dit : utilisation incorrecte du mot clé Me
et les autres ne fonctionnent pas non plus...
Voici ma ligne de code :
If valeur <> nb Then
'Ma requête en SQL
Req_BL = "SELECT [00_Database_AMI_MAG_EMAIL].Email, [03_Filtre_Num_Auto_BL_Sem].Numauto, [00_Database_AMI_MAG_EMAIL].AMI, [03_Filtre_Num_Auto_BL_Sem].N°semaine, [01_BL_AMI_Clean].[Doc achat], [01_BL_AMI_Clean].Champ2, [01_BL_AMI_Clean].Référence ......... elle est longue... très longue "
'Modification du critère de la requête via ligne SQL
Req_BL = Left(Req_BL, InStr(1, Req_BL, "WHERE" ) - 1) & "WHERE ((([03_Filtre_Num_Auto_BL_Sem].NumAuto)=" & valeur & " ));"
'Actualisation de la requête
CurrentDb.QueryDefs("03_BL_SEM_ETAT" ).SQL = Req_BL
--> c'est ici que je travail !
Set bl = ![Référence].Value
valeur = valeur + 1
MsgBox bl
'Envoi de l'etat par email
DoCmd.SendObject acReport, "Envoi BL AMI", "SnapshotFormat", mail, "", "", "Bon de livraison de la semaine :" sem & "n° : " & bl, "Bonjour à tous, ceci est un test. Cordialement.", False, ""
GoTo suite
End If
En gras des valeurs que je veux ressortir pour chaque état
Marsh Posté le 03-04-2009 à 10:19:19
C'est beaucoup plus clair avec toutes ces explications. Malheureusement, je ne connais pas la solution, ou plutôt je ne dispose que de vieilles solutions qui sont un peu compliquées (par curiosité, vous pouvez voir le mot mail sur le site http://www.mvps.org/access/toc.htm ). Sans doute que quelqu'un d'autre pourra donner une meilleure réponse.
Marsh Posté le 03-04-2009 à 10:44:43
J'ai pas trouvé sur le site mvps.org
Par contre je travail un peu comme ca, en contournant les problèmes lol
Tes "vielles solutions" comme tu dit sont le bienvenu !
Tu ferais comment toi?
Créer un formulaire qui reprend les infos pour les enregistrer dans des variables?
De toute facon mon but c'est d'avoir ces variables peux importe le moyen ^^
Marsh Posté le 03-04-2009 à 11:40:23
Bonjour
Pourquoi ne stockes tu pas dans une table 'temporaire' les informations de ton etat, qui finalement sont le resultat de ta requete ?
Ou alors, si ta requete ne renvoie qu'un seul enregistrement (Si j'ai bien tout compris), un DLookup("[Référence]","NomDeLaRequeteDeTonEtat" )
Tu peux aussi la recuperer comme ca :
bl=Reports("NomDeTonEtat" )("Référence" )
Apres j'ai pas toutes les infos, c'est un peu vague...
Edit : Le Me! ne fonctionne que si tu es dans le module de l'etat.
Marsh Posté le 03-04-2009 à 09:19:46
Bonjour,
Je n'arrive pas à trouver et ca fait pas mal d'heures que je cherche pour stocker une valeur d'un champ d'un état dans une variable.
Je m'explique :
- J'ai fais plusieurs requêtes pour avoir un état d'1 BL d'1 technicien avec le détail du BL et après dans une boucle je passe au deuxieme BL du technicien après je passe a un autre tech et etc...
Le problème c'est que je veux envoyer ces BL par email et je cherche donc à récuperer les informations pour chaque état mais j'ai pas trouver la solution en VBA.
Avez vous une ligne de code à me proposer ?
Merci par avance..
Message édité par Ideret le 03-04-2009 à 09:21:13