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 :

Vider un champ [AC-2010]


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Janvier 2016
    Messages : 6
    Par défaut Vider un champ
    Bonjour a tous,

    J'ai constitué une base de donnée des outils d'une entreprise, elle fonctionne mais une action prend beaucoup de temps, aussi je cherche à l’améliorer.
    J'ai une liste déroulante qui doit absolument être vide lorsque l’opérateur ouvre un certain formulaire or celle ci mémorise la valeur entrée. De manière à supprimer cette valeur, j'ai fait un petit VBA qui efface tout le champ dans la table qui la sauvegarde, cependant le temps de parcourir toutes les lignes est très long. Je vous met le code à la suite:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Set oRst = oDb.OpenRecordset("T2-Références", dbOpenTable)
    While Not oRst.EOF
      'Passe en mode modification
      oRst.Edit
      'Efface la valeur
      oRst.Fields("Pos1").Value = Null
      'Met à Jour
      oRst.Update
      'Passe au suivant
      oRst.MoveNext
     
    Wend

    T2-Références est la table dans laquelle est inscrit le champ pos1 que je dois effacer.
    Dans notre cas je n'aurai qu'une seule ligne à effacer a chaque fois que l’opérateur fait son choix dans la liste déroulante.
    Cependant je ne sais pas comment faire un code pour lui dire d'aller spécifiquement effacer la cellule pos1 correspondant à la ligne qui vient d’être changée.
    Quelqu'un à une idée ?

  2. #2
    Expert confirmé
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Billets dans le blog
    2
    Par défaut
    GMPADD bonjour

    en passant par une requête SQL, cela d'évite de boucler sur tous les enregistrements de ta table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentDb.Execute "UPDATE T2-Références SET T2-Références.Pos1 = Null;"
    Cordialement

    Jimbolion

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Janvier 2016
    Messages : 6
    Par défaut
    Bonjour,

    Merci pour votre aide. Je voulais passer par VBA car je n'arrive pas à faire que requête SQL car lorsque je l’exécute Access m'ouvre une fenêtre "Sélectionner la source de données" .
    Celle ci me demande de "sélectionner la source de données fichier qui décrit le pilote auquel vous souhaite vous connecter. Vous pouvez utiliser toute source de données faisant référence à un pilote ODBC installé sur votre machine".

    Meme en appliquant la procédure décrite ici :
    https://support.office.com/fr-fr/art...2-6dac62532a42
    ou ici :
    https://support.office.com/fr-fr/art...7-f369b78d3db8.

    Je n'arrive à rien.

  4. #4
    Expert confirmé
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Billets dans le blog
    2
    Par défaut
    GMPADD,


    Le code fourni est bien du VBA !
    Il est toutefois possible que la syntaxe de noms de tes tables t'oblige à mettre entre crochets le nom des entités ainsi ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentDb.Execute "UPDATE [T2-Références] SET [T2-Références].Pos1 = Null;"
    Ce code remplace le tien dans ta fonction ou procédure

    Jimbolion

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Janvier 2016
    Messages : 6
    Par défaut
    Impeccable ça fonctionne au top merci jimbolion

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

Discussions similaires

  1. vider un champs texte
    Par Pau dans le forum Access
    Réponses: 3
    Dernier message: 06/06/2006, 10h37
  2. [Tkinter] Vider un champ de texte
    Par Knuckles dans le forum Tkinter
    Réponses: 4
    Dernier message: 01/06/2006, 17h07
  3. Vider un champs date
    Par banbanne dans le forum Access
    Réponses: 3
    Dernier message: 23/03/2006, 21h24
  4. Vider les champs automatique
    Par Arkal dans le forum Composants VCL
    Réponses: 12
    Dernier message: 30/06/2005, 22h01
  5. Commande Update... vider certains champ dans table.
    Par angelevil dans le forum ASP
    Réponses: 3
    Dernier message: 04/05/2005, 21h08

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