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

VB 6 et antérieur Discussion :

ADO - Recordset -> annuler les modifications sur l'ensemble des enregistrements


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2002
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 23
    Points : 15
    Points
    15
    Par défaut ADO - Recordset -> annuler les modifications sur l'ensemble des enregistrements
    Salut à tous,

    Je voudrais travailler sur un Recordset càd :

    - supprimer, ajouter et modifier des enregistrements.

    et donc soit :
    enregistrer ces modifictations effectuées dans mon Recordset à partir d'un clique sur un bouton
    soit : annuler toutes ces modifications à l'aide d'un autre bouton.

    Le problème est que le Recordset.update concerne le record en cours et non pas l'ensemble des records du recordset.

    Autre exemple : si je fais 2 fois de suite mon_recordset.addnew avec les champs voulus même sans faire de mon_recordset.update le recordset va sauvegarder ces deux enregistrements.

    Comment faire pour travailler sur mon recordset et soit enregistrer toutes ces modifications sur les enregistrements soit tout annuler?

    Merci

  2. #2
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Je ne connais pas bien ADO, mais en DAO il y a un BeginTrans,CommitTrans et Roolback qui permettent ce que tu demandes. Essaye de voir si c'est possible avec ADO

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2002
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 23
    Points : 15
    Points
    15
    Par défaut
    Merci Delbeke du conseil mais la transaction me retourne le même résultat, je dois mal m'y prendre. Car si j'ajoute deux enregistrements je fais un con.rollbacktrans j'ai toujours mes enregistrements de sauvegardés. (enfin sauf le dernier effectué)

    Voici mon code de test

    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
     
        Set con2 = New ADODB.Connection
        con2.CursorLocation = adUseServer
        con2.Open "mabase"
        con2.BeginTrans
     
        'remplir mon recordset pour les modifications
        Set rs_option = New ADODB.Recordset
        'rs_option.CursorLocation = adUseServer
        rs_option.ActiveConnection = con2
        'rs_option.Properties("IrowsetIdentity") = True
        rs_option.Open "SELECT * FROM ligne_option_type WHERE id_materielle = " & m_id_mat, con, adOpenKeyset, adLockPessimistic, adCmdText
        'MsgBox rs_option.RecordCount
     
        'remplir combobox des options
        rs_option.AddNew
        rs_option!id_materielle = m_id_mat
        rs_option!id_option_d1_type = dc_option.BoundText
        rs_option!valeur = "1"
     
        rs_option.AddNew
        rs_option!id_materielle = m_id_mat
        rs_option!id_option_d1_type = dc_option.BoundText
        rs_option!valeur = "2"
     
        con2.RollbackTrans

    Le deuxième ne sera pas enregistrée.

    Si je mets un rs_option.update devant le con2.RollBackTrans
    Le rollback ne fait aucun effet.

  4. #4
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 097
    Points : 16 606
    Points
    16 606
    Par défaut
    Pour ADO voir CancelUpdate que je n'ai jamais eu l'occasion d'utiliser.

  5. #5
    Membre à l'essai
    Inscrit en
    Décembre 2002
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 23
    Points : 15
    Points
    15
    Par défaut
    non malheureusement ce n'est pas ca :

    VI-D-3. CancelUpdate
    Annule les modifications apportées sur l'enregistrement en cours, ou annule l'enregistrement crée par AddNew.

    Donc si je crée plusieurs enregistrement à la suite avec Addnew seul le dernier sera annulé.

Discussions similaires

  1. Annuler les modifications apportées à une table.
    Par PadawanDuDelphi dans le forum Bases de données
    Réponses: 5
    Dernier message: 18/10/2006, 09h26
  2. Réponses: 2
    Dernier message: 05/10/2006, 12h01
  3. Annuler les modifications dans un sous-formulaire
    Par soso78 dans le forum Access
    Réponses: 2
    Dernier message: 25/09/2006, 16h32
  4. Réponses: 1
    Dernier message: 31/07/2006, 13h51
  5. Répeter les modifications sur tous mes pages web?
    Par mamiberkof dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 19/04/2006, 09h59

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