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

IHM Discussion :

Problème sur un Recordset Edit


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 103
    Points : 60
    Points
    60
    Par défaut Problème sur un Recordset Edit
    Bonjour,

    je rencontre un problème avec l'action d'un recordset Edit.
    Sur mon formulaire j'ai créé 2 boutons, un "Valider" et un "Refuser".
    voici le code qui s'exécute au clique sur le bouton valider:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Commande471_Click()
    Dim rst As DAO.Recordset
     
        Set rst = CurrentDb.OpenRecordset("Modèle V13")
        rst.Edit
            rst!validationoffre = "VALIDER"
        rst.Update
        rst.Close
        Set rst = Nothing
        MsgBox "Votre offre à été validée", vbOKOnly, "Offre validée"
    End Sub
    Il me modifie donc le champ 'validationoffre' de ma table 'Modèle V13'.
    Cependant il me modifie à chaque fois le 1er enregistrement de ma table et non l'enregistrement en cours sur mon formulaire où je clique sur le bouton "Valider" ou "Refuser".

    Savez vous comment faire un critère de tri dans un Recordset pour qu'il me modifie l'enregistrement en cours et non pas uniquement le 1er.

    Merci,
    Maxime

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

    Il faut que tu remplaces ta table par une requête de sélection (SELECT) avec une clause WHERE qui comporte la donnée identifiant ton champ de façon unique.

    Car avec ton code on ne sait pas qu'elle enregistrement on va modifier dans la table.

    Starec

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 103
    Points : 60
    Points
    60
    Par défaut
    Merci Starec pour ta réponse.
    Si l'utilisation d'une requête est indispensable je vais donc passer par cela, mais j'aurais préféré en vba.

    Cela n'est vraiment pas possible?

    Maxime

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

    Tu gardes ta structure, mais tu crées une requête en SQL qui tu mets à la place du nom de ta table.

    Aide toi du générateur de requête pour récupérer le code SQL.

    Starec

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 103
    Points : 60
    Points
    60
    Par défaut
    ok Merci Strarec,

    je test et vous tiens au courant!

    Maxime

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 103
    Points : 60
    Points
    60
    Par défaut
    la je bloque.
    je vous explique:

    donc je créé une requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT [Modèle V13].numoffre
    FROM [Modèle V13];
    je dois mettre une clause Where pour identifier l'enregistrement en cours.
    sauf que la clause Where provient de mon formulaire que je consulte.
    donc comment faire appel à la zone de texte "numoffre" dans mon formulaire "ModèleV13" qui identifie mon enregistrement?

    j'espère me faire comprendre!

    Merci,
    Maxime

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 103
    Points : 60
    Points
    60
    Par défaut
    J'ai fini par trouver comment faire et voici donc 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
    Private Sub Commande471_Click()
    Dim rst As DAO.Recordset
    Dim Db As DAO.Database
    Dim sql As String
    Set Db = CurrentDb
     
    sql = "SELECT * FROM [Modèle V13] WHERE numoffre = " & numoffre
     
        Set rst = Db.OpenRecordset(sql)
        rst.Edit
            rst!validationoffre = "VALIDER"
        rst.Update
        rst.Close
        Set rst = Nothing
        MsgBox "Votre offre à été validée", vbInformation + vbOKOnly, "Offre validée"
    End Sub
    Merci pour ton aide Starec!

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

Discussions similaires

  1. [XL-2010] Problème sur un recordset
    Par juju05 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/05/2015, 14h16
  2. [AC-2010] Problème sur des Recordset
    Par jjacques68 dans le forum Access
    Réponses: 4
    Dernier message: 23/03/2014, 18h01
  3. un problémé sur la commande edit
    Par anasreali dans le forum VB.NET
    Réponses: 2
    Dernier message: 14/01/2008, 13h46
  4. probléme sur commande edit
    Par houssamnat dans le forum VB.NET
    Réponses: 1
    Dernier message: 11/01/2008, 17h47
  5. [DAO] problème avec Requery sur mon recordset
    Par vcattin dans le forum VBA Access
    Réponses: 8
    Dernier message: 04/04/2007, 00h08

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