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

Requêtes et SQL. Discussion :

[Requete] Mettre le résultat dans une liste modifiable


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 29
    Points : 20
    Points
    20
    Par défaut [Requete] Mettre le résultat dans une liste modifiable
    Bonjour,

    Je débute en VB/access. Pour des raisons assez obscures de mon responsable de stage, je ne peut pas remplir ma liste modifiable directement avec une requete simple. Il veut que je fasse ça dans le code.
    Pour les champs textes ça ne m'a pas posé un seul problème, je me suis donc dit que j'allais recopier la même chose ici pour la liste modifiable et ça ne marche pas


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Form_Open(Cancel As Integer)
    Set db = CurrentDb
    Dim recRef As DAO.Recordset
    Dim requeteRef As String
    requeteRef = "select Produits.id_Produits, Produits.prodReferences from Produits where Produits.prodSuppr=false;"
    Set recRef = db.OpenRecordset(requeteRef)
    While Not recRef.EOF
       Me.modifModifProdRef = recRef.Fields(0)
        recRef.MoveNext
    Wend
    End Sub

    c'est la ligne en rouge qui est marquée comme mauvaise . Je pensais que mon problème était lié au fait que je voulais mettre 2 colonnes dans mon "modifiable" mais non ça ne marche pas non plus avec une seule...

    pas cool les responsables qui ne veulent pas que ce soit fait d'une façon simple mais ne disent pas comment débugguer un truc...

    voili voila mon problème, j'espère que vous allé pouvoir m'aider

  2. #2
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 799
    Points
    799
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Form_Open(Cancel As Integer)
    Dim requeteRef As String
    requeteRef = "select Produits.id_Produits, Produits.prodReferences from Produits where Produits.prodSuppr=false;"
    Me.modifModifProdRef.RowSource = requeteRef
    End Sub

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 29
    Points : 20
    Points
    20
    Par défaut
    merci ft035580, j'ai essayé mais ça ne marche pas.


    Je vais expliquer exactement ce que j'ai besoin de faire, ce sera surement plus simple pour avoir une réponse.

    J'ai un formulaire qui va me servir à modifier les caractéristiques de certains produits d'une table nommée "Produits", je ne souhaites pas devoir passer d'un enregistrement à l'autre par les boutons en bas du formulaire vu qu'il y en aura beaucoup. J'ai donc fait une liste déroulante me mettant les références des différents produits.
    Mon but est donc de sélectionner une référence dans cette liste, puis que les valeurs des autres champs associés à cette référence s'affichent dans les différentes boites de texte, et si l'on modifie une information et que l'on demande de sauvegarder alosr cela modifie les données dans la base de données.

    Pour le moment ce que j'avais réussi à faire c'est mettre la table Produits comme source de mon formulaire et ensuite les bonnes colonnes dans les bons champs, ça marchait les champs étaient mis à jour quandj e changeais de référence selectionnée.
    Mon soucis est que si je veux modifier la référence n°5 et que je la selectionne dans la liste et enregistre alors cela va effacer l'enregistrement de la référence n°1 (puisque c'est la référence selectionnée via les flèches en bas)...
    On m'avais conseillée de ne pas mettre la table Produits comme source du formulaire mais de tout faire dans le code, et en fait je n'ai pas réussi même avec la réponse de ft035580

    Je ne sais pas si c'est très clair... mais si quelqu'un à une piste pour m'aider ce serait vraiment sympa

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 29
    Points : 20
    Points
    20
    Par défaut
    Je viens d'essayer quelque chose. Donc j'ai supprimé "Produits" des sources du formulaire, et j'ai mis ce code au clic sur le bouton d'enregistement des modification :

    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
    Private Sub btnModifProdValider_Click()
    On Error GoTo Err_btnModifProdValider_Click
     
        DoCmd.RunSQL "Update Produits set prodSerie = " & Me.txtModifProdSerie.Value & " where id_Produits = " & Me.modifModifProdRef.Column(0) & " ;"
        DoCmd.RunSQL "Update Produits set prodFinition = " & Me.txtModifProdFinition.Value & " where id_Produits = " & Me.modifModifProdRef.Column(0) & " ;"
        DoCmd.RunSQL "Update Produits set prodDesignation = " & Me.txtModifProdDesignation.Value & " where id_Produits = " & Me.modifModifProdRef.Column(0) & " ;"
        DoCmd.RunSQL "Update Produits set prodPrixUnitHT = " & Me.txtModifProdPrixUnitHT.Value & " where id_Produits = " & Me.modifModifProdRef.Column(0) & " ;"
     
    Exit_btnModifProdValider_Click:
        Forms(NomFormulaire).Requery
        Exit Sub
    Err_btnModifProdValider_Click:
        MsgBox Err.Description
        Resume Exit_btnModifProdValider_Click
    End Sub
    Cela fonctionne très bien pour le txtModifProdPrixUnitHT qui est un chiffre. Par contre pour les autres champs ça ne fonctionne pas si je rentre du texte (ils sont de type texte).
    Par exemple je souhaite modififer prodSerie par la valeur mise dans txtModifProdSerie alors quand je clique sur le bouton il va m'ouvrir une message box avec pour titre la valeur qui est dans txtModifProdSerie (donc celle que je voudrais sauvegarder), et il me demande quelle valeur il doit sauvegarder et je dois retaper la valeur... Pourquoi il n'enregistre pas directementl a valeur que j'ai mis dans txtModifProdSerie ???

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 29
    Points : 20
    Points
    20
    Par défaut
    En fait il suffisait d'ajouter les simples ' '

    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
    Private Sub btnModifProdValider_Click()
    On Error GoTo Err_btnModifProdValider_Click
     
        DoCmd.RunSQL "Update Produits set prodSerie = '" & Me.txtModifProdSerie.Value & "' where id_Produits = " & Me.modifModifProdRef.Column(0) & " ;"
        DoCmd.RunSQL "Update Produits set prodFinition = '" & Me.txtModifProdFinition.Value & "' where id_Produits = " & Me.modifModifProdRef.Column(0) & " ;"
        DoCmd.RunSQL "Update Produits set prodDesignation = '" & Me.txtModifProdDesignation.Value & "' where id_Produits = " & Me.modifModifProdRef.Column(0) & " ;"
        DoCmd.RunSQL "Update Produits set prodPrixUnitHT = '" & Me.txtModifProdPrixUnitHT.Value & "' where id_Produits = " & Me.modifModifProdRef.Column(0) & " ;"
     
    Exit_btnModifProdValider_Click:
        Forms(NomFormulaire).Requery
        Exit Sub
    Err_btnModifProdValider_Click:
        MsgBox Err.Description
        Resume Exit_btnModifProdValider_Click
    End Sub

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

Discussions similaires

  1. Résultat d'un recordset dans une liste modifiable
    Par pompidouwa dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/09/2007, 14h48
  2. Réponses: 4
    Dernier message: 07/08/2006, 17h01
  3. Réponses: 4
    Dernier message: 22/05/2006, 11h53
  4. [VBA-A] Choisir dans une liste modifiable & afficher le
    Par benjapar dans le forum VBA Access
    Réponses: 4
    Dernier message: 27/03/2006, 10h59
  5. Ajouter un valeur dans une liste modifiable
    Par ancylia dans le forum Access
    Réponses: 1
    Dernier message: 22/09/2005, 12h50

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