Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access
Access Forum d'entraide sur Microsoft Access. Avant de poster -> La F.A.Q Access
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 03/08/2011, 15h55   #1
Nouveau Membre du Club
 
Homme Thierry Trichon
Inscription : octobre 2006
Messages : 228
Détails du profil
Informations personnelles :
Nom : Homme Thierry Trichon
Localisation : France, Eure et Loir (Centre)

Informations forums :
Inscription : octobre 2006
Messages : 228
Points : 36
Points : 36
Par défaut Champ Chiffre et Lettre

Bonjour,

Avec access 2003, j'ai un champ Abonnements. Ce champs consacré a la ref de l'abonnement evolu. Avant il y avait 10 chiffres et aujourd hui il y a toujours la ref avec 10 chiffres et la nouveaute c'est 9 chiffre et lettres au maximum.
En gros: pendant plusieurs annees je vais avoir comme abonnes, soit:
exemple: abonné n°:0123456789 ou
abonné n°: rte25fd89

ces deux ref differentes doivent cohabiter ensemble. Seul soucis, je n'arrive pas a trouver un masque de saisie qui m'eviterait les defaut suivants:
exemple: abonné n°: 012345678X ou TRICFHJS8

J'espere que je vous ai expliqué mon soucis.
Merci de votre aide.
bibi28 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 16h33   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 472
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 472
Points : 7 557
Points : 7 557
À mon avis il va falloir faire un contrôle post saisie sur Avant MAJ) en VBA. Un truc du genre

Code :
1
2
3
4
if Not EstCodeValide(nz(me.code),"") then
    msgbox "Code invalide"
    cancel=true
end if
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
private function EstCodeValide(prmCode as string) as boolean
   dim result as boolean:result=false
 
   if len(prmCode)=10 then
 
        if not isnumeric(prmCode) then
             result=false
           esle
             result=true
        end if
      else
        if len(prmCodë)<>9 then
             result=false
           else
              result=treue
        end if
   end if
 
   EstCodevalide=result
end function
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 actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 16h40   #3
Nouveau Membre du Club
 
Homme Thierry Trichon
Inscription : octobre 2006
Messages : 228
Détails du profil
Informations personnelles :
Nom : Homme Thierry Trichon
Localisation : France, Eure et Loir (Centre)

Informations forums :
Inscription : octobre 2006
Messages : 228
Points : 36
Points : 36
Bonjour

c'est ca que je n'arrive pas à regler

merci
bibi28 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 18h27   #4
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 472
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 472
Points : 7 557
Points : 7 557
ça quoi ?

Tu ne parviens pas à écrire le code pour valider ta chaîne de 9 carcatères ?

Si oui, quelles sont tes contraintes ? (ex : 4 chiffres, 1 majuscule, 2 minuscules, 2 chiffres supérieurs à 5).

Si tu ne peux pas établir de contraintes le seul contrôle possible c'est la longueur.

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 actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 16h40   #5
Nouveau Membre du Club
 
Homme Thierry Trichon
Inscription : octobre 2006
Messages : 228
Détails du profil
Informations personnelles :
Nom : Homme Thierry Trichon
Localisation : France, Eure et Loir (Centre)

Informations forums :
Inscription : octobre 2006
Messages : 228
Points : 36
Points : 36
Bonjour

soit 10 chiffres

ou

soit 9 chiffres et lettres en majuscules mais le nbre exact de lettres et de chiffres peut varier tout en respectant les 9 symboles

merci de vos reponses

bibi28
bibi28 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 19h06   #6
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 472
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 472
Points : 7 557
Points : 7 557
Citation:
soit 9 chiffres et lettres en majuscules mais le nbre exact de lettres et de chiffres peut varier tout en respectant les 9 symboles

Donc ce que tu peux valider c'est
1) la chaÎne fait 9 caractères
2) Elle n'est composée que de chiffres et de lettres

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
private function EstCodeValide(prmCode as string) as boolean
   dim result as boolean:result=false
 
   if len(prmCode)=10 then
 
        if not isnumeric(prmCode) then
             result=false
           esle
             'Elle est composée de 10 chiffres
             result=true
        end if
 
      else
 
        if len(prmCode)<>9 then
             result=false
           else
              'Elle est composé de 9 carcatères
              result=true
              dim c as string
              dim i as integer:for i=1 to len(prmCode)
                  c=mid(prmCode, i, 1)
 
                  select case asc(c)
                     case asc("0") to asc("9")
                         'OK ne rien faire c'est un chiffre
 
                     case asc("A") to asc("Z")
                         'OK ne rien faire c'est une lettre majuscule
 
                     case else
                          result=false
                          exit for
 
                  end select
 
              next i
 
        end if
   end if
 
   EstCodevalide=result
end function
__________________
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 actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/08/2011, 07h11   #7
Nouveau Membre du Club
 
Homme Thierry Trichon
Inscription : octobre 2006
Messages : 228
Détails du profil
Informations personnelles :
Nom : Homme Thierry Trichon
Localisation : France, Eure et Loir (Centre)

Informations forums :
Inscription : octobre 2006
Messages : 228
Points : 36
Points : 36
Je teste

a bientot
bibi28 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h30.


 
 
 
 
Partenaires

Hébergement Web