OVH Cloud OVH Cloud

Problème DoCmd.RunSQL (Access 97/VB6)

1 réponse
Avatar
i_love_techno
Bonjour a tous!

J'ai quelques problèmes en pilotant Access 97 depuis Vb6 : Lorsque
j'utilise la méthode runsql de l'objet Docmd le code s'exécute mais
quand je vais vérifier dans la base, les actions d'ajouts ou de
suppressions de données ne sont pas réalisées...
J'ai également essayer d'utiliser la méthode execute de DAO (
DB.Execute strsql, dbFailOnError... ) mais apparemment les symptômes
sont les même... exécution du code mais aucun ajouts/suppresions
d'enregistrements!

Commet pourrais je faire pour remédier à ce problème ??? (En passant
par les recordsets+ boucle while pour faire des update ou delete, ca
fonctionne mais on multiplie le temps de traitements par 2,chose qui
n'est pas envisageable pour l'application...)

Merci d'avance!!!

Voici une portion du code que j'utilise

Dim A As Access.Application
Dim .....
Set A = New Access.Application
A.OpenCurrentDatabase Emplacement_BD
'nettoyage de la table
A.DoCmd.RunSQL ("delete * from Nims_Final_Temp")
A.DoCmd.RunSQL ("insert...")
A.DoCmd.RunSQL ("insert...")
....
.....
A.DoCmd.RunSQL (autre_requete_sql)
A.CloseCurrentDatabase
A.Quit
Set A = Nothing

1 réponse

Avatar
Jessy Sempere [MVP]
Bonjour

Le problème des requête ajout et suppression, c'est que tu as des
messages d'avertissements pour confirmer ou non et visiblement
dans ton code, tu ne les verras pas donc ça ne marchera pas
je pense...

Si tu veux vraiment utiliser le RunSQL, essais en rajoutant avant :
A.DoCmd.SetWarning False
et après les RunSQL :
A.DoCmd.SetWarning True

Sinon perso plutôt que d'utiliser l'automation et le RunSQL, j'utiliserais
plutôt le DAO, genre :

Dim db as dao.database
set db = opendatabase (Emplacement_BD)
db.execute "delete * from Nims_Final_Temp"
db.execute ....
db.close: set db = nothing

@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Jeremy P." a écrit dans le message news:

Bonjour a tous!

J'ai quelques problèmes en pilotant Access 97 depuis Vb6 : Lorsque
j'utilise la méthode runsql de l'objet Docmd le code s'exécute mais
quand je vais vérifier dans la base, les actions d'ajouts ou de
suppressions de données ne sont pas réalisées...
J'ai également essayer d'utiliser la méthode execute de DAO (
DB.Execute strsql, dbFailOnError... ) mais apparemment les symptômes
sont les même... exécution du code mais aucun ajouts/suppresions
d'enregistrements!

Commet pourrais je faire pour remédier à ce problème ??? (En passant
par les recordsets+ boucle while pour faire des update ou delete, ca
fonctionne mais on multiplie le temps de traitements par 2,chose qui
n'est pas envisageable pour l'application...)

Merci d'avance!!!

Voici une portion du code que j'utilise

Dim A As Access.Application
Dim .....
Set A = New Access.Application
A.OpenCurrentDatabase Emplacement_BD
'nettoyage de la table
A.DoCmd.RunSQL ("delete * from Nims_Final_Temp")
A.DoCmd.RunSQL ("insert...")
A.DoCmd.RunSQL ("insert...")
....
.....
A.DoCmd.RunSQL (autre_requete_sql)
A.CloseCurrentDatabase
A.Quit
Set A = Nothing