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 :

Remplacer le contenu d'un champ


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 76
    Points : 53
    Points
    53
    Par défaut Remplacer le contenu d'un champ
    Bonjour,
    mon souci est le suivant:
    dans un formulaire, j'ai plusieurs Champs (type ZT, Cases à Cocher, ZLM)
    en cliquent sur le bouton Enregistrer, je voudrais lancer une fonction qui me parcoure tous les champs et à chaque fois qu'elle trouve une case à cocher, elle doit me remplacer la valeur Faux 'Case non cochée' par 0 et la valeur Vrai par 1.

    Info:
    ma bdd est une bdd SQL Server.
    mes formulaires sont sur Access
    je travaille sur des tables liées.

    Merci pour votre aide.

    Imad

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 24
    Points : 27
    Points
    27
    Par défaut
    Salut,
    Essaie en adaptant ce code à tes besoins :

    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
    Private Sub btnEnregistrer_Click()
     
    On Error GoTo GestionErreurs
     
       DoCmd.SetWarnings False       'Désactive les messages d'alerte d'access
     
     
             DoCmd.RunSQL "UPDATE tbl1 SET tbl1.CaseACocher = True;"
     
     
       DoCmd.SetWarnings True
       DoCmd.Requery        'Actualise le formulaire
     
     
       Exit Sub
     
    GestionErreurs:
       MsgBox "Erreur n° " & Err.Number & " - Descriptif : " & Err.Description
       DoCmd.SetWarnings True
     
    End Sub
    A+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 76
    Points : 53
    Points
    53
    Par défaut
    Bonjour,
    Merci pour votre réponse, mais ce n'est pas ce que je cherche.
    en fait, ta solution est d'updater le contenu de la case à cocher dans la table directement.
    mon problème est que je veux changer le contenu avant l'Update.

    je peux passer sur chaque case à cocher et changer le contenu mais j'en ai 30.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if me.coche= False then
        me.coche=null
    end if
    donc je cherchais une fonction qui pourrait me le faire sans répéter le même code pour les 30.

    Merci

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Il faut que tu parcours tous les contrôles de ton formulaire; que tu teste le type du contrôle (texbox, chekbox, label,...) et que tu change la valeur selon le type.

    C'est un for Each ... Next qu'il te faut.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 76
    Points : 53
    Points
    53
    Par défaut
    Bonjour,

    comment peut-on parcourir tous les contrôles du formulaire ?

    est-ce en faisant un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    For Each Ctl In Me.Controls
    If Me.Ctl.Type = dbcheckbox then
       If Me.Ctl.Value='Faux' then
               Me.Ctl.Value = Null
       End If
    End If
    Next
    Merci

    Imad

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 76
    Points : 53
    Points
    53
    Par défaut
    Re,

    C'est bon, en cherchant un peu loin et en optant pour une autre méthode (je remplace le contenu du champ au lieu du type de champ), j'ai trouvé en utilisant le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim Ctl As Control
    For Each Ctl In Me.Controls
    If Me.Ctl.ControlType = AcControlType.acCheckBox then
       If Me.Ctl.Value= False then
               Me.Ctl.Value = Null
       End If
    End If
    Next Ctl
    Merci pour votre Aide à tous

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

Discussions similaires

  1. Insérer le contenu d'un champ texte dans un JavaScript
    Par yoyot dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/02/2005, 14h12
  2. Contenu d'un champ tronqué dans mon input box
    Par Marmot dans le forum ASP
    Réponses: 2
    Dernier message: 27/10/2004, 13h30
  3. Remplacer le contenu d'un div par un autre
    Par prgasp77 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/10/2004, 23h48
  4. remplacer des espaces dans un champ par des zero
    Par yeep dans le forum Access
    Réponses: 4
    Dernier message: 08/10/2004, 09h41
  5. Recuperer le contenu d'un champs texte
    Par bouboussjunior dans le forum ASP
    Réponses: 4
    Dernier message: 29/09/2004, 14h16

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