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

VBA Access Discussion :

Access: Code VBA


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 16
    Par défaut Access: Code VBA
    Bonjour a tous,

    Voici mon code:

    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
    22
    23
    Private Sub Organizacion_AfterUpdate()
     
    If IsNull(Nombre_1_Productor) Then
    Nombre_1_Productor = " "
    End If
     
    If IsNull(Nombre_2_Productor) Then
    Nombre_2_Productor = " "
    End If
     
    If IsNull(Apellido_1_Productor) Then
    Apellido_1_Productor = " "
    End If
     
    If IsNull(Apellido_2_Productor) Then
    Apellido_2_Productor = " "
    End If
     
    NombreentieraProductor = (Nombre_1_Productor) + " " + (Nombre_2_Productor) + " " + (Apellido_1_Productor) + " " + (Apellido_2_Productor)
     
    codigoProductor = String(1, Nombre_1_Productor) + String(1, Nombre_2_Productor) + String(1, Apellido_1_Productor) + String(1, Apellido_2_Productor) + "-" + Mid(Comunidad, 1, 4)
     
    End Sub
    Il se px que mon productor ne possede qu un seul nom de famille et un seul prenom. Dans le cas present cela me donne des espaces en trop et je souhaiterai les suprimer...

    Pourriez vous me dire m indiquer la methode a suivre SVP?

    Merci pour votre aide.

  2. #2
    Membre émérite Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Par défaut
    Bonjour,

    Avec la fonction Trim (supprime les espaces à droite et à gauche d'une chaîne) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NombreentieraProductor = Trim((Nombre_1_Productor) + " " + (Nombre_2_Productor)) + " " + Trim((Apellido_1_Productor) + " " + (Apellido_2_Productor))
    Bonne journée.

  3. #3
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 16
    Par défaut
    Hola,

    Merci pour vos reponses.

    La fonction Trim aurait pu correspondre a mon besoin. Cependant le probleme c est qu il se px que un productor n a qu un seul apellido ou un nombre.

    Mon probleme lorsque la formule s execute et que tous les control ne sont rempli, le resulta est avec un espace en trop.

    Ce que je voudrais c est en fait presiser que lorsque un champs n est pas rempli, tu passe a l autre ou bien avoir une fonction qui me permetrait de concatener ts les champs mais qui suprimerai les espace en trop. Car dans mon cas je souhaite tjrs garder un espace entre les mots...

    Merci pour votre aide...

    voici mon formulaire
    Fichiers attachés Fichiers attachés

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 849
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 849
    Par défaut
    Bonjour,

    Est-ce que la fonction Replace ne donnerait pas le résultat escompté par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NombreentieraProductor = Replace (NombreentieraProductor,"  "," ")
    après la ligne 19. Remplacer les 2 espaces par 1 seul espace.

    Bonne continuation

  5. #5
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 127
    Par défaut
    Bonjour,

    Ce n'est pas automatique, il faut le programmer (ou faire une petite fonction) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Nombre_*_Productor = trim(nz(Nombre_*_Productor))
    ...
     
    NombreentieraProductor = Nombre_1_Productor + iif(len(Nombre_2_Productor)>0, " " + Nombre_2_Productor, "") + ...

  6. #6
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 16
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Nombre_1_Productor = Trim(Nz(Nombre_1_Productor))
     
    NombreentieraProductor = Nombre_1_Productor + IIf(Len(Nombre_2_Productor) > 0, " " + Nombre_2_Productor, "") + IIf(Len(Apellido_1_Productor) > 0, " " + Apellido_1_Productor, "") + IIf(Len(Apellido_2_Productor) > 0, " " + Apellido_2_Productor, "")
    Merci pour ton aide. Cependant au lieu de m enlever les espaces il m en rajoute... Auais tu une solution?

    Dsl je suis vraiment debutant sur le VBA...

    Merci pour ton aide

  7. #7
    Membre averti
    Inscrit en
    Janvier 2011
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 16
    Par défaut
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Private Sub Organizacion_AfterUpdate()
     
    If IsNull(Nombre_1_Productor) Then
    Nombre_1_Productor = " "
    End If
     
    If IsNull(Nombre_2_Productor) Then
    Nombre_2_Productor = " "
    End If
     
     
    If IsNull(Apellido_1_Productor) Then
    Apellido_1_Productor = " "
    End If
     
     
    If IsNull(Apellido_2_Productor) Then
    Apellido_2_Productor = " "
    End If
     
    Nombre_1_Productor = Trim(Nz(Nombre_1_Productor))
    Nombre_2_Productor = Trim(Nz(Nombre_2_Productor))
    Apellido_1_Productor = Trim(Nz(Apellido_1_Productor))
    Apellido_2_Productor = Trim(Nz(Apellido_2_Productor))
     
    NombreentieraProductor = Nombre_1_Productor + IIf(Len(Nombre_2_Productor) > 0, " " + Nombre_2_Productor, "") + IIf(Len(Apellido_1_Productor) > 0, " " + Apellido_1_Productor, "") + IIf(Len(Apellido_2_Productor) > 0, " " + Apellido_2_Productor, "")
     
     
     
    End Sub
    Merci!!! j ai trouve la solution. en cherchant un peu on y arrive! Merci en ts cas pour votre aide a tous!!!

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

Discussions similaires

  1. [AC-2010] Effacer table excel à partir d'access code vba
    Par han87 dans le forum VBA Access
    Réponses: 3
    Dernier message: 24/04/2015, 15h02
  2. [AC-2010] Plantage Access Code VBA
    Par Lologolas dans le forum VBA Access
    Réponses: 7
    Dernier message: 13/12/2011, 09h10
  3. Ouvrir document Word à partir d'un formulaire Access(code VBA)
    Par protocoleigrp dans le forum VBA Access
    Réponses: 1
    Dernier message: 15/06/2009, 16h22
  4. code VBA versus assistant Access
    Par zephyr59 dans le forum Access
    Réponses: 6
    Dernier message: 10/04/2006, 15h04
  5. Réponses: 3
    Dernier message: 06/09/2005, 10h27

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