Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Eric
Bonjour Guy,
Je ne réponds pas directement au DLookUp() Je regardais ton autre post 'Allouer une valeur à une lettre ALPHA ..." et je me posais la question suivante : Est-il nécessaire de retourner la valeur de chaque lettre ou la somme des valeurs des lettres composant la chaîne serait suffisante ? Car si la somme suffit à ton problème, je peux te donner une fonction.
Guy a écrit :
Bonjour ,
Je n'arrive pas a comprendre la fonction Dlookup
Dans une requete j'ai des champs :
N01 n02 N03 etc... N 25 qui contiennent une seule lettre comme :
G U Y vide vide etc....
de plus je possede une table avec qui me rensigne sur la valeur numérique de chaque lettre exemple:
Champs Alpha et Valeur
A= 1 B=2 C=4 D=3 E=3 F% ETC
Comment dans une requete rajouter un champ du genre ValN01: dlookup ....pour récuper la bonne valeur.
J'ai essayer divers choses je ne recupere que la premiere valeur de ma table
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Guy,
Je ne réponds pas directement au DLookUp()
Je regardais ton autre post 'Allouer une valeur à une lettre ALPHA ..."
et je me posais la question suivante : Est-il nécessaire de retourner la
valeur de chaque lettre ou la somme des valeurs des lettres composant la
chaîne serait suffisante ? Car si la somme suffit à ton problème, je
peux te donner une fonction.
Guy a écrit :
Bonjour ,
Je n'arrive pas a comprendre la fonction Dlookup
Dans une requete j'ai des champs :
N01 n02 N03 etc... N 25 qui contiennent une seule lettre comme :
G U Y vide vide etc....
de plus je possede une table avec qui me rensigne sur la valeur numérique
de chaque lettre exemple:
Champs Alpha et Valeur
A= 1 B=2 C=4 D=3 E=3 F% ETC
Comment dans une requete rajouter un champ du genre ValN01: dlookup ....pour
récuper la bonne valeur.
J'ai essayer divers choses je ne recupere que la premiere valeur de ma table
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Je ne réponds pas directement au DLookUp() Je regardais ton autre post 'Allouer une valeur à une lettre ALPHA ..." et je me posais la question suivante : Est-il nécessaire de retourner la valeur de chaque lettre ou la somme des valeurs des lettres composant la chaîne serait suffisante ? Car si la somme suffit à ton problème, je peux te donner une fonction.
Guy a écrit :
Bonjour ,
Je n'arrive pas a comprendre la fonction Dlookup
Dans une requete j'ai des champs :
N01 n02 N03 etc... N 25 qui contiennent une seule lettre comme :
G U Y vide vide etc....
de plus je possede une table avec qui me rensigne sur la valeur numérique de chaque lettre exemple:
Champs Alpha et Valeur
A= 1 B=2 C=4 D=3 E=3 F% ETC
Comment dans une requete rajouter un champ du genre ValN01: dlookup ....pour récuper la bonne valeur.
J'ai essayer divers choses je ne recupere que la premiere valeur de ma table
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Guy
merci, Eric
je doit simplement additionner la somme des Valeurs exemple :
G U Y = 10 9 50 total 69 ensuite 69 devient 6+9
B R U S S O N = 2 11 9 20 20 8 26 total 96 puis 96 devient 9 +6
Afin de retrouver les arcanes du tarots
je suis ouvert a toutes les propositions -- Amicalement et merci
"Eric" a écrit :
Bonjour Guy,
Je ne réponds pas directement au DLookUp() Je regardais ton autre post 'Allouer une valeur à une lettre ALPHA ..." et je me posais la question suivante : Est-il nécessaire de retourner la valeur de chaque lettre ou la somme des valeurs des lettres composant la chaîne serait suffisante ? Car si la somme suffit à ton problème, je peux te donner une fonction.
Guy a écrit : > Bonjour , > > Je n'arrive pas a comprendre la fonction Dlookup > > Dans une requete j'ai des champs : > > N01 n02 N03 etc... N 25 qui contiennent une seule lettre comme : > > G U Y vide vide etc.... > > de plus je possede une table avec qui me rensigne sur la valeur numérique > de chaque lettre exemple: > > Champs Alpha et Valeur > > A= 1 B=2 C=4 D=3 E=3 F% ETC > > Comment dans une requete rajouter un champ du genre ValN01: dlookup ....pour > récuper la bonne valeur. > > J'ai essayer divers choses je ne recupere que la premiere valeur de ma table > >
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
merci, Eric
je doit simplement additionner la somme des Valeurs exemple :
G U Y = 10 9 50 total 69 ensuite 69 devient 6+9
B R U S S O N = 2 11 9 20 20 8 26 total 96 puis 96 devient 9 +6
Afin de retrouver les arcanes du tarots
je suis ouvert a toutes les propositions
--
Amicalement et merci
"Eric" a écrit :
Bonjour Guy,
Je ne réponds pas directement au DLookUp()
Je regardais ton autre post 'Allouer une valeur à une lettre ALPHA ..."
et je me posais la question suivante : Est-il nécessaire de retourner la
valeur de chaque lettre ou la somme des valeurs des lettres composant la
chaîne serait suffisante ? Car si la somme suffit à ton problème, je
peux te donner une fonction.
Guy a écrit :
> Bonjour ,
>
> Je n'arrive pas a comprendre la fonction Dlookup
>
> Dans une requete j'ai des champs :
>
> N01 n02 N03 etc... N 25 qui contiennent une seule lettre comme :
>
> G U Y vide vide etc....
>
> de plus je possede une table avec qui me rensigne sur la valeur numérique
> de chaque lettre exemple:
>
> Champs Alpha et Valeur
>
> A= 1 B=2 C=4 D=3 E=3 F% ETC
>
> Comment dans une requete rajouter un champ du genre ValN01: dlookup ....pour
> récuper la bonne valeur.
>
> J'ai essayer divers choses je ne recupere que la premiere valeur de ma table
>
>
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
je doit simplement additionner la somme des Valeurs exemple :
G U Y = 10 9 50 total 69 ensuite 69 devient 6+9
B R U S S O N = 2 11 9 20 20 8 26 total 96 puis 96 devient 9 +6
Afin de retrouver les arcanes du tarots
je suis ouvert a toutes les propositions -- Amicalement et merci
"Eric" a écrit :
Bonjour Guy,
Je ne réponds pas directement au DLookUp() Je regardais ton autre post 'Allouer une valeur à une lettre ALPHA ..." et je me posais la question suivante : Est-il nécessaire de retourner la valeur de chaque lettre ou la somme des valeurs des lettres composant la chaîne serait suffisante ? Car si la somme suffit à ton problème, je peux te donner une fonction.
Guy a écrit : > Bonjour , > > Je n'arrive pas a comprendre la fonction Dlookup > > Dans une requete j'ai des champs : > > N01 n02 N03 etc... N 25 qui contiennent une seule lettre comme : > > G U Y vide vide etc.... > > de plus je possede une table avec qui me rensigne sur la valeur numérique > de chaque lettre exemple: > > Champs Alpha et Valeur > > A= 1 B=2 C=4 D=3 E=3 F% ETC > > Comment dans une requete rajouter un champ du genre ValN01: dlookup ....pour > récuper la bonne valeur. > > J'ai essayer divers choses je ne recupere que la premiere valeur de ma table > >
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Eric
re,
Il faut que tu aies expurgé toutes les lettres accentuées, les signes diacritiques ... des champs à traiter.
Copies la fonction ci-dessous dans un module de portée globale.
Function fnValMot(UneChaine) As Integer 'Charger la référence Microsoft DAO 3.x Object Library 'au Menu Outils | Références If IsNull(UneChaine) Then Exit Function Dim tLettre(), i As Integer, j As Integer Dim longueur As Integer, car As String Dim rst As DAO.Recordset, cpt as integer longueur = Len(UneChaine) Set rst = CurrentDb.OpenRecordset("LaTableLettreValeur") tLettre = rst.GetRows(rst.RecordCount) Set rst = Nothing For i = 1 To longueur car = Mid(UneChaine, i, 1) For j = 0 To UBound(tLettre, 2) If car = tLettre(0, j) Then cpt = cpt + tLettre(1, j): Exit For End If Next j Next i fnValMot = cpt End Function
Tu peux ensuite utiliser cette fonction dans une requête fnValMot([LeNom]) te retournera le total des valeurs des lettres du champ LeNom Dans le code, tu doit adapter sur la ligne Set rst = CurrentDb.OpenRecordset("LaTableLettreValeur") le vrai nom de ta table qui contient les lettres et les valeurs de ces lettres.
Guy a écrit :
merci, Eric
je doit simplement additionner la somme des Valeurs exemple :
G U Y = 10 9 50 total 69 ensuite 69 devient 6+9
B R U S S O N = 2 11 9 20 20 8 26 total 96 puis 96 devient 9 +6
Afin de retrouver les arcanes du tarots
je suis ouvert a toutes les propositions
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
re,
Il faut que tu aies expurgé toutes les lettres accentuées, les signes
diacritiques ... des champs à traiter.
Copies la fonction ci-dessous dans un module de portée globale.
Function fnValMot(UneChaine) As Integer
'Charger la référence Microsoft DAO 3.x Object Library
'au Menu Outils | Références
If IsNull(UneChaine) Then Exit Function
Dim tLettre(), i As Integer, j As Integer
Dim longueur As Integer, car As String
Dim rst As DAO.Recordset, cpt as integer
longueur = Len(UneChaine)
Set rst = CurrentDb.OpenRecordset("LaTableLettreValeur")
tLettre = rst.GetRows(rst.RecordCount)
Set rst = Nothing
For i = 1 To longueur
car = Mid(UneChaine, i, 1)
For j = 0 To UBound(tLettre, 2)
If car = tLettre(0, j) Then
cpt = cpt + tLettre(1, j): Exit For
End If
Next j
Next i
fnValMot = cpt
End Function
Tu peux ensuite utiliser cette fonction dans une requête
fnValMot([LeNom]) te retournera le total des valeurs des lettres du
champ LeNom
Dans le code, tu doit adapter sur la ligne
Set rst = CurrentDb.OpenRecordset("LaTableLettreValeur")
le vrai nom de ta table qui contient les lettres et les valeurs de ces
lettres.
Guy a écrit :
merci, Eric
je doit simplement additionner la somme des Valeurs exemple :
G U Y = 10 9 50 total 69 ensuite 69 devient 6+9
B R U S S O N = 2 11 9 20 20 8 26 total 96 puis 96 devient 9 +6
Afin de retrouver les arcanes du tarots
je suis ouvert a toutes les propositions
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Il faut que tu aies expurgé toutes les lettres accentuées, les signes diacritiques ... des champs à traiter.
Copies la fonction ci-dessous dans un module de portée globale.
Function fnValMot(UneChaine) As Integer 'Charger la référence Microsoft DAO 3.x Object Library 'au Menu Outils | Références If IsNull(UneChaine) Then Exit Function Dim tLettre(), i As Integer, j As Integer Dim longueur As Integer, car As String Dim rst As DAO.Recordset, cpt as integer longueur = Len(UneChaine) Set rst = CurrentDb.OpenRecordset("LaTableLettreValeur") tLettre = rst.GetRows(rst.RecordCount) Set rst = Nothing For i = 1 To longueur car = Mid(UneChaine, i, 1) For j = 0 To UBound(tLettre, 2) If car = tLettre(0, j) Then cpt = cpt + tLettre(1, j): Exit For End If Next j Next i fnValMot = cpt End Function
Tu peux ensuite utiliser cette fonction dans une requête fnValMot([LeNom]) te retournera le total des valeurs des lettres du champ LeNom Dans le code, tu doit adapter sur la ligne Set rst = CurrentDb.OpenRecordset("LaTableLettreValeur") le vrai nom de ta table qui contient les lettres et les valeurs de ces lettres.
Guy a écrit :
merci, Eric
je doit simplement additionner la somme des Valeurs exemple :
G U Y = 10 9 50 total 69 ensuite 69 devient 6+9
B R U S S O N = 2 11 9 20 20 8 26 total 96 puis 96 devient 9 +6
Afin de retrouver les arcanes du tarots
je suis ouvert a toutes les propositions
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Eric
.../...
Eric a écrit :
re,
Il faut que tu aies expurgé toutes les lettres accentuées, les signes diacritiques ... des champs à traiter.
Pas nécessaire si les Majuscules accentuées, ... existent dans la table des lettres & valeurs
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
.../...
Eric a écrit :
re,
Il faut que tu aies expurgé toutes les lettres accentuées, les signes
diacritiques ... des champs à traiter.
Pas nécessaire si les Majuscules accentuées, ... existent dans la table
des lettres & valeurs
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Il faut que tu aies expurgé toutes les lettres accentuées, les signes diacritiques ... des champs à traiter.
Pas nécessaire si les Majuscules accentuées, ... existent dans la table des lettres & valeurs
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Guy
Merci Eric je vais pouvoir travailler
Je fait la saisie moi même et en tarologie européenne il ni a pas d'accents -- Amicalement et merci
"Eric" a écrit :
..../...
Eric a écrit : > re, > > Il faut que tu aies expurgé toutes les lettres accentuées, les signes > diacritiques ... des champs à traiter. > Pas nécessaire si les Majuscules accentuées, ... existent dans la table des lettres & valeurs
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Merci Eric je vais pouvoir travailler
Je fait la saisie moi même et en tarologie européenne il ni a pas d'accents
--
Amicalement et merci
"Eric" a écrit :
..../...
Eric a écrit :
> re,
>
> Il faut que tu aies expurgé toutes les lettres accentuées, les signes
> diacritiques ... des champs à traiter.
>
Pas nécessaire si les Majuscules accentuées, ... existent dans la table
des lettres & valeurs
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Je fait la saisie moi même et en tarologie européenne il ni a pas d'accents -- Amicalement et merci
"Eric" a écrit :
..../...
Eric a écrit : > re, > > Il faut que tu aies expurgé toutes les lettres accentuées, les signes > diacritiques ... des champs à traiter. > Pas nécessaire si les Majuscules accentuées, ... existent dans la table des lettres & valeurs
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Eric
.../...
et celle-ci pour faire la somme des chiffres de la valeur retournée par fnValMot(UneChaine)
Function fnTotalValMot(UneChaine) As Integer Dim nb As String, i As Integer nb = CStr(fnValMot(UneChaine)) For i = 1 To Len(nb) fnTotalValMot = fnTotalValMot + Val(Mid(nb, i, 1)) Next i End Function
Dans la requête tu mets directement : fnTotalValMot([LeNom])
car cette fonction fait appel à la précédente.
PS : Access ne faisant pas la différence Majuscule/Minuscule par défaut, tu n'es pas obligé de changer la casse tes chaînes.
Eric a écrit :
re,
Copies la fonction ci-dessous dans un module de portée globale.
Function fnValMot(UneChaine) As Integer 'Charger la référence Microsoft DAO 3.x Object Library 'au Menu Outils | Références If IsNull(UneChaine) Then Exit Function Dim tLettre(), i As Integer, j As Integer Dim longueur As Integer, car As String Dim rst As DAO.Recordset, cpt as integer longueur = Len(UneChaine) Set rst = CurrentDb.OpenRecordset("LaTableLettreValeur") tLettre = rst.GetRows(rst.RecordCount) Set rst = Nothing For i = 1 To longueur car = Mid(UneChaine, i, 1) For j = 0 To UBound(tLettre, 2) If car = tLettre(0, j) Then cpt = cpt + tLettre(1, j): Exit For End If Next j Next i fnValMot = cpt End Function
Tu peux ensuite utiliser cette fonction dans une requête fnValMot([LeNom]) te retournera le total des valeurs des lettres du champ LeNom Dans le code, tu doit adapter sur la ligne Set rst = CurrentDb.OpenRecordset("LaTableLettreValeur") le vrai nom de ta table qui contient les lettres et les valeurs de ces lettres.
Guy a écrit :
merci, Eric
je doit simplement additionner la somme des Valeurs exemple :
G U Y = 10 9 50 total 69 ensuite 69 devient 6+9
B R U S S O N = 2 11 9 20 20 8 26 total 96 puis 96 devient 9 +6 Afin de retrouver les arcanes du tarots je suis ouvert a toutes les propositions
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
.../...
et celle-ci pour faire la somme des chiffres de la valeur retournée par
fnValMot(UneChaine)
Function fnTotalValMot(UneChaine) As Integer
Dim nb As String, i As Integer
nb = CStr(fnValMot(UneChaine))
For i = 1 To Len(nb)
fnTotalValMot = fnTotalValMot + Val(Mid(nb, i, 1))
Next i
End Function
Dans la requête tu mets directement :
fnTotalValMot([LeNom])
car cette fonction fait appel à la précédente.
PS : Access ne faisant pas la différence Majuscule/Minuscule par défaut,
tu n'es pas obligé de changer la casse tes chaînes.
Eric a écrit :
re,
Copies la fonction ci-dessous dans un module de portée globale.
Function fnValMot(UneChaine) As Integer
'Charger la référence Microsoft DAO 3.x Object Library
'au Menu Outils | Références
If IsNull(UneChaine) Then Exit Function
Dim tLettre(), i As Integer, j As Integer
Dim longueur As Integer, car As String
Dim rst As DAO.Recordset, cpt as integer
longueur = Len(UneChaine)
Set rst = CurrentDb.OpenRecordset("LaTableLettreValeur")
tLettre = rst.GetRows(rst.RecordCount)
Set rst = Nothing
For i = 1 To longueur
car = Mid(UneChaine, i, 1)
For j = 0 To UBound(tLettre, 2)
If car = tLettre(0, j) Then
cpt = cpt + tLettre(1, j): Exit For
End If
Next j
Next i
fnValMot = cpt
End Function
Tu peux ensuite utiliser cette fonction dans une requête
fnValMot([LeNom]) te retournera le total des valeurs des lettres du
champ LeNom
Dans le code, tu doit adapter sur la ligne
Set rst = CurrentDb.OpenRecordset("LaTableLettreValeur")
le vrai nom de ta table qui contient les lettres et les valeurs de ces
lettres.
Guy a écrit :
merci, Eric
je doit simplement additionner la somme des Valeurs exemple :
G U Y = 10 9 50 total 69 ensuite 69 devient 6+9
B R U S S O N = 2 11 9 20 20 8 26 total 96 puis 96 devient 9 +6
Afin de retrouver les arcanes du tarots
je suis ouvert a toutes les propositions
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
et celle-ci pour faire la somme des chiffres de la valeur retournée par fnValMot(UneChaine)
Function fnTotalValMot(UneChaine) As Integer Dim nb As String, i As Integer nb = CStr(fnValMot(UneChaine)) For i = 1 To Len(nb) fnTotalValMot = fnTotalValMot + Val(Mid(nb, i, 1)) Next i End Function
Dans la requête tu mets directement : fnTotalValMot([LeNom])
car cette fonction fait appel à la précédente.
PS : Access ne faisant pas la différence Majuscule/Minuscule par défaut, tu n'es pas obligé de changer la casse tes chaînes.
Eric a écrit :
re,
Copies la fonction ci-dessous dans un module de portée globale.
Function fnValMot(UneChaine) As Integer 'Charger la référence Microsoft DAO 3.x Object Library 'au Menu Outils | Références If IsNull(UneChaine) Then Exit Function Dim tLettre(), i As Integer, j As Integer Dim longueur As Integer, car As String Dim rst As DAO.Recordset, cpt as integer longueur = Len(UneChaine) Set rst = CurrentDb.OpenRecordset("LaTableLettreValeur") tLettre = rst.GetRows(rst.RecordCount) Set rst = Nothing For i = 1 To longueur car = Mid(UneChaine, i, 1) For j = 0 To UBound(tLettre, 2) If car = tLettre(0, j) Then cpt = cpt + tLettre(1, j): Exit For End If Next j Next i fnValMot = cpt End Function
Tu peux ensuite utiliser cette fonction dans une requête fnValMot([LeNom]) te retournera le total des valeurs des lettres du champ LeNom Dans le code, tu doit adapter sur la ligne Set rst = CurrentDb.OpenRecordset("LaTableLettreValeur") le vrai nom de ta table qui contient les lettres et les valeurs de ces lettres.
Guy a écrit :
merci, Eric
je doit simplement additionner la somme des Valeurs exemple :
G U Y = 10 9 50 total 69 ensuite 69 devient 6+9
B R U S S O N = 2 11 9 20 20 8 26 total 96 puis 96 devient 9 +6 Afin de retrouver les arcanes du tarots je suis ouvert a toutes les propositions
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Castours
Bonjour J'ai utilisé DlooKup dans une procedure qui rechercher un N°client si ce client depassait une somme autorisée. Si oui j'ai un message d'avertisement comme quoi l'encours est dépassé et cela calcul la valeur du depassement. On peut plus effectuer d'autre achat. Maintenant dans une requete je ne sais pas. Guy
"Guy" <André> a écrit dans le message de news:
Bonjour ,
Je n'arrive pas a comprendre la fonction Dlookup
Dans une requete j'ai des champs :
N01 n02 N03 etc... N 25 qui contiennent une seule lettre comme :
G U Y vide vide etc....
de plus je possede une table avec qui me rensigne sur la valeur numérique de chaque lettre exemple:
Champs Alpha et Valeur
A= 1 B=2 C=4 D=3 E=3 F% ETC
Comment dans une requete rajouter un champ du genre ValN01: dlookup ....pour récuper la bonne valeur.
J'ai essayer divers choses je ne recupere que la premiere valeur de ma table
-- Amicalement et merci
Bonjour
J'ai utilisé DlooKup dans une procedure qui rechercher un N°client si ce
client depassait une somme autorisée.
Si oui j'ai un message d'avertisement comme quoi l'encours est dépassé et
cela calcul la valeur du depassement. On peut plus effectuer d'autre achat.
Maintenant dans une requete je ne sais pas.
Guy
"Guy" <André> a écrit dans le message de news:
09C629C9-370A-44C5-BB33-28C195707A58@microsoft.com...
Bonjour ,
Je n'arrive pas a comprendre la fonction Dlookup
Dans une requete j'ai des champs :
N01 n02 N03 etc... N 25 qui contiennent une seule lettre comme :
G U Y vide vide etc....
de plus je possede une table avec qui me rensigne sur la valeur numérique
de chaque lettre exemple:
Champs Alpha et Valeur
A= 1 B=2 C=4 D=3 E=3 F% ETC
Comment dans une requete rajouter un champ du genre ValN01: dlookup
....pour
récuper la bonne valeur.
J'ai essayer divers choses je ne recupere que la premiere valeur de ma
table
Bonjour J'ai utilisé DlooKup dans une procedure qui rechercher un N°client si ce client depassait une somme autorisée. Si oui j'ai un message d'avertisement comme quoi l'encours est dépassé et cela calcul la valeur du depassement. On peut plus effectuer d'autre achat. Maintenant dans une requete je ne sais pas. Guy
"Guy" <André> a écrit dans le message de news:
Bonjour ,
Je n'arrive pas a comprendre la fonction Dlookup
Dans une requete j'ai des champs :
N01 n02 N03 etc... N 25 qui contiennent une seule lettre comme :
G U Y vide vide etc....
de plus je possede une table avec qui me rensigne sur la valeur numérique de chaque lettre exemple:
Champs Alpha et Valeur
A= 1 B=2 C=4 D=3 E=3 F% ETC
Comment dans une requete rajouter un champ du genre ValN01: dlookup ....pour récuper la bonne valeur.
J'ai essayer divers choses je ne recupere que la premiere valeur de ma table
-- Amicalement et merci
Brusson Guy
Un grand Merci a toi Eric grâce à toi j'ai simplifier et cela fonctionne
guy
"Eric" a écrit :
..../...
et celle-ci pour faire la somme des chiffres de la valeur retournée par fnValMot(UneChaine)
Function fnTotalValMot(UneChaine) As Integer Dim nb As String, i As Integer nb = CStr(fnValMot(UneChaine)) For i = 1 To Len(nb) fnTotalValMot = fnTotalValMot + Val(Mid(nb, i, 1)) Next i End Function
Dans la requête tu mets directement : fnTotalValMot([LeNom])
car cette fonction fait appel à la précédente.
PS : Access ne faisant pas la différence Majuscule/Minuscule par défaut, tu n'es pas obligé de changer la casse tes chaînes.
Eric a écrit : > re, > > Copies la fonction ci-dessous dans un module de portée globale. > > Function fnValMot(UneChaine) As Integer > 'Charger la référence Microsoft DAO 3.x Object Library > 'au Menu Outils | Références > If IsNull(UneChaine) Then Exit Function > Dim tLettre(), i As Integer, j As Integer > Dim longueur As Integer, car As String > Dim rst As DAO.Recordset, cpt as integer > longueur = Len(UneChaine) > Set rst = CurrentDb.OpenRecordset("LaTableLettreValeur") > tLettre = rst.GetRows(rst.RecordCount) > Set rst = Nothing > For i = 1 To longueur > car = Mid(UneChaine, i, 1) > For j = 0 To UBound(tLettre, 2) > If car = tLettre(0, j) Then > cpt = cpt + tLettre(1, j): Exit For > End If > Next j > Next i > fnValMot = cpt > End Function > > Tu peux ensuite utiliser cette fonction dans une requête > fnValMot([LeNom]) te retournera le total des valeurs des lettres du > champ LeNom > Dans le code, tu doit adapter sur la ligne > Set rst = CurrentDb.OpenRecordset("LaTableLettreValeur") > le vrai nom de ta table qui contient les lettres et les valeurs de ces > lettres. > > > > > > Guy a écrit : >> merci, Eric >> >> je doit simplement additionner la somme des Valeurs exemple : >> >> G U Y = 10 9 50 total 69 ensuite 69 devient 6+9 >> >> B R U S S O N = 2 11 9 20 20 8 26 total 96 puis 96 devient 9 +6 >> Afin de retrouver les arcanes du tarots >> je suis ouvert a toutes les propositions >
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Un grand Merci a toi Eric grâce à toi j'ai simplifier et cela fonctionne
guy
"Eric" a écrit :
..../...
et celle-ci pour faire la somme des chiffres de la valeur retournée par
fnValMot(UneChaine)
Function fnTotalValMot(UneChaine) As Integer
Dim nb As String, i As Integer
nb = CStr(fnValMot(UneChaine))
For i = 1 To Len(nb)
fnTotalValMot = fnTotalValMot + Val(Mid(nb, i, 1))
Next i
End Function
Dans la requête tu mets directement :
fnTotalValMot([LeNom])
car cette fonction fait appel à la précédente.
PS : Access ne faisant pas la différence Majuscule/Minuscule par défaut,
tu n'es pas obligé de changer la casse tes chaînes.
Eric a écrit :
> re,
>
> Copies la fonction ci-dessous dans un module de portée globale.
>
> Function fnValMot(UneChaine) As Integer
> 'Charger la référence Microsoft DAO 3.x Object Library
> 'au Menu Outils | Références
> If IsNull(UneChaine) Then Exit Function
> Dim tLettre(), i As Integer, j As Integer
> Dim longueur As Integer, car As String
> Dim rst As DAO.Recordset, cpt as integer
> longueur = Len(UneChaine)
> Set rst = CurrentDb.OpenRecordset("LaTableLettreValeur")
> tLettre = rst.GetRows(rst.RecordCount)
> Set rst = Nothing
> For i = 1 To longueur
> car = Mid(UneChaine, i, 1)
> For j = 0 To UBound(tLettre, 2)
> If car = tLettre(0, j) Then
> cpt = cpt + tLettre(1, j): Exit For
> End If
> Next j
> Next i
> fnValMot = cpt
> End Function
>
> Tu peux ensuite utiliser cette fonction dans une requête
> fnValMot([LeNom]) te retournera le total des valeurs des lettres du
> champ LeNom
> Dans le code, tu doit adapter sur la ligne
> Set rst = CurrentDb.OpenRecordset("LaTableLettreValeur")
> le vrai nom de ta table qui contient les lettres et les valeurs de ces
> lettres.
>
>
>
>
>
> Guy a écrit :
>> merci, Eric
>>
>> je doit simplement additionner la somme des Valeurs exemple :
>>
>> G U Y = 10 9 50 total 69 ensuite 69 devient 6+9
>>
>> B R U S S O N = 2 11 9 20 20 8 26 total 96 puis 96 devient 9 +6
>> Afin de retrouver les arcanes du tarots
>> je suis ouvert a toutes les propositions
>
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Un grand Merci a toi Eric grâce à toi j'ai simplifier et cela fonctionne
guy
"Eric" a écrit :
..../...
et celle-ci pour faire la somme des chiffres de la valeur retournée par fnValMot(UneChaine)
Function fnTotalValMot(UneChaine) As Integer Dim nb As String, i As Integer nb = CStr(fnValMot(UneChaine)) For i = 1 To Len(nb) fnTotalValMot = fnTotalValMot + Val(Mid(nb, i, 1)) Next i End Function
Dans la requête tu mets directement : fnTotalValMot([LeNom])
car cette fonction fait appel à la précédente.
PS : Access ne faisant pas la différence Majuscule/Minuscule par défaut, tu n'es pas obligé de changer la casse tes chaînes.
Eric a écrit : > re, > > Copies la fonction ci-dessous dans un module de portée globale. > > Function fnValMot(UneChaine) As Integer > 'Charger la référence Microsoft DAO 3.x Object Library > 'au Menu Outils | Références > If IsNull(UneChaine) Then Exit Function > Dim tLettre(), i As Integer, j As Integer > Dim longueur As Integer, car As String > Dim rst As DAO.Recordset, cpt as integer > longueur = Len(UneChaine) > Set rst = CurrentDb.OpenRecordset("LaTableLettreValeur") > tLettre = rst.GetRows(rst.RecordCount) > Set rst = Nothing > For i = 1 To longueur > car = Mid(UneChaine, i, 1) > For j = 0 To UBound(tLettre, 2) > If car = tLettre(0, j) Then > cpt = cpt + tLettre(1, j): Exit For > End If > Next j > Next i > fnValMot = cpt > End Function > > Tu peux ensuite utiliser cette fonction dans une requête > fnValMot([LeNom]) te retournera le total des valeurs des lettres du > champ LeNom > Dans le code, tu doit adapter sur la ligne > Set rst = CurrentDb.OpenRecordset("LaTableLettreValeur") > le vrai nom de ta table qui contient les lettres et les valeurs de ces > lettres. > > > > > > Guy a écrit : >> merci, Eric >> >> je doit simplement additionner la somme des Valeurs exemple : >> >> G U Y = 10 9 50 total 69 ensuite 69 devient 6+9 >> >> B R U S S O N = 2 11 9 20 20 8 26 total 96 puis 96 devient 9 +6 >> Afin de retrouver les arcanes du tarots >> je suis ouvert a toutes les propositions >
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Eric
Bonjour Guy,
Il faudrait mettre cette ligne en début de fonction dans le cas où l'argument passé est Null.
Function fnTotalValMot(UneChaine) As Integer If IsNull(UneChaine) then Exit Function ' <-------- ' Le reste inchangé ... End Function
Bonne continuation
Brusson Guy a écrit :
Un grand Merci a toi Eric grâce à toi j'ai simplifier et cela fonctionne
guy
"Eric" a écrit :
..../...
et celle-ci pour faire la somme des chiffres de la valeur retournée par fnValMot(UneChaine)
Function fnTotalValMot(UneChaine) As Integer Dim nb As String, i As Integer nb = CStr(fnValMot(UneChaine)) For i = 1 To Len(nb) fnTotalValMot = fnTotalValMot + Val(Mid(nb, i, 1)) Next i End Function
Dans la requête tu mets directement : fnTotalValMot([LeNom])
car cette fonction fait appel à la précédente.
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Guy,
Il faudrait mettre cette ligne en début de fonction dans le cas où
l'argument passé est Null.
Function fnTotalValMot(UneChaine) As Integer
If IsNull(UneChaine) then Exit Function ' <--------
' Le reste inchangé
...
End Function
Bonne continuation
Brusson Guy a écrit :
Un grand Merci a toi Eric grâce à toi j'ai simplifier et cela fonctionne
guy
"Eric" a écrit :
..../...
et celle-ci pour faire la somme des chiffres de la valeur retournée par
fnValMot(UneChaine)
Function fnTotalValMot(UneChaine) As Integer
Dim nb As String, i As Integer
nb = CStr(fnValMot(UneChaine))
For i = 1 To Len(nb)
fnTotalValMot = fnTotalValMot + Val(Mid(nb, i, 1))
Next i
End Function
Dans la requête tu mets directement :
fnTotalValMot([LeNom])
car cette fonction fait appel à la précédente.
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Il faudrait mettre cette ligne en début de fonction dans le cas où l'argument passé est Null.
Function fnTotalValMot(UneChaine) As Integer If IsNull(UneChaine) then Exit Function ' <-------- ' Le reste inchangé ... End Function
Bonne continuation
Brusson Guy a écrit :
Un grand Merci a toi Eric grâce à toi j'ai simplifier et cela fonctionne
guy
"Eric" a écrit :
..../...
et celle-ci pour faire la somme des chiffres de la valeur retournée par fnValMot(UneChaine)
Function fnTotalValMot(UneChaine) As Integer Dim nb As String, i As Integer nb = CStr(fnValMot(UneChaine)) For i = 1 To Len(nb) fnTotalValMot = fnTotalValMot + Val(Mid(nb, i, 1)) Next i End Function
Dans la requête tu mets directement : fnTotalValMot([LeNom])
car cette fonction fait appel à la précédente.
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr