Conversion en numérique du contenu d’une "Zone de liste dérou

Le
Merlevert
Je dois disposer d'une valeur numérique à partir du contenu de cette zone de
liste déroulante nommée "TauxJour1" de manière à ce que cela ne demande pas
une autre opération de saisie éliminant ainsi une source d'erreur pour la
facturation. Dans cette liste "JourComplet" doit avoir la valeur "1" Matin la
valeur 0.5 et AprèsMidi la valeur 0.5
J'ai créé un module d'essai qui fonctionne très bien.
Function calix()
Dim Valeur1 As Single
TauxJour1 = InputBox("Entrez une valeur")
If TauxJour1 = "JourComplet" Then Valeur1 = 1
If TauxJour1 = "Matin" Then Valeur1 = 0.5
If TauxJour1 = "AprèsMidi" Then Valeur1 = 0.5
MsgBox Valeur1
End Function
Mais les difficultés surgissent lors de la mise en place dans la base de
donnée avec l'exemple ci-dessous. (écriture libre)
Dim bd As Database
Dim tc as recordset
Dim fc as Form
Dim cn as control
Dim nc as control
Dim valeur1 as Single
Public Function calix()
Set bd = current DB()
Set tc = bd.OpenRecordset ("Contacts")
Set fc = Form!Inscriptions
Set cn = fc!TauxJour1
Set nc = fc!Valeur1
If cn = "JourComplet" Then nc =1
If cn = "Matin" Then nc =0.5
If cn= "AprèsMidi" Then nc=0.5
End Function
En essayant la compilation avec F5 le module s'arrête en disant qu'il ne
trouve pas le formulaire Inscriptions. J'ai essayé de mettre place la
fonction Êlix() "sur sortie" de la zone de liste "TauxJour1" mais sans
succès…
Merci aux personnes qui essayeront et qui pourront m'aider.

--
Avec les meilleurs ramages de merlevert!
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles MOUGNOZ
Le #6266301
Bonjour, Merle Vert (un cousin du pic-vert ? ;-)

Si ta liste déroulante est basée sur une Liste valeurs (propriété
Données/Origine source), saisis directement les valeurs suivies de leur
libellé dans la source (propriété Données/Contenu):
1;"JourComplet";0.5;"Matin";0.5;"AprèsMidi"
Ensuite, il faut indiquer que la liste a deux colonnes (saisir 2 dans la
propriété Format/Nbre colonnes) et que la première est masquée (saisir
0cm;5cm dans la propriété Format/Largeurs colonnes).
Si tu veux à tout prix utiliser ton code, sache que le formulaire
Inscriptions doit être ouvert pour que l'instruction Form!Inscriptions
fonctionne.
Enfin, plutôt que d'utiliser des If successifs, je te conseille de regarder
du côté de l'instruction "Select Case" (fais une recherche dans l'aide
d'Access).
--
Bonne continuation
-------------------------------------------------------------------------------------------
http://www.mpfa.info : c'est bonheur pour ton ordinateur !
-------------------------------------------------------------------------------------------
Je dois disposer d'une valeur numérique à partir du contenu de cette zone
de
liste déroulante nommée "TauxJour1" de manière à ce que cela ne demande
pas
une autre opération de saisie éliminant ainsi une source d'erreur pour la
facturation. Dans cette liste "JourComplet" doit avoir la valeur "1" Matin
la
valeur 0.5 et AprèsMidi la valeur 0.5
J'ai créé un module d'essai qui fonctionne très bien.
Function calix()
Dim Valeur1 As Single
TauxJour1 = InputBox("Entrez une valeur")
If TauxJour1 = "JourComplet" Then Valeur1 = 1
If TauxJour1 = "Matin" Then Valeur1 = 0.5
If TauxJour1 = "AprèsMidi" Then Valeur1 = 0.5
MsgBox Valeur1
End Function
Mais les difficultés surgissent lors de la mise en place dans la base de
donnée avec l'exemple ci-dessous. (écriture libre)
Dim bd As Database
Dim tc as recordset
Dim fc as Form
Dim cn as control
Dim nc as control
Dim valeur1 as Single
Public Function calix()
Set bd = current DB()
Set tc = bd.OpenRecordset ("Contacts")
Set fc = Form!Inscriptions
Set cn = fc!TauxJour1
Set nc = fc!Valeur1
If cn = "JourComplet" Then nc =1
If cn = "Matin" Then nc =0.5
If cn= "AprèsMidi" Then nc=0.5
End Function
En essayant la compilation avec F5 le module s'arrête en disant qu'il ne
trouve pas le formulaire Inscriptions. J'ai essayé de mettre place la
fonction Êlix() "sur sortie" de la zone de liste "TauxJour1" mais sans
succès.
Merci aux personnes qui essayeront et qui pourront m'aider.

--
Avec les meilleurs ramages de merlevert!


Merlevert
Le #6266181
Merci Gilles, je vais essayer. Pierre alias merlevert, en fait un vague
cousin du Pic Vert :-))
--
Avec les meilleurs ramages de merlevert!



Bonjour, Merle Vert (un cousin du pic-vert ? ;-)

Si ta liste déroulante est basée sur une Liste valeurs (propriété
Données/Origine source), saisis directement les valeurs suivies de leur
libellé dans la source (propriété Données/Contenu):
1;"JourComplet";0.5;"Matin";0.5;"AprèsMidi"
Ensuite, il faut indiquer que la liste a deux colonnes (saisir 2 dans la
propriété Format/Nbre colonnes) et que la première est masquée (saisir
0cm;5cm dans la propriété Format/Largeurs colonnes).
Si tu veux à tout prix utiliser ton code, sache que le formulaire
Inscriptions doit être ouvert pour que l'instruction Form!Inscriptions
fonctionne.
Enfin, plutôt que d'utiliser des If successifs, je te conseille de regarder
du côté de l'instruction "Select Case" (fais une recherche dans l'aide
d'Access).
--
Bonne continuation
-------------------------------------------------------------------------------------------
http://www.mpfa.info : c'est bonheur pour ton ordinateur !
-------------------------------------------------------------------------------------------
Je dois disposer d'une valeur numérique à partir du contenu de cette zone
de
liste déroulante nommée "TauxJour1" de manière à ce que cela ne demande
pas
une autre opération de saisie éliminant ainsi une source d'erreur pour la
facturation. Dans cette liste "JourComplet" doit avoir la valeur "1" Matin
la
valeur 0.5 et AprèsMidi la valeur 0.5
J'ai créé un module d'essai qui fonctionne très bien.
Function calix()
Dim Valeur1 As Single
TauxJour1 = InputBox("Entrez une valeur")
If TauxJour1 = "JourComplet" Then Valeur1 = 1
If TauxJour1 = "Matin" Then Valeur1 = 0.5
If TauxJour1 = "AprèsMidi" Then Valeur1 = 0.5
MsgBox Valeur1
End Function
Mais les difficultés surgissent lors de la mise en place dans la base de
donnée avec l'exemple ci-dessous. (écriture libre)
Dim bd As Database
Dim tc as recordset
Dim fc as Form
Dim cn as control
Dim nc as control
Dim valeur1 as Single
Public Function calix()
Set bd = current DB()
Set tc = bd.OpenRecordset ("Contacts")
Set fc = Form!Inscriptions
Set cn = fc!TauxJour1
Set nc = fc!Valeur1
If cn = "JourComplet" Then nc =1
If cn = "Matin" Then nc =0.5
If cn= "AprèsMidi" Then nc=0.5
End Function
En essayant la compilation avec F5 le module s'arrête en disant qu'il ne
trouve pas le formulaire Inscriptions. J'ai essayé de mettre place la
fonction Êlix() "sur sortie" de la zone de liste "TauxJour1" mais sans
succès.
Merci aux personnes qui essayeront et qui pourront m'aider.

--
Avec les meilleurs ramages de merlevert!







Merlevert
Le #6266151
J'ai essayé ta première solution et ça fonctionne à merveille. Merci Gilles
:-)))
--
Avec les meilleurs ramages de merlevert! alis Pierre



Merci Gilles, je vais essayer. Pierre alias merlevert, en fait un vague
cousin du Pic Vert :-))
--
Avec les meilleurs ramages de merlevert!



Bonjour, Merle Vert (un cousin du pic-vert ? ;-)

Si ta liste déroulante est basée sur une Liste valeurs (propriété
Données/Origine source), saisis directement les valeurs suivies de leur
libellé dans la source (propriété Données/Contenu):
1;"JourComplet";0.5;"Matin";0.5;"AprèsMidi"
Ensuite, il faut indiquer que la liste a deux colonnes (saisir 2 dans la
propriété Format/Nbre colonnes) et que la première est masquée (saisir
0cm;5cm dans la propriété Format/Largeurs colonnes).
Si tu veux à tout prix utiliser ton code, sache que le formulaire
Inscriptions doit être ouvert pour que l'instruction Form!Inscriptions
fonctionne.
Enfin, plutôt que d'utiliser des If successifs, je te conseille de regarder
du côté de l'instruction "Select Case" (fais une recherche dans l'aide
d'Access).
--
Bonne continuation
-------------------------------------------------------------------------------------------
http://www.mpfa.info : c'est bonheur pour ton ordinateur !
-------------------------------------------------------------------------------------------
Je dois disposer d'une valeur numérique à partir du contenu de cette zone
de
liste déroulante nommée "TauxJour1" de manière à ce que cela ne demande
pas
une autre opération de saisie éliminant ainsi une source d'erreur pour la
facturation. Dans cette liste "JourComplet" doit avoir la valeur "1" Matin
la
valeur 0.5 et AprèsMidi la valeur 0.5
J'ai créé un module d'essai qui fonctionne très bien.
Function calix()
Dim Valeur1 As Single
TauxJour1 = InputBox("Entrez une valeur")
If TauxJour1 = "JourComplet" Then Valeur1 = 1
If TauxJour1 = "Matin" Then Valeur1 = 0.5
If TauxJour1 = "AprèsMidi" Then Valeur1 = 0.5
MsgBox Valeur1
End Function
Mais les difficultés surgissent lors de la mise en place dans la base de
donnée avec l'exemple ci-dessous. (écriture libre)
Dim bd As Database
Dim tc as recordset
Dim fc as Form
Dim cn as control
Dim nc as control
Dim valeur1 as Single
Public Function calix()
Set bd = current DB()
Set tc = bd.OpenRecordset ("Contacts")
Set fc = Form!Inscriptions
Set cn = fc!TauxJour1
Set nc = fc!Valeur1
If cn = "JourComplet" Then nc =1
If cn = "Matin" Then nc =0.5
If cn= "AprèsMidi" Then nc=0.5
End Function
En essayant la compilation avec F5 le module s'arrête en disant qu'il ne
trouve pas le formulaire Inscriptions. J'ai essayé de mettre place la
fonction Êlix() "sur sortie" de la zone de liste "TauxJour1" mais sans
succès.
Merci aux personnes qui essayeront et qui pourront m'aider.

--
Avec les meilleurs ramages de merlevert!









Publicité
Poster une réponse
Anonyme