Rs.Update avec ADO !!

Résolu
Zeflan
Messages postés
4
Date d'inscription
mercredi 1 novembre 2000
Statut
Membre
Dernière intervention
2 décembre 2004
- 23 nov. 2004 à 15:17
Zeflan
Messages postés
4
Date d'inscription
mercredi 1 novembre 2000
Statut
Membre
Dernière intervention
2 décembre 2004
- 23 nov. 2004 à 19:48
Heeeelppppp me pliiiize !!

J'vous explike vite fait le soucis :
J'ai une base access que je gere via une interface concoctée via VB6.

Quand je claque un rs.addnew suivi d'un rs.update, par moment l'enregistrement dans la base ne se fait pas. Je précise que juste apres l'enregistrement, je fais un rs.Close et ensuite je réouvre la table via rs.open etc.. cf le code.

Apres qqes recherches sur le net g trouvé un chti ricain qui disait avoir le meme probleme. De facon simplifiée, il me faudrait une commande afin de REFRESH la base pour qu'il prenne en compte la ligne que je lui ai demandé d'ajouter.

cf le code :
base_projet_record.Open "Screen", base_projet, adOpenStatic, adLockOptimistic
base_projet_record.AddNew
base_projet_record("Height") = objitem.ScreenHeight
base_projet_record("Width") = objitem.ScreenWidth
base_projet_record.Update
base_projet_record.Close
base_projet_record.Open "SELECT * FROM Screen WHERE Height=" & var_Height & " AND Width=" & var_Width, varConnection, adOpenStatic, adLockOptimistic
IDScreen = base_projet_record.Fields(0)
base_projet_record.Close

J'ai bien essayé de mettre une tempo après l'update via l'API Sleep dans Kernel32 mais meme ca, ca marche pas terrible..

qqun a t il une idée ?

Thx a lot
>:)

3 réponses

Zeflan
Messages postés
4
Date d'inscription
mercredi 1 novembre 2000
Statut
Membre
Dernière intervention
2 décembre 2004

23 nov. 2004 à 19:48
VOILA LA SOLUCE !!

Merci quand meme Dark ;) ct bien essayé mais bon g fini par trouver..

Pour tout le monde : fo savoir que le rs.update met d'abord en cache puis sauvegarde sauf si vous faites un rs.close et que vous enchainez cash sur une autre requete . Dans ce cas la il vous faut mettre un RS.REQUERY pour resynchroniser la base avec l'update .

ce qui donne avec le meme code que j'avais utilisé au dessus :

base_projet_record.Open "Screen", base_projet, adOpenStatic, adLockOptimistic
base_projet_record.AddNew
base_projet_record("Height") = objitem.ScreenHeight
base_projet_record("Width") = objitem.ScreenWidth
base_projet_record.Update
'//////////////////////////////////////
base_projet_record.Requery
'//////////////////////////////////////
base_projet_record.Close
base_projet_record.Open "SELECT * FROM Screen WHERE Height=" & var_Height & " AND Width=" & var_Width, varConnection, adOpenStatic, adLockOptimistic
IDScreen = base_projet_record.Fields(0)
base_projet_record.Close

Merci ter tous @+
>:)
3
cs_DARKSIDIOUS
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Membre
Dernière intervention
4 mars 2013
131
23 nov. 2004 à 16:22
Fait un base_projet_record.refresh après le update... faut essayer ;)
_______________________________________

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
0
crenaud76
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
28
23 nov. 2004 à 17:42
Tu peux aussi essayer avec un AdOpenDynamic au lieu du adOpenStatic !

Christophe R.
0