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 :

suprimer caracteres avant enregistrement [AC-2003]


Sujet :

VBA Access

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Par défaut suprimer caracteres avant enregistrement
    bonsoir

    un utilisateur s'identifie dans une texte box et une fois identifier est enregistré dans une table via un recordset dans un champ "nomAutorisation".cet utilisateur s'identifie sous cette forme: AAAutilisateur
    comment faire pour que dans la table a l'enregistrement je n'ai plus les AAA?
    j'ai essayé mais je ne sais quoi mettre a la place d'utilisateur sachant qu'il varient.est ce que je doit ecrire autant de ligne qu'il y a d'utilisateur?
    comment l'inserer avant enregistrement dans une table?
    nomAutorisation etant le nom du champ de la table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nomAutorisation=mid("AAAutilisateur"),4)
    merci

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 146
    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 : 12 146
    Par défaut
    Bonjour,

    tout simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =right(mavariable,len(mavariable)-3)
    ou encore

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =replace(mavariaaable,"AAA","",,1)
    ou encore (plus torturé)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     mid(mavariable,4,len(mavariable)-3)
    Je crois qu'on a fait le tour !
    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

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Par défaut
    bonjour
    ,ou dois je placer cette ligne,juste avant le recordset?ou avant le while?
    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
    Private Sub essai_AfterUpdate()
    Dim test As String
    Dim testDate As Date
    Dim dbsdepart As Database
    Dim rstdepart As Recordset
    Set dbsdepart = CurrentDb
    Set rstdepart = dbsdepart.OpenRecordset("TableAutorisationTemporaire", dbOpenDynaset)
     
          While Not rstdepart.EOF
                With rstdepart
                test = rstdepart.Fields("nomAutorisation").Value
                testDate = rstdepart.Fields("dateAutorisation").Value
                rstdepart.MoveNext
          End With
     
        If StrComp(Me.essai, test, vbTextCompare) = 0 Then
           If StrComp(CStr(testDate), CStr(Date), vbTextCompare) = 0 Then
           Call equipes
    merci

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 146
    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 : 12 146
    Par défaut
    C'est difficile de te répondre...
    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

  5. #5
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 146
    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 : 12 146
    Par défaut
    Je le verrai plutot dans ta comparaison... non ?!
    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

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Par défaut
    j'ai du mal a suivre.si je le mets dans la comparaison,la ligne va etre pris en compte dans l'enregistrement?
    cela pourrait devenir cela???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      While Not rstdepart.EOF
                With rstdepart
                test = rstdepart.Fields("nomAutorisation").Value
                testDate = rstdepart.Fields("dateAutorisation").Value
                rstdepart.MoveNext
          End With
     
        If StrComp(Me.essai, test, vbTextCompare) = 0 Then
          nomAutorisation = Replace(essai.value, "AAA", "", , 1)
           Call equipes

  7. #7
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 146
    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 : 12 146
    Par défaut
    Je ne vois pas ou tu écris dans ta table avec le code fourni.

    Normalement l'écriture via un recordset ce fait comme ceci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    rst.addnew
    rst.fields() = valeur
    ...
    rst.update
    Dans ton code tu ne fais que balayer un table, capturer des valeurs que tu compare, voilà ou s'arrête le code fourni.
    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
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Par défaut
    avec cette ligne de code,ca n'enregistre pas automatiquement dans le champ de la table??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nomAutorisation = Replace(essai.value, "AAA", "", , 1)

  9. #9
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 146
    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 : 12 146
    Par défaut
    Non ! Comme je te l'ai fait remarqué sur mon précédent post.

    Tu dois ABSOLUMENT lire le tuto sur DAO ! La programmation sous ACCESS ne s'improvise pas.

    Tu verras se tuto est très enrichissant.
    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
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 625
    Par défaut
    bonjour,
    peux tu me dire si cela pourrait convenircar une errreur est apparue erreur execution "94" ne peut contenir une valeur null?
    cette ligne est pointée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monLogin1=rstdepart.Fields("NomLogin").value
    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
    If StrComp(Me.essai, test, vbTextCompare) = 0 Then
          monLogin1 = Replace(essai.value, "AAA", "", , 1)
           Call equipes
     
    Set dbsdepart = CurrentDb
        Set rstdepart = dbsdepart.OpenRecordset("nomAutorisation", dbOpenDynaset)
            With rstdepart
                    rstdepart.AddNew
                    monLogin1=rstdepart.Fields("NomLogin").value             
                    rstdepart.Update
                    rstdepart.Bookmark = .LastModified
     
            End With
        rstdepart.Close
        dbsdepart.Close
    merci

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Vu que ton recordset pointe vers un nouvel enregistrement
    l'évaluation d'un champ du recordset (sauf clé primaire automatique) renverra toujours NULL ce que ne peut accepter monLogin1, soit parce que c'est un contrôle, une variable typée autre que variant, ...


    Si j'ai bien compris ton code, dans le bloc With... End with, tu dois inverser les termes de l'égalité
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rstdepart.Fields("NomLogin") = monLogin1
    Ce sont les bases du VBA et de DAO qu'il faut revoir, comme le dit loufab()
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  12. #12
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 146
    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 : 12 146
    Par défaut
    Si tu utilise With ce n'est pas la peine de spécifier le nom du recordset.

    Clique sur With et tape F1.

    Non le F1 n'est pas réservé au sot. Tout le monde s'en sert, même les plus chevronnés.
    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

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

Discussions similaires

  1. [XL-2003] annuler tout avant enregistrement
    Par olivier-tig dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 18/05/2009, 15h00
  2. Réponses: 3
    Dernier message: 16/04/2009, 23h00
  3. Réponses: 5
    Dernier message: 28/08/2008, 13h04
  4. Réponses: 10
    Dernier message: 21/06/2006, 15h50
  5. [Formulaire] vérifier les champs avant enregistrement
    Par julien_t_m dans le forum Access
    Réponses: 5
    Dernier message: 16/10/2005, 21h53

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