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 :

[DAO] Pourquoi mes Recordset ne sont pas inclus dans mes transactions ?


Sujet :

VBA Access

  1. #21
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    OK je ne me souviens plus en détail comment j'avais traité un cas similaire mais j'étais passé par un booléen

    Bon courage

  2. #22
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    Citation Envoyé par mout1234
    Bon courage
    Merci !
    Désormais je planche sur la création de pseudo "assistant" pour la création des nouveaux enregistrements.

  3. #23
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Discussion très intéressante. FredG, n'hésite pas à poster le fruit de tes nouvelles réflexions ou découvertes si tu en as le temps.

  4. #24
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    Pour ce qui est de gérer des forms de saisie dépendants avec transactions, mon code a l'air au point.
    Mais je suis un peu court niveau temps pour partager mon travail de tout de suite.
    Donc un peu plus tard, je soumettrai mes idées à la rédaction de dvp.com pour voir si y a de quoi publier un article sur la question, sinon je reviendrai directement dans ce thread pour partager du code source et en discuter ensemble.

  5. #25
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Class_Initialize()
     
        Set ws = DBEngine.CreateWorkspace("ws", "Admin", vbNullString)
        Set db = ws.OpenDatabase(CurrentDb.Name)
        ws.BeginTrans
    End Sub
    Est ce que deux objets de cette classe peuvent exister en même temps ? Auquel cas tu vas créer des workspace du même nom

    Ceci dit, je n'arrive pas à reproduire le même problème chez moi.

    J'ai créé un formulaire avec 3 boutons : 1 qui charge les données, l'autre qui valide, un troisième qui annule.

    Avec ce code et cette classe :

    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
    Option Compare Database
    Option Explicit
     
     
    Private ws As DAO.Workspace
    Private db As DAO.Database
     
     
    Private Sub Class_Initialize()
     
        Set ws = DBEngine.CreateWorkspace("ws", "Admin", vbNullString)
        Set db = ws.OpenDatabase(CurrentDb.Name)
        ws.BeginTrans
    End Sub
     
     
    Public Sub RollBack()
     
        ws.RollBack
        ws.BeginTrans
    End Sub
     
    Public Sub Commit()
     
        ws.CommitTrans
        ws.BeginTrans
    End Sub
     
    Public Function OpenRecordset(dataSourceName As String) As Recordset
     
        Dim qdf As DAO.QueryDef
     
        Set qdf = db.QueryDefs(dataSourceName)
     
     
        Set OpenRecordset = qdf.OpenRecordset(dbOpenDynaset)
    End Function
    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
    Dim ws As Classe1
     
    'Code du bouton charger
    Private Sub Commande3_Click()
    Set ws = New Classe1
    Set Me.Recordset = ws.OpenRecordset("r1")
    End Sub
     
    'Code du bouton valider
    Private Sub Commande4_Click()
    Me.Refresh
    ws.Commit
    Me.Dirty = False
    End Sub
     
    'Code du bouton annuler
    Private Sub Commande5_Click()
    Me.Refresh
    ws.RollBack
    End Sub
    Et le formulaire se comprte bien comme mes boutons lui indique.

  6. #26
    Membre expérimenté
    Avatar de FRED.G
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 032
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 032
    Points : 1 505
    Points
    1 505
    Par défaut
    Salut Tof,
    Citation Envoyé par Tofalu
    Est ce que deux objets de cette classe peuvent exister en même temps ? Auquel cas tu vas créer des workspace du même nom
    Oui, aucun souci tant que tu n'ajoutes pas le Workspace à la collection Workspaces.

    Citation Envoyé par Tofalu
    Ceci dit, je n'arrive pas à reproduire le même problème chez moi.
    Normal, il n'y a aucun problème. Mes résultats étaient faussés à cause d'un Refresh (ou Me.Dirty =false) placé après le Commit. Il faut bien sûr le placer avant.

    A part ça dans ton code le Me.Dirty=False n'est pas nécessaire étant donné que tu utilises avant le Me.Refresh (il font la même chose).

  7. #27
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Citation Envoyé par FRED.G
    Salut Tof,

    A part ça dans ton code le Me.Dirty=False n'est pas nécessaire étant donné que tu utilises avant le Me.Refresh (il font la même chose).

    Oui, mais j'étais en phase de bidouillage

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Mes beans ne sont pas reconnus dans la JSP
    Par daydream123 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 27/03/2012, 11h39
  2. Réponses: 3
    Dernier message: 23/05/2009, 13h07
  3. mes _FK ne sont pas persistés dans ma base oracle
    Par mickael.guilbert dans le forum JPA
    Réponses: 4
    Dernier message: 08/02/2008, 11h01
  4. Réponses: 7
    Dernier message: 22/09/2006, 01h28

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