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 :

ADO récupérer les données d'une valeur contenue dans une combobox


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 81
    Points : 49
    Points
    49
    Par défaut ADO récupérer les données d'une valeur contenue dans une combobox
    bonjour,
    voila mon probléme
    j'ai une base créée sous Access 2000, j'utilise l'ADO
    j'ai un formulaire me permettant de faire des modifications sur des données.
    Lorsque j'ouvre mon formulaire, l'utilisateur doit sélectionner un numéro dans une liste déroulante et les données correspondantes a ce numéro doivent s'afficher.
    Le probléme c'est que ca ne s'affiche pas
    Mais le modifier marche.
    Mon recordset, ma base ect sont déclarés dans un module en public (donc ca nevient pas de la).
    Si vous pouviez m'aider ...
    Merci d'avance

    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
    24
    25
    26
    27
    28
    29
     
    'Permet de modifier les données d'un écran
    Private Sub btn_modifEcran_Click()
     
        'On affiche les données concernant l'écran sélectionné
        mod_numEcranModif = rsEcran.Fields("numeroEcran")  '<== cette ligne la me pose probléme
        txt_marqEcranModif = rsEcran.Fields("marqueEcran")
        txt_typeEcranModif = rsEcran.Fields("typeEcran")
        txt_numSerieEcranModif = rsEcran.Fields("numeroSerieEcran")
        txt_dateEcranModif = rsEcran.Fields("dateMiseServiceEcran")
        txt_garantieEcranModif = rsEcran.Fields("garantieEcran")
        txt_dimensionEcranModif = rsEcran.Fields("dimensionEcran")
        txt_diversEcranModif = rsEcran.Fields("diversEcran")
     
        'On enregistre les nouvelles données
        rsEcran!marqueEcran = txt_marqEcranModif
        rsEcran!typeEcran = txt_typeEcranModif
        rsEcran!numeroSerieEcran = txt_numSerieEcranModif
        rsEcran!dateMiseServiceEcran = txt_dateEcranModif
        rsEcran!garantieEcran = txt_garantieEcranModif
        rsEcran!dimensionEcran = txt_dimensionEcranModif
        rsEcran!diversEcran = txt_diversEcranModif
        rsEcran!codeSalle = txt_codeSalleEcran
     
        'On met à jour le recordset
        rsModifEcran.Update
     
        MsgBox ("Modification prise en compte"), vbOKOnly
    End Sub

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 81
    Points : 49
    Points
    49
    Par défaut
    Bonjour,
    je vais redonner quelques explications
    mon formulaire comporte 1 combobox (liste déroulante), 8 textbox, et un bouton
    En fait lorsque je sélectionne un numéro (qui est identifiant) dans ma liste déroulante, je dois afficher les données lui correspondantes dans les textbox.
    D'ou ma ligne de code (qui ne fonctionne pas) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mod_numEcranModif=rsEcran.Fields("numeroEcran")
    mod_numEcranModif <== nom de ma liste modifiable
    rsEcran <== nom de mon recordset (déclaré en public dans un module)
    numeroEcran <== nom de mon champ dans ma table (clé primaire)

    J'espére avoir été un peu plus précise
    N'ésitez pas a me poser des questions pour plus d'information
    Merci d'avance
    Bonne journée

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Il manque un bout de code, on ne voit pas à quel moment tu demandes à ton recodset rsEcran de chercher dans ta table, avec un critére (Where) sur ta donnée de ta liste déroulante.

    Starec

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 81
    Points : 49
    Points
    49
    Par défaut
    Au départ j'avais mis ca :
    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
     
    'Permet de modifier les données d'un écran
    Private Sub btn_modifEcran_Click()
     
        'On affiche les données concernant l'écran sélectionné
        If mod_numEcranModif = rsEcran.Fields("numeroEcran") then
           txt_marqEcranModif = rsEcran.Fields("marqueEcran")
           txt_typeEcranModif = rsEcran.Fields("typeEcran")
           txt_numSerieEcranModif = rsEcran.Fields("numeroSerieEcran")
           txt_dateEcranModif = rsEcran.Fields("dateMiseServiceEcran")
           txt_garantieEcranModif = rsEcran.Fields("garantieEcran")
           txt_dimensionEcranModif = rsEcran.Fields("dimensionEcran")
           txt_diversEcranModif = rsEcran.Fields("diversEcran")
        End if
     
        'On enregistre les nouvelles données
        rsEcran!marqueEcran = txt_marqEcranModif
        rsEcran!typeEcran = txt_typeEcranModif
        rsEcran!numeroSerieEcran = txt_numSerieEcranModif
        rsEcran!dateMiseServiceEcran = txt_dateEcranModif
        rsEcran!garantieEcran = txt_garantieEcranModif
        rsEcran!dimensionEcran = txt_dimensionEcranModif
        rsEcran!diversEcran = txt_diversEcranModif
        rsEcran!codeSalle = txt_codeSalleEcran
     
        'On met à jour le recordset
        rsModifEcran.Update
     
        MsgBox ("Modification prise en compte"), vbOKOnly
    End Sub
    Mais meme avec une condition cela ne fonctionnait pas.
    Ensuite j'ai essayé avec une requête SQL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "SELECT * FROM ecran WHERE numeroEcran =" & mod_numEcranModif
    Mais sans succés non plus

    Donc la ... je ne sais plus

  5. #5
    Invité
    Invité(e)
    Par défaut
    Re

    Ce que je veux c'est l'instruction.

    Starec

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 81
    Points : 49
    Points
    49
    Par défaut
    En effet j'ai oublié de le mettre dans mon code !!!
    je vais aller essayer ca de suite et je vous dis quoi !!
    Merci

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 81
    Points : 49
    Points
    49
    Par défaut
    Ca ne fontionne toujours pas
    Avec ce que j'ai rajouté ce la donne ca au niveau du 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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    'Chargement du formulaire
    Private Sub form_load()
        rsEcran.ActiveConnection = CurrentProject.Connection
        rsEcran.Source = "ecran"
        rsEcran.Open , , adOpenDynamic, adLockOptimistic
    End Sub
     
     
    'Permet de modifier les données d'un écran
    Private Sub btn_modifEcran_Click()
     
        'On affiche les données concernant l'écran sélectionné
        mod_numEcranModif = rsEcran.Fields("numeroEcran")
        txt_marqEcranModif = rsEcran.Fields("marqueEcran")
        txt_typeEcranModif = rsEcran.Fields("typeEcran")
        txt_numSerieEcranModif = rsEcran.Fields("numeroSerieEcran")
        txt_dateEcranModif = rsEcran.Fields("dateMiseServiceEcran")
        txt_garantieEcranModif = rsEcran.Fields("garantieEcran")
        txt_dimensionEcranModif = rsEcran.Fields("dimensionEcran")
        txt_diversEcranModif = rsEcran.Fields("diversEcran")
     
        'On enregistre les nouvelles données
        rsEcran!marqueEcran = txt_marqEcranModif
        rsEcran!typeEcran = txt_typeEcranModif
        rsEcran!numeroSerieEcran = txt_numSerieEcranModif
        rsEcran!dateMiseServiceEcran = txt_dateEcranModif
        rsEcran!garantieEcran = txt_garantieEcranModif
        rsEcran!dimensionEcran = txt_dimensionEcranModif
        rsEcran!diversEcran = txt_diversEcranModif
        rsEcran!codeSalle = txt_codeSalleEcran
     
        'On met à jour le recordset
        rsModifEcran.Update
     
        MsgBox ("Modification prise en compte"), vbOKOnly
    End Sub

  8. #8
    Invité
    Invité(e)
    Par défaut
    Re

    Je ne suis pas un spécialise ADO (je préfére DAO ou le SQL directement suivant les case), je vais donc laisser la main.

    Mais avant

    Il te faut une clause Where pour récupérer les données de ta table.
    rsModifEcran.Update c'est quoi ?

    Et lis ces articles (si ce n'est déjà fait). http://access.developpez.com/cours/?page=courstuto#ado

    Starec

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 81
    Points : 49
    Points
    49
    Par défaut
    rsModifEcran c'est l'ancien non de mon recordset. En effet j'ai oublié de le modifier.
    Il s'appelle rsEcran.

    Mais qu'entendez-vous par une clause Where ? Je ne comprend pas ce que vous voulez dire.

    Merci quand meme de m'avoir aider

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 81
    Points : 49
    Points
    49
    Par défaut
    Merci pour le lien vers les cours. Mais je les ai deja lu, ainsi que les tutos et tout ce qu'il y a sur le forum.
    Poster un message était le seul moyen pour trouver une réponse.
    Merci pour ton aide quand meme
    Bonne journée

    Quelqu'un aurait-il une idée alors ?

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 81
    Points : 49
    Points
    49
    Par défaut
    C'est bon j'ai résolu mon probléme !
    Il m'a fallu changer 2 propriétés de ma liste modifiable :
    - dans le contenu j'ai mis : SELECT * FROM ecran
    -dans nombre de colonne : 8

    J'ai modifier le code et ca fonctionne niquel !!

    voici le code si ca intéresse :

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    'Chargement du formulaire
    Private Sub form_load()
        rsEcran.ActiveConnection = CurrentProject.Connection
        rsEcran.Source = "ecran"
        rsEcran.Open , , adOpenDynamic, adLockOptimistic
    End Sub
     
    'On affiche les données concernant l'écran sélectionné
    Private Sub mod_numEcranModif_Change()
        txt_marqEcranModif = mod_numEcranModif.Column(1)
        txt_typeEcranModif = mod_numEcranModif.Column(2)
        txt_numSerieEcranModif = mod_numEcranModif.Column(3)
        txt_dateEcranModif = mod_numEcranModif.Column(4)
        txt_garantieEcranModif = mod_numEcranModif.Column(5)
        txt_dimensionEcranModif = mod_numEcranModif.Column(6)
        txt_diversEcranModif = mod_numEcranModif.Column(7)
        txt_codeSalleEcran = mod_numEcranModif.Column(8)
    End Sub
     
    'Permet de modifier les données d'un écran
    Private Sub btn_modifEcran_Click()
     
        'On enregistre les nouvelles données
        rsEcran!marqueEcran = txt_marqEcranModif
        rsEcran!typeEcran = txt_typeEcranModif
        rsEcran!numeroSerieEcran = txt_numSerieEcranModif
        rsEcran!dateMiseServiceEcran = txt_dateEcranModif
        rsEcran!garantieEcran = txt_garantieEcranModif
        rsEcran!dimensionEcran = txt_dimensionEcranModif
        rsEcran!diversEcran = txt_diversEcranModif
        rsEcran!codeSalle = txt_codeSalleEcran
     
        'On met à jour le recordset
        rsEcran.Update
     
        MsgBox ("Modification prise en compte"), vbOKOnly
    End Sub
     
    'Ouvre le formulaire écran
    Private Sub btn_retourEcran_Click()
        DoCmd.Close
        DoCmd.OpenForm "ecran"
    End Sub
    Bonne journée !!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/02/2014, 12h14
  2. récupérer une valeur contenue dans une balise TD d'un tableau
    Par Himotep dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 16/06/2011, 22h48
  3. Réponses: 1
    Dernier message: 18/02/2008, 17h17
  4. Réponses: 3
    Dernier message: 21/06/2007, 01h10
  5. Réponses: 3
    Dernier message: 21/11/2006, 12h35

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