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 :

[VBA]récupérer valeur de zone de liste pour suppression d'enregistrement


Sujet :

VBA Access

  1. #1
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Points : 238
    Points
    238
    Par défaut [VBA]récupérer valeur de zone de liste pour suppression d'enregistrement
    Salut ,
    alors voila mes question j'espere que vous repondrez

    - comment faire pour utiliser des donées d'une zone d'affichage( avec requete )?
    -> en fait dans une liste je recupere les infos de ma BDD et je souhaiterais que lorsque le selectionne une ligne et que je clique sur un bouton ca me supprime cette ligne dans la base.


    -Comment recuperer, a partir d'une liste deroulante contenant un nom et un prenom, le code correspondant?
    L'intelligence c'est comme la confiture, moins tu en as , plus tu l'étales...

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 108
    Points : 57
    Points
    57
    Par défaut
    Dans création de formulaire ,quand tu fais créer un bouton de commande ,t'as dans la liste des choix , un bouton : Supprimer un enregistrement .

    Ce bouton doit etre placé dans un formulaire.

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 47
    Points : 52
    Points
    52
    Par défaut
    Bonjour,

    S'il s'agit bien d'une zone de liste à choix unique, tu ajoutes dans la requete de remplissage de la liste, la clef de la table en indiquant dans la propriété largeur, 0 cm pour ne pas l'afficher.

    Pour récupérer les valeurs de la ligne selectionné, il faut utiliser la propriété column(numero de colonne)
    ex : liste = code; nom; prénom

    obtenir le code => MaListe.Column(0)
    obtenir le nom => MaListe.Column(1)
    obtenir le prenom => MaListe.Column(2)

    Esperant avoir répondu.

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Points : 238
    Points
    238
    Par défaut re
    merci de vos reponses
    L'intelligence c'est comme la confiture, moins tu en as , plus tu l'étales...

  5. #5
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Points : 238
    Points
    238
    Par défaut erreur
    Salut c'est encore moi , alors j'ai fait le code pour cette fameuse suppression et il m'indique l'erreur suivante :

    VB:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Commande36_Click()
    Dim DB As Database
    Dim RS As DAO.Recordset
    Set DB = CurrentDb()
    Set RS = DB.OpenRecordset("FOURNISSEUR")
     
    BD.Execute = "delete from FOURNISSEUR where CodeFrs=" & suppr_frs.Column(0)
    MsgBox "Suppression effectuée", vbInformation
     
    suppr_frs.Requery
     
    End Sub



    Erreur : "erreur d'execution '424'
    objet requis"
    cette errreur fait reference a la ligne de la requete SQL

    Pouvez-vous m'aider ?
    L'intelligence c'est comme la confiture, moins tu en as , plus tu l'étales...

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 47
    Points : 52
    Points
    52
    Par défaut
    Cela ne viens pas de ton suppr_frs.Column(0) puisque si je remplace le db.execute que je ne connais pas par un docmd.runsql que je connais mieux, ca marche.

    N'oublie pas de verifier qu'une ligne est bien selectionnée avant de lancer une suppression (avec MaListe.ListIndex>-1)

  7. #7
    Faw
    Faw est déconnecté
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    1 169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 169
    Points : 1 383
    Points
    1 383
    Par défaut
    Salut,
    tu déclares
    et tu exécutes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BD.Execute = "delete from FOURNISSEUR where CodeFrs=" & suppr_frs.Column(0)
    ...
    Je ne comprends rien à Access...Mais je me soigne.
    Moteur de recherche
    DAO

  8. #8
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2007
    Messages : 500
    Points : 238
    Points
    238
    Par défaut suite
    Oui euh je vous ai mis une ancienne version du code; le version actuelle est en fait cell-ci:
    Private Sub Commande36_Click()
    Dim DB As Database
    Dim RS As DAO.Recordset
    Set DB = CurrentDb()
    Set RS = DB.OpenRecordset("FOURNISSEUR")

    DB.Execute = "delete from FOURNISSEUR where CodeFrs=" & suppr_frs.Column(0)
    MsgBox "Suppression effectuée", vbInformation

    suppr_frs.Requery


    End Sub


    Et l'erreur est maintenant:
    "erreur de compilation"
    "argument non facultatif"
    et il me met en gras le ".execute="
    L'intelligence c'est comme la confiture, moins tu en as , plus tu l'étales...

  9. #9
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Bonjour à tous, j'ai la même erreur, est-ce que quelqu'un à une idée?

    Pour ma part, il se trouve que l'enregistrement que je voudrais pouvoir supprimer se trouve dans deux table et lorsqu'on le supprime, il devrai se supprimer que dans l'une des deux.. (je ne sais pas s'il y a beucoup de chose a changer, mais il ne me semble pas..)

    Merci d'avance

  10. #10
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 133
    Points : 56
    Points
    56
    Par défaut
    Ok.. c'est a cause du = après le execute

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

Discussions similaires

  1. [AC-2007] vba récupérer valeur zone liste
    Par hugodu28 dans le forum IHM
    Réponses: 2
    Dernier message: 04/05/2010, 22h28
  2. clic dans une zone de liste pour accéder à un enregistrement
    Par emilie-cedatra dans le forum VBA Access
    Réponses: 7
    Dernier message: 19/11/2007, 09h22
  3. Réponses: 4
    Dernier message: 03/05/2007, 21h27
  4. Réponses: 8
    Dernier message: 04/08/2006, 02h51
  5. Cliquer sur zone de liste pour valider la valeur
    Par gwendk dans le forum Access
    Réponses: 7
    Dernier message: 15/05/2006, 16h13

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