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 :

Access 2000 BeginTrans/Rollback ne fonctionne pas


Sujet :

VBA Access

  1. #1
    Membre habitué

    Inscrit en
    Octobre 2003
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 178
    Points : 133
    Points
    133
    Par défaut Access 2000 BeginTrans/Rollback ne fonctionne pas
    Bonjour.

    voici un code que j'ai écrit en m'inspirant (voir en copiant) le sujet suivant :
    http://www.developpez.net/forums/d90...utes-fonction/

    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
    45
     
    Public Function Purge()
      Dim ws As Workspace: Set ws = DBEngine.Workspaces(0)
      Dim db As DAO.Database
      Dim rsCartes As DAO.Recordset
     
      On Error GoTo ErrPurgeCartes
     
      DoCmd.SetWarnings False
     
      Set db = CurrentDb
      Set rsC = db.OpenRecordset("Num")
     
     
      With rsC
        While Not .EOF
          Select Case .Fields("Num")
            Case -5: ws.BeginTrans
            Case -6: ws.CommitTrans
            Case -7: GoTo ErrPurgeCartes
            Case Else:
              Application.SysCmd acSysCmdSetStatus, .Fields("Num")
              DoCmd.RunSQL "delete * from tmlg where id =" & .Fields("Num")
              DoCmd.RunSQL "delete * from tmln where id =" & .Fields("Num")
              DoCmd.RunSQL "delete * from tcc where num =" & .Fields("Num")
              DoCmd.RunSQL "insert into CT values(" & .Fields("Num") & ",#" & Now() & "#)"
     
            End Select
          .MoveNext
        Wend
      End With
     
    GoTo fin
     
    ErrPurgeCartes:
      ws.Rollback
     
    fin:
      Application.SysCmd acSysCmdClearStatus
     
      DoCmd.SetWarnings True
      Set rsC  = Nothing
      Set db = Nothing
     
    End Function
    Quand la procédure passe par le rollback, rien n'est annulé.

    Quelqu'un peut-il m'expliquer pourquoi svp?

  2. #2
    Membre habitué

    Inscrit en
    Octobre 2003
    Messages
    178
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 178
    Points : 133
    Points
    133
    Par défaut
    J'ai trouvé la solution en lisant un peu mieux ce sujet :
    http://www.developpez.net/forums/d90...der-table-vba/

    En fait au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
              DoCmd.RunSQL "delete * from tmlg where id =" & .Fields("Num")
              DoCmd.RunSQL "delete * from tmln where id =" & .Fields("Num")
              DoCmd.RunSQL "delete * from tcc where num =" & .Fields("Num")
              DoCmd.RunSQL "insert into CT values(" & .Fields("Num") & ",#" & Now() & "#)"
    il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
              db.execute "delete * from tmlg where id =" & .Fields("Num")
              db.execute "delete * from tmln where id =" & .Fields("Num")
              db.execute "delete * from tcc where num =" & .Fields("Num")
              db.execute "insert into CT values(" & .Fields("Num") & ",#" & Now() & "#)"
    et là, effectivement, le ws.CommitTrans ou le ws.RollBack sont pris en compte.

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

Discussions similaires

  1. Rollback ne fonctionne pas
    Par <% Bastien %> dans le forum JPA
    Réponses: 1
    Dernier message: 31/08/2011, 11h04
  2. [Data] [Transaction] @Transactional - le rollback ne fonctionne pas
    Par romaintaz dans le forum Spring
    Réponses: 6
    Dernier message: 11/10/2009, 17h23
  3. Réponses: 4
    Dernier message: 15/05/2008, 17h38
  4. [Access] requete sql qui ne fonctionne pas
    Par pobrouwers dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/03/2007, 12h33
  5. Réponses: 10
    Dernier message: 02/03/2007, 12h17

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