Meilleur auteur de réponses
(Visual Studio 2008) Commit et/ou Rollback avec une base Access (fichier .MDB)

Question
-
Bonjour,
J'ai trouvé sur le NET un code pour utiliser les transactions avec ACCESS
Dim dbe As New DBEngine dbe.SystemDB = MaBase Dim Ws As Workspace Ws = dbe.Workspaces(0) Ws.BeginTrans() ' Le code .................................... If wOK = True Then Ws.CommitTrans() Else Ws.Rollback() End If
Mais sur la ligne de code "Ws = dbe.Workspaces(0)"
J'ai l'erreur "Mot de passe non valide."
Est-il possible de trouver des exemples de code ? Ou une documentation détaillée ?
Cordialement SC
Réponses
-
Voici un complément, dans le cas d'une base protégée par un mot de passe
dbe.OpenDatabase(MaBase, False, False, "MS Access;PWD=MotDePase")
"MaBase" est le chemin complet de la base
Cordialement SC
- Marqué comme réponse Aurel Bera vendredi 8 mars 2013 13:14
-
Et le code qui fonctionne (mais il dépend de version de DAO utilisée)
Dim dbe As New DBEngine
dbe.OpenDatabase("d:\Temp\TestDB.accdb")
Dim Ws As Workspace
Ws = dbe.Workspaces(0)
Ws.BeginTrans()
Dim wOK As BooleanIf wOK = True Then
Ws.CommitTrans()
Else
Ws.Rollback()
End If
- Modifié Aurel Bera vendredi 8 mars 2013 07:36
- Marqué comme réponse Sauveur Consalvi vendredi 8 mars 2013 10:22
Toutes les réponses
-
Bonjour
Ici vous avez quelques détails sur DAO:
http://social.msdn.microsoft.com/Forums/en-US/vbgeneral/thread/10cd6c8b-c425-47d7-966c-729eeb9bb2c5/
Mais ce qui est intéressant c'est le commentaire de Cor Ligthert (MCC, MVP)
Try to forget DAO. Simply because that is was quicker in VB5 does not mean that you should use it forever. Use Ado.Net for your Access database. Be even aware that DAO is AFAIK for Jet (Access before 2007) and not for an Access Database 2007/2010
Donc essayez d’utiliser ADO.NET.
Il y a quelque chose qui nécessite DAO (compression/réparation automatique d’une DB accès, création automatique des tables, etc....) mais pour des requêtes SELECT/INSERT/UPDATE/DELETE utilisez ADO.NET.
Ici vous avez un exemple:
http://www.codeproject.com/Articles/8477/Using-ADO-NET-for-beginners
Et une comparaison entre les deux:
http://msdn.microsoft.com/en-us/library/office/aa164825(v=office.10).aspx
Cordialement,
-
-
Pour la conversion de C # vers VB.net on peut utiliser :
http://www.developerfusion.com/tools/convert/csharp-to-vb/
Pour les transactions on doit adapter les exemples trouves ici (de VB vers VB.NET):
http://msdn.microsoft.com/fr-fr/library/office/bb243806(v=office.12)
- Modifié Aurel Bera jeudi 7 mars 2013 15:08 Modifie le deuxieme lien
-
Et le code qui fonctionne (mais il dépend de version de DAO utilisée)
Dim dbe As New DBEngine
dbe.OpenDatabase("d:\Temp\TestDB.accdb")
Dim Ws As Workspace
Ws = dbe.Workspaces(0)
Ws.BeginTrans()
Dim wOK As BooleanIf wOK = True Then
Ws.CommitTrans()
Else
Ws.Rollback()
End If
- Modifié Aurel Bera vendredi 8 mars 2013 07:36
- Marqué comme réponse Sauveur Consalvi vendredi 8 mars 2013 10:22
-
-
Voici un complément, dans le cas d'une base protégée par un mot de passe
dbe.OpenDatabase(MaBase, False, False, "MS Access;PWD=MotDePase")
"MaBase" est le chemin complet de la base
Cordialement SC
- Marqué comme réponse Aurel Bera vendredi 8 mars 2013 13:14