OVH Cloud OVH Cloud

Access & Transaction

5 réponses
Avatar
Vuillermet Jacques
Dans un fichier MDB, j'ai des tables attachées vers SQL Server.

J'exécute en VBA des requêtes dont la chaîne SQL est construite
algorythmiquement.

Une transaction se gère-t-elle bien comme cela ? :

Dim strSQL1 as String
Dim strSQL2 as String

strSQL1 = "..."
strSQL2 = "..."

DAO.BeginTrans
DoCmd.RunSQL strSQL1, True
DoCmd.RunSQL strSQL2, True
DAO.CommitTrans

Merci.

Jacques.

5 réponses

Avatar
Pierre CFI [mvp]
bonjour
oui, mais plutot que docmd.runsql je mettrais
Currentdb.execute strsql
comme çà pas de message d'avertissement

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Vuillermet Jacques" a écrit dans le message de news:
Dans un fichier MDB, j'ai des tables attachées vers SQL Server.

J'exécute en VBA des requêtes dont la chaîne SQL est construite
algorythmiquement.

Une transaction se gère-t-elle bien comme cela ? :

Dim strSQL1 as String
Dim strSQL2 as String

strSQL1 = "..."
strSQL2 = "..."

DAO.BeginTrans
DoCmd.RunSQL strSQL1, True
DoCmd.RunSQL strSQL2, True
DAO.CommitTrans

Merci.

Jacques.





Avatar
Vuillermet Jacques
comme çà pas de message d'avertissement
mais message d'erreur trappable par "On Error" ?


jv


"Pierre CFI [mvp]" a écrit dans le message de
news:
bonjour
oui, mais plutot que docmd.runsql je mettrais
Currentdb.execute strsql
comme çà pas de message d'avertissement

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Vuillermet Jacques" a écrit dans le message de
news:

Dans un fichier MDB, j'ai des tables attachées vers SQL Server.

J'exécute en VBA des requêtes dont la chaîne SQL est construite
algorythmiquement.

Une transaction se gère-t-elle bien comme cela ? :

Dim strSQL1 as String
Dim strSQL2 as String

strSQL1 = "..."
strSQL2 = "..."

DAO.BeginTrans
DoCmd.RunSQL strSQL1, True
DoCmd.RunSQL strSQL2, True
DAO.CommitTrans

Merci.

Jacques.









Avatar
Pierre CFI [mvp]
non, car c'est un avertissement, mais en deactivation de gestionnaire d'erreur
en fait, c'est beaucoup plus complexe
si tu fais runsql la transaction est mise en place automatiquement d'ou le message 'tant de lignes vont etre modifiées, voulez vous
....."
si tu géres toi méme, avant le commit, il faut en code verifier que c'est bon, et faire soit commit soit rolback
plus complexe, mais marrant :o))

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Vuillermet Jacques" a écrit dans le message de news:

comme çà pas de message d'avertissement
mais message d'erreur trappable par "On Error" ?


jv


"Pierre CFI [mvp]" a écrit dans le message de
news:
bonjour
oui, mais plutot que docmd.runsql je mettrais
Currentdb.execute strsql
comme çà pas de message d'avertissement

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Vuillermet Jacques" a écrit dans le message de
news:

Dans un fichier MDB, j'ai des tables attachées vers SQL Server.

J'exécute en VBA des requêtes dont la chaîne SQL est construite
algorythmiquement.

Une transaction se gère-t-elle bien comme cela ? :

Dim strSQL1 as String
Dim strSQL2 as String

strSQL1 = "..."
strSQL2 = "..."

DAO.BeginTrans
DoCmd.RunSQL strSQL1, True
DoCmd.RunSQL strSQL2, True
DAO.CommitTrans

Merci.

Jacques.













Avatar
Vuillermet Jacques
Marrant ???

J'ai vécu plus fun !

Dans mon cas, l'erreur est la tentative de création d'un doublon sur une
clé.

Si je comprend bien, je dois vérifier au préalable l'existence de la future
clé pour savoir s'il elle n'existe pas déjà !

J'ai connu du transactionnel plus simple !
... et où la création d'un doublon dans une clé était un erreur et non un
simple avertissement à gérer par l'utilisateur !

Merci beaucoup !

Jacques.


"Pierre CFI [mvp]" a écrit dans le message de
news: #
non, car c'est un avertissement, mais en deactivation de gestionnaire
d'erreur

en fait, c'est beaucoup plus complexe
si tu fais runsql la transaction est mise en place automatiquement d'ou le
message 'tant de lignes vont etre modifiées, voulez vous

....."
si tu géres toi méme, avant le commit, il faut en code verifier que c'est
bon, et faire soit commit soit rolback

plus complexe, mais marrant :o))

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Vuillermet Jacques" a écrit dans le message de
news:


comme çà pas de message d'avertissement
mais message d'erreur trappable par "On Error" ?


jv


"Pierre CFI [mvp]" a écrit dans le message de
news:
bonjour
oui, mais plutot que docmd.runsql je mettrais
Currentdb.execute strsql
comme çà pas de message d'avertissement

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Vuillermet Jacques" a écrit dans le message
de



news:
Dans un fichier MDB, j'ai des tables attachées vers SQL Server.

J'exécute en VBA des requêtes dont la chaîne SQL est construite
algorythmiquement.

Une transaction se gère-t-elle bien comme cela ? :

Dim strSQL1 as String
Dim strSQL2 as String

strSQL1 = "..."
strSQL2 = "..."

DAO.BeginTrans
DoCmd.RunSQL strSQL1, True
DoCmd.RunSQL strSQL2, True
DAO.CommitTrans

Merci.

Jacques.

















Avatar
Guy DETIENNE
Salut ;O)

Salut ;O)

Un doublon ne doit pas être vérifié par le programmeur si le champs de la
table est identifié comme étant
unique !

Voir propriété Indexé: "Oui - Sans doublon"

Si le champ concerné peut être redondant, il est normal que ce soit le
programmeur qui s'assure de l'unicité de celui-ci. Mais il serait dommage
de ne pas passer par la propriété citée ci-dessus

Revois la définition de ta table.

Guy

"Vuillermet Jacques" a écrit dans le message de
news:

Marrant ???

J'ai vécu plus fun !

Dans mon cas, l'erreur est la tentative de création d'un doublon sur une
clé.

Si je comprend bien, je dois vérifier au préalable l'existence de la
future

clé pour savoir s'il elle n'existe pas déjà !

J'ai connu du transactionnel plus simple !
... et où la création d'un doublon dans une clé était un erreur et non un
simple avertissement à gérer par l'utilisateur !

Merci beaucoup !

Jacques.


"Pierre CFI [mvp]" a écrit dans le message de
news: #
non, car c'est un avertissement, mais en deactivation de gestionnaire
d'erreur

en fait, c'est beaucoup plus complexe
si tu fais runsql la transaction est mise en place automatiquement d'ou
le


message 'tant de lignes vont etre modifiées, voulez vous
....."
si tu géres toi méme, avant le commit, il faut en code verifier que
c'est


bon, et faire soit commit soit rolback
plus complexe, mais marrant :o))

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Vuillermet Jacques" a écrit dans le message de
news:


comme çà pas de message d'avertissement
mais message d'erreur trappable par "On Error" ?


jv


"Pierre CFI [mvp]" a écrit dans le message
de



news:
bonjour
oui, mais plutot que docmd.runsql je mettrais
Currentdb.execute strsql
comme çà pas de message d'avertissement

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Vuillermet Jacques" a écrit dans le
message




de
news:
Dans un fichier MDB, j'ai des tables attachées vers SQL Server.

J'exécute en VBA des requêtes dont la chaîne SQL est construite
algorythmiquement.

Une transaction se gère-t-elle bien comme cela ? :

Dim strSQL1 as String
Dim strSQL2 as String

strSQL1 = "..."
strSQL2 = "..."

DAO.BeginTrans
DoCmd.RunSQL strSQL1, True
DoCmd.RunSQL strSQL2, True
DAO.CommitTrans

Merci.

Jacques.