IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

1ère lettre d'un champ en majuscule et puis le reste libre [AC-2010]


Sujet :

IHM

  1. #1
    Candidat au Club
    Femme Profil pro
    Secrétaire
    Inscrit en
    Novembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Secrétaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2019
    Messages : 5
    Points : 3
    Points
    3
    Par défaut 1ère lettre d'un champ en majuscule et puis le reste libre
    Bonjour à tous,

    Je me permets de vous faire cette demande car j'ai fait le tour des différentes solutions trouvées sur le net mais je ne trouve pas exactement ce que je souhaite

    J'ai un champ adresse qui reprend le nom de la rue et le numéro de maison
    Exemple : Rue du Paradis, 25

    J'aimerai imposer dans ce champ la majuscule sur le premier caractère et que les autres caractères soient libre d'être en minuscule ou en majuscule

    J'ai trouvé différentes possibilités mais c'est soit tout majuscule ou tout minuscule ou 1er caractère majuscule et tout le reste minuscule ou majuscule à chaque mots mais aucune de ces solutions me convient

    D'avance je vous remercie pour votre aide

    PS : Je ne suis pas une experte, j'ai créé ma base de donnée moi-même en suivant des vidéos en ligne donc si je dois passer par un codage VBA merci de me parler comme à un enfant :-)

    Joelle

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 585
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 585
    Points : 34 244
    Points
    34 244
    Par défaut
    Salut,

    souhaites-tu que cette casse imposée se fasse au niveau d'un formulaire de saisie uniquement ? Dois-tu également faire une mise à jour des valeurs existantes ?

    Tu peux très bien faire une fonction VBA qui prend en paramètre une chaine de caractères, et qui te retourne la chaine avec la bonne casse.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Points : 8 489
    Points
    8 489
    Par défaut


    Tu peux aussi utiliser le Masque de Saisie. (L'aide de Office).
    Ce masque se positionne dans la structure de la table dans les propriétés au niveau des propriétés du champ concerné ou dans les propriétés de la zone de texte du controle concerné.

    > Convertit tous les caractères en majuscules.
    < Convertit tous les caractères en minuscules.
    A Lettre ou chiffre (entrée obligatoire).
    a Lettre ou chiffre (entrée facultative).

    Ainsi tu pourrais créer un masque du style :
    >A<aaaaaaaaaaaaaaaaaaaaaaaa

    Remarque il y aura ayant de caractères dans le masque que de caractères possibles dans le champ (dans mon exemple : taille du champ 25, Nombre de caractères 25 (1 A + 24 a)
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  4. #4
    Candidat au Club
    Femme Profil pro
    Secrétaire
    Inscrit en
    Novembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Secrétaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2019
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bonjour Jeannot45 et Jean-Philippe André,

    Un grand merci pour vos réponses

    Jeannot45, J'ai pensé à cette solution de masque de saisie et testé mais cette solution ne convient pas car dans une adresse il peut y avoir des majuscules dans les mots qui suivent le premier
    >A<aaaaaaaaaaaaaaaaaaaaaaaa cette solution impose que tout ce qui suit le < est minuscule donc mon Rue du Paradis, 25 va devenir Rue du paradis, 25

    Jean-Philippe André, ta solution est intéressante et me conviendrai parfaitement mais je ne sais pas codé le VBA, penses-tu qu'il serait possible que tu me créer le code que je dois mettre ?
    J'aimerai qu'il puisse corriger les enregistrements précédents se serait l'idéal, maintenant si cela n'est pas possible ou trop compliqué à mettre en place je serais déjà contente si je pouvais juste le mettre dans un champ d'un formulaire

    D'avance je vous remercie pour vos réponses

    Bien à vous

    Joelle

  5. #5
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonsoir,

    Sur touche appuyée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    If KeyAscii > 64 Then
      'On vérifie si on se trouve au premier caractère
        If Me.NomChamp.SelStart = 0 Then 'Si oui
          KeyAscii = Asc(UCase(Chr(KeyAscii))) 'La 1° lettre est convertie en majuscule
      End If
    End If
    Astuce :
    Si pour une raison ou une autre, tu dois avoir la première lettre en minuscule, saisir la première lettre (donc convertie en majuscule), saisir la seconde en minuscule, placer le curseur sur le premier caractère et l'effacer.
    Ton texte aura alors la première lettre en minuscule.
    Cordialement

    Christophe

    N'oubliez pas de mettre pour en faire profiter tout le monde.

  6. #6
    Candidat au Club
    Femme Profil pro
    Secrétaire
    Inscrit en
    Novembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Secrétaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2019
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bonjour marsouin_89,

    Un grand merci pour ton aide mais j'ai un message d'erreur (erreur de compilation - Variable non définie)

    Voici ce que j'ai fait
    J'ai ouvert mon formulaire en mode création, j'ai ouvert les propriétés du formulaire et dans évènement, sur clic j'ai copier / coller ton code et changé nom du champ par le nom du champ concerné, j'enregistre et quand je retourne dans mon formulaire il me mets ce message d'erreur (j'ai mis un printscreen du message)

    Ai-je fais une erreur de manipulation ?

    Merci pour ton aide

    Joelle
    Images attachées Images attachées  

  7. #7
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    11 976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 11 976
    Points : 24 490
    Points
    24 490
    Par défaut
    Bonjour,

    Nonobstant de la solution proposée, l'évènement indiqué par Marsouin est "Sur touche appuyée" et non "Sur Click" du formulaire.
    Donc KeyAscii n'est pas présent pour un clic, uniquement pour un évènement de type Touche.

    Crée une zone de texte et dans les propriétés tu auras "Sur Touche appuyée".

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    11 976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 11 976
    Points : 24 490
    Points
    24 490
    Par défaut
    Après avoir revu la demande, je pense que c'est un peu plus compliqué qu'un simple Ucase () ou StrConv(..., vbpropercase) du fait que toutes les particules et pronoms (de, du, le...) ne doivent pas avoir de majuscule.

    Voir la convention d'écriture d'une adresse. https://fr.wikipedia.org/wiki/Adresse_postale

    Il me semble qu'il faut créer une fonction utilisateur pour ça. Je suis étonné que cela n'existe pas, c'est assez commun.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  9. #9
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    11 976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 11 976
    Points : 24 490
    Points
    24 490
    Par défaut
    Désolé pour le flood :

    La Faq :

    https://access.developpez.com/source...v#FormeAdresse

    C'est une bonne base de travail pour mettre en majuscule les mots que l'on veut.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  10. #10
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    11 976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 11 976
    Points : 24 490
    Points
    24 490
    Par défaut
    re,

    Voici un petit code à insérer en dessous des lignes d'options d'un module standard (pas dans le formulaire) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Const particules = " de ; du ; d' ; des ; l'; la ; le ; les ; en "
     
    Function formatAdresse(strAdresse As Variant) As String
    Dim strA As String
    Dim arrParticules() As String
    Dim i As Long
     
    If IsNull(strAdresse) Then Exit Function
    If strAdresse = "" Then Exit Function
     
    arrParticules = Split(particules, ";")
    'toutes les premières lettres en majuscule
    strA = StrConv(strAdresse, vbProperCase)
    'supprime la majuscule
    For i = 0 To UBound(arrParticules)
        strA = Replace(strA, arrParticules(i), LCase(arrParticules(i)))
    Next
     
    formatAdresse = strA
     
    End Function
    On renseigne la constante avec les mots que l'on ne veut pas mettre en majuscules.
    1) le strconv() met toutes les 1ère lettre de chaque mot en maj.
    2) la boucle for remplace les mots trouvés qui correspondent à ceux de la constante.

    Et l'appel :
    Sélectionner la zone de texte de l'adresse que j'ai nommé Adresse, l'évènement Aprés MAJ

    et mettre ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Adresse_AfterUpdate()
    Me.Adresse.Value = formatAdresse(Me.Adresse.Value)
    End Sub
    Adresse doit être remplacé par le nom de la zone de texte et les lignes
    Private Sub Adresse_AfterUpdate()
    et
    End Sub
    sont déjà présentes dans le module de formulaire.

    Cordialement,

    Désolé pour le découpage de la réponse.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  11. #11
    Candidat au Club
    Femme Profil pro
    Secrétaire
    Inscrit en
    Novembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Secrétaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2019
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bonjour loufab,

    Un grand merci pour ton aide, ca marche nickel

    Par contre quand on efface une adresse déjà notée et qu'on laisse le champ vide j'ai un pop-up avec un message d'erreur (voir fichier attaché)
    Il suffit de cliquer sur fin et ca ne pose pas de problème mais vu qu'il n'y a pas que moi qui travaille sur la base de donnée, les autres vont se demander ce que c'est et je vais être harcelé de coup de fil de personne complètement perdue :-)

    Serait-il possible de dire a ton code de ne pas ouvrir de pop-up lorsque le champ est remis en null ?

    Mais en tout cas encore un grand merci

    Joelle
    Images attachées Images attachées  

  12. #12
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 596
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 596
    Points : 14 523
    Points
    14 523
    Par défaut
    bonjour,
    Nz() est la solution, cela enlève la valeur nulle du champ et met la valeur de son choix (ici 2 guillemets "" pour la valeur vide):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Adresse.Value = formatAdresse(Nz(Me.Adresse.Value,""))
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  13. #13
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    11 976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 11 976
    Points : 24 490
    Points
    24 490
    Par défaut
    J'ai édité le code précédent pour y intégrer ce cas mais la solution de tee est aussi fonctionnelle.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  14. #14
    Candidat au Club
    Femme Profil pro
    Secrétaire
    Inscrit en
    Novembre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Secrétaire
    Secteur : Bâtiment

    Informations forums :
    Inscription : Novembre 2019
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Ca marche nickel
    Vraiment un grand merci à vous deux
    Bonne journée

    Joelle
    Je clôture la discussion

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] extraire les 1ères lettres d'un champ
    Par Matthieu0910 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 17/04/2011, 23h44
  2. Réponses: 3
    Dernier message: 08/10/2007, 17h05
  3. requete 1ère lettre en majuscule
    Par babafredo dans le forum Langage SQL
    Réponses: 9
    Dernier message: 25/09/2007, 16h58
  4. Première lettre d'un champ en majuscule
    Par guestCam dans le forum IHM
    Réponses: 12
    Dernier message: 16/03/2007, 16h24
  5. 1ère lettre en majuscule sauf certains mots !!!
    Par beletteroi dans le forum Access
    Réponses: 1
    Dernier message: 11/10/2005, 09h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo