Conditions simultanées sur code access
Résolu
unseen
Messages postés
65
Statut
Membre
-
LatelyGeek Messages postés 1759 Statut Membre -
LatelyGeek Messages postés 1759 Statut Membre -
Bonjour, les amis
je demande votre aide pour un code évènementiel VBA access
voilà , j'ai 3 champs :
- conditionnement (string) : liste déroulante (conventionnel; conteneurisé)
- vide (oui/non)
- plein (oui/non)
- num_plomb (string)
j'aimerais que si le conditionnement est "conteneurisé" et que l'utilisateur ne coche ni le champ "vide" ni le champ "plein", un message apparait pour lui dire de cocher l'une des cases (vide ou plein) et ce, lorqu'il passe au champ num_plomb.
exemple de message : "le conteneur est il vide ou plein ?"
j'espère avoir bien formulé ma requête mais si toutefois mon secoureur trouve que je peux faire plus simple je suis ouvert.
Merci de votre aide!
je demande votre aide pour un code évènementiel VBA access
voilà , j'ai 3 champs :
- conditionnement (string) : liste déroulante (conventionnel; conteneurisé)
- vide (oui/non)
- plein (oui/non)
- num_plomb (string)
j'aimerais que si le conditionnement est "conteneurisé" et que l'utilisateur ne coche ni le champ "vide" ni le champ "plein", un message apparait pour lui dire de cocher l'une des cases (vide ou plein) et ce, lorqu'il passe au champ num_plomb.
exemple de message : "le conteneur est il vide ou plein ?"
j'espère avoir bien formulé ma requête mais si toutefois mon secoureur trouve que je peux faire plus simple je suis ouvert.
Merci de votre aide!
A voir également:
- Conditions simultanées sur code access
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
11 réponses
Tu mets dans la zone "Sur réception focus" de la zone Num_plomb un code comme ça:
If me!Conditionnement.Value="Conteneurisé" and me!Plein=False and me!Vide=False then msgbox "Le conteneur est-il vide ou plein?"
If me!Conditionnement.Value="Conteneurisé" and me!Plein=False and me!Vide=False then msgbox "Le conteneur est-il vide ou plein?"
Tu es un ange. ton code est simple et propre
je doutais du fait que l'on pouvait utiliser 2 fois le "and" moins encore sur reception focus
Anyway, cela me ferait plaisir d'avoir ton mail pour plus d'échange
je doutais du fait que l'on pouvait utiliser 2 fois le "and" moins encore sur reception focus
Anyway, cela me ferait plaisir d'avoir ton mail pour plus d'échange
Bonjour à nouveau LatelyGeek
j'ai encore des pépins, now avec des requetes
j'ai un table nommée "bordereau" comportant des champs :
- nom_chargeur
- date_bordereau
- import (oui/non)
- export (oui/non)
- poids_declare (numérique)
j'ai fait un regroupement sur chargeur et une somme sur poids_declare afin de déterminer d'une part le trafic import par chargeur et d'autre part le trafic global par chargeur. j'ai pris le soin de mettre le mois et l'année en critères car je fais un bilan mensuel.
j'aimerais maintenant avoir le trafic global (trafic import + trafic export) à partir de ces deux requetes toujours avec le critère " mois" et " année". j'avoue que j'ai des difficultés à le réussir et quand je le réussi il ya des doublons. Par exemple l'ordinateur me demande 2 fois l'année et le mois.
j'aimerais que tu me proposes quelque chose de simple ,si possible pas en sql.
je précise que le meme chargeur peut être aujourd'hui à l'import et demain à l'export
Merci d'avance
j'ai encore des pépins, now avec des requetes
j'ai un table nommée "bordereau" comportant des champs :
- nom_chargeur
- date_bordereau
- import (oui/non)
- export (oui/non)
- poids_declare (numérique)
j'ai fait un regroupement sur chargeur et une somme sur poids_declare afin de déterminer d'une part le trafic import par chargeur et d'autre part le trafic global par chargeur. j'ai pris le soin de mettre le mois et l'année en critères car je fais un bilan mensuel.
j'aimerais maintenant avoir le trafic global (trafic import + trafic export) à partir de ces deux requetes toujours avec le critère " mois" et " année". j'avoue que j'ai des difficultés à le réussir et quand je le réussi il ya des doublons. Par exemple l'ordinateur me demande 2 fois l'année et le mois.
j'aimerais que tu me proposes quelque chose de simple ,si possible pas en sql.
je précise que le meme chargeur peut être aujourd'hui à l'import et demain à l'export
Merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Si tu ne veux pas de SQL, passe par deux requêtes. Une première avec les critères sur le mois et l'année, et une pour faire la somme. Sinon Access en quelque sorte réexécute la requête au moment de faire la somme.
Tu gardes ta requête initiale sans faire la somme, et ta deuxième requête doit être basée sur la première, tu n'as donc pas besoin de remettre les critères, tu totalises juste les valeurs.
Tu gardes ta requête initiale sans faire la somme, et ta deuxième requête doit être basée sur la première, tu n'as donc pas besoin de remettre les critères, tu totalises juste les valeurs.
Oui ce que tu me proposes marche mais j'ai omis de préciser que je veux que ma requête affiche à la fois : le total import ; le total export; le total global par chargeur et selon les critères mois et année. En voici une esquisse:
nom_chargeur total import total export total gobal [Mois] [Année]
Au fait, j'aurais pu le faire facilement si plutot que de privilegier des cases à cocher, je faisais deux champs(quantité importé, quantité exporté) mais mon problème est que la base est très avancé avec de petits codes çà et là . A défaut de pouvoir m'aider en mode création, je prendrais le sql que tu me proposeras.
Merci pour ton aide
nom_chargeur total import total export total gobal [Mois] [Année]
Au fait, j'aurais pu le faire facilement si plutot que de privilegier des cases à cocher, je faisais deux champs(quantité importé, quantité exporté) mais mon problème est que la base est très avancé avec de petits codes çà et là . A défaut de pouvoir m'aider en mode création, je prendrais le sql que tu me proposeras.
Merci pour ton aide
Toujours pas besoin de SQL, ce que je t'ai donné jusqu'ici marcherait.
Normalement, tu devrais obtenir dans la première requête:
NomChargeur - Import - Export - Mois - Année (Tu utilises les fonctions Mois et Année pour extraire la stae, et tu mets un critère dessus)
Et dans la deuxième, tu mets:
NomChargeur - Import - Export - Import+Export - Mois - Année, tu mets un regroupement sur le chargeur, le mois et l'année et tu fais la somme des autres champs.
Normalement, tu devrais obtenir dans la première requête:
NomChargeur - Import - Export - Mois - Année (Tu utilises les fonctions Mois et Année pour extraire la stae, et tu mets un critère dessus)
Et dans la deuxième, tu mets:
NomChargeur - Import - Export - Import+Export - Mois - Année, tu mets un regroupement sur le chargeur, le mois et l'année et tu fais la somme des autres champs.
Bonjour l'ami
je pense que "you got me wrong". Ce n'est pas qu'il ait deux champs pour le poids_declare non ! pas du tout.
j'ai un seul champ poids_declare. lorsqu'arrive le bordereau je mets le nom du chargeur, la date, je coche soit import ou export et je mets le poids. donc si je coche "import"c'est dire que la quantité inscrite dans "poids_declare" est un quantité importée par le chargeur. si je coche export c'est dire que la quantité inscrite dans "poids_declare" est un quantité exportée.
Maintenant, il arrive que dans le mois un même chargeur fasse des importations à des dates précises du mois et des exportations à d'autres dates indiquées du mois.
je voudrais faire un bilan mensuel:
Pour un chargeur prit dans le mois, je voudrais connaitre la quantité qu'il a importé, la quantité qu'il a exportée, et enfin la quantité totale.
je pense bien que ce qui t'échappe c'est que j'ai des cases à cocher qui déterminent la quantité.
Mon idée à moi c'est de faire :
- first, une requete: nom_chargeur - import (=oui) - IMPORT:poids_declare *je détermine la quantité importée ***
- second, une requete: nom_chargeur - export (=oui) - EXPORT:poids_declare ***je détermine qtité exportée**
- thrid, une requete avec les deux précédentes:
nom_chargeur (table ou requete) - IMPORT - EXPORT - IMPORT + EXPORT- MOIS- ANNEE et je fais un regroupement.
j'avoue que j'y réfléchis encore....tu as, je pense tous les détails now. Help me please.
je pense que "you got me wrong". Ce n'est pas qu'il ait deux champs pour le poids_declare non ! pas du tout.
j'ai un seul champ poids_declare. lorsqu'arrive le bordereau je mets le nom du chargeur, la date, je coche soit import ou export et je mets le poids. donc si je coche "import"c'est dire que la quantité inscrite dans "poids_declare" est un quantité importée par le chargeur. si je coche export c'est dire que la quantité inscrite dans "poids_declare" est un quantité exportée.
Maintenant, il arrive que dans le mois un même chargeur fasse des importations à des dates précises du mois et des exportations à d'autres dates indiquées du mois.
je voudrais faire un bilan mensuel:
Pour un chargeur prit dans le mois, je voudrais connaitre la quantité qu'il a importé, la quantité qu'il a exportée, et enfin la quantité totale.
je pense bien que ce qui t'échappe c'est que j'ai des cases à cocher qui déterminent la quantité.
Mon idée à moi c'est de faire :
- first, une requete: nom_chargeur - import (=oui) - IMPORT:poids_declare *je détermine la quantité importée ***
- second, une requete: nom_chargeur - export (=oui) - EXPORT:poids_declare ***je détermine qtité exportée**
- thrid, une requete avec les deux précédentes:
nom_chargeur (table ou requete) - IMPORT - EXPORT - IMPORT + EXPORT- MOIS- ANNEE et je fais un regroupement.
j'avoue que j'y réfléchis encore....tu as, je pense tous les détails now. Help me please.
Tu peux faire une seule requête à la place des deux premières:
Import:VraiFaux(Import=Oui;PoidsDéclaré;0)
Export:VraiFaux(Export=Oui;PoidsDéclaré;0)
Les deux dans la même requête.
Import:VraiFaux(Import=Oui;PoidsDéclaré;0)
Export:VraiFaux(Export=Oui;PoidsDéclaré;0)
Les deux dans la même requête.
Bonsoir latelyGeek
juste une petite curiosité. j'ai crée une liste déroulante qui contient une liste de valeur. dans les propriétés ,j'ai déjà fait des spécifications. (se limiter à la liste =non et auto étendre=oui).
j'aimerais savoir s'il ya une astuce qui permet d'ajouter automatiquement mes nouvelles valeurs dans ma liste déroulante.je veux dire les faire apparaitre dans l'ascenceur.
Si oui, montre moi l'astuce l'ami.
juste une petite curiosité. j'ai crée une liste déroulante qui contient une liste de valeur. dans les propriétés ,j'ai déjà fait des spécifications. (se limiter à la liste =non et auto étendre=oui).
j'aimerais savoir s'il ya une astuce qui permet d'ajouter automatiquement mes nouvelles valeurs dans ma liste déroulante.je veux dire les faire apparaitre dans l'ascenceur.
Si oui, montre moi l'astuce l'ami.
Si cette liste alimente un champ de ta table, tu peux en fait alimenter la liste à l'aide d'une requête basée sur la table, c'est ce que je fais généralement.
Par exemple si je veux rentrer des clients dans une base et pouvoir utiliser les noms des villes de clients déjà existants, je base la liste déroulante du champ Ville de la table Clients sur une requête et non pas une liste de valeurs.
Cette requête ira lire le champ Ville de la table elle-même, en faisant un regroupement pour ne pas retrouver 20 fois le même nom de ville.
Tu me suis?
Par exemple si je veux rentrer des clients dans une base et pouvoir utiliser les noms des villes de clients déjà existants, je base la liste déroulante du champ Ville de la table Clients sur une requête et non pas une liste de valeurs.
Cette requête ira lire le champ Ville de la table elle-même, en faisant un regroupement pour ne pas retrouver 20 fois le même nom de ville.
Tu me suis?
Bonjour LatelyGeek
je te suis, c'est cool et ça marche.
un autre question:
Comme je te l'avais dit dans ma base, j'ai deux champs à cocher (import, export)
j'ai écrit un code sur l'évènement after_update de sorte qu'on ne puisse cocher les deux cases à la fois.
code import: if import.value =true then export.locked=true else export.locked=false end if
code export: if export.value=true then import.locked=true...
j'ai pas vérrouillé au préalable les champs "import" et "export" du fait des possibilités de modifications.
le code marche sans problème lorsque je fais un nouveau enregistrement. mais lorsque je consulte les enregistrements précédents, je constate qu'il est possible de cocher les deux cases et cela me pertube énormement.
est ce l'emplacement du code qui est problématique ou as tu une meilleure solution?
ailleurs j'ai fait un code ce meme type (ie after_update) :
if conditionnement ="conteneur" then type_iso.locked=true
je constate que là encore pour faire des modifications sur les enregistrements passés. il me faut toujours venir mettre à jour le champ conditionnement avant de modifier le type_iso.
Merci de m'aider à résoudre mon problème.
je te suis, c'est cool et ça marche.
un autre question:
Comme je te l'avais dit dans ma base, j'ai deux champs à cocher (import, export)
j'ai écrit un code sur l'évènement after_update de sorte qu'on ne puisse cocher les deux cases à la fois.
code import: if import.value =true then export.locked=true else export.locked=false end if
code export: if export.value=true then import.locked=true...
j'ai pas vérrouillé au préalable les champs "import" et "export" du fait des possibilités de modifications.
le code marche sans problème lorsque je fais un nouveau enregistrement. mais lorsque je consulte les enregistrements précédents, je constate qu'il est possible de cocher les deux cases et cela me pertube énormement.
est ce l'emplacement du code qui est problématique ou as tu une meilleure solution?
ailleurs j'ai fait un code ce meme type (ie after_update) :
if conditionnement ="conteneur" then type_iso.locked=true
je constate que là encore pour faire des modifications sur les enregistrements passés. il me faut toujours venir mettre à jour le champ conditionnement avant de modifier le type_iso.
Merci de m'aider à résoudre mon problème.
Ca ne suffirait pas de faire:
code import: if import.value =true then export.value=false et vice versa?
(Tu peux tout mettre sur la même ligne sans end if puisqu'il n'y a pas de else)
Ca marcherait pour les anciens comme pour les nouveaux.
code import: if import.value =true then export.value=false et vice versa?
(Tu peux tout mettre sur la même ligne sans end if puisqu'il n'y a pas de else)
Ca marcherait pour les anciens comme pour les nouveaux.
Bonne et heureuse année à toi LatelyGeek, merci pour des nombreuses aides de 2008
Encore une aide en 2009, si tu me le permets :
j'ai mon champ "conditionnement" en liste déroulante qui contient: (conteneurisé;conventionnel)
selon le conditionnement j'ai des champs qui doivent se verrouillés pour éviter les saisies
j'ai écrit un code after_update :
if conditionnement = "conteneurisé" then
num_conteneur.locked=false
num_plomb.locked =false
else
num_conteneur.locked=true
num_plomb.locked =true
end if
le code marche lorsque je fais un nouveau enregistrement mais lors d'une modification il me faut toujours dérouler et sélectionner "conteneurisé" avant de changer les données et cela quand bien même le champ conditionnement contiendrait le texte "conteneurisé".la réaction de l'ordi est normal car les champs "num_conteneur" et "num_plomb" sont vérrouillés à l'avance.
moi je voudrais pouvoir modifier directement mes données une fois que le champ contient le libellé "conteneurisé"
j'aimerais savoir si c'est le code qui est mal écrit. si oui propose moi une solution.
Encore une aide en 2009, si tu me le permets :
j'ai mon champ "conditionnement" en liste déroulante qui contient: (conteneurisé;conventionnel)
selon le conditionnement j'ai des champs qui doivent se verrouillés pour éviter les saisies
j'ai écrit un code after_update :
if conditionnement = "conteneurisé" then
num_conteneur.locked=false
num_plomb.locked =false
else
num_conteneur.locked=true
num_plomb.locked =true
end if
le code marche lorsque je fais un nouveau enregistrement mais lors d'une modification il me faut toujours dérouler et sélectionner "conteneurisé" avant de changer les données et cela quand bien même le champ conditionnement contiendrait le texte "conteneurisé".la réaction de l'ordi est normal car les champs "num_conteneur" et "num_plomb" sont vérrouillés à l'avance.
moi je voudrais pouvoir modifier directement mes données une fois que le champ contient le libellé "conteneurisé"
j'aimerais savoir si c'est le code qui est mal écrit. si oui propose moi une solution.
Bonsoir,
Ne serait-il pas plus simple de faire comme proposé ici :http://www.commentcamarche.net/forum/affich 10213381 aide pour evenements access?#1
Au passage, Bonne Année, LatelyGeek
Ne serait-il pas plus simple de faire comme proposé ici :http://www.commentcamarche.net/forum/affich 10213381 aide pour evenements access?#1
Au passage, Bonne Année, LatelyGeek