Bug VB6 ???

Résolu
Signaler
Messages postés
26
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
15 septembre 2005
-
Messages postés
26
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
15 septembre 2005
-
Bonjour,



J'ai un controle adodc et un datagrid sur une feuille. J'ai des champs
de saisie qui me permettent d'ajouter des données dans ma base access.
Quand je valide mes changements, le datagrid doit "recharger" les
données.

Pour cela j'utilise adodc1.refresh



J'ai trois types d'action sur la base : ajout/modification/suppression



La mise a jour se fait sans probleme quand je modifie ou supprime un enregistrement, mais pas quand je l'ajoute.



Ca pourrait venir de mon code, sauf que quand j'execute le code en mode
"pas a pas" ca fonctionne a 100%, mon datagrid affiche bien la nouvelle
donnée saisie.



Qq un a t-il deja eu ce genre de probleme : marche jamais en execution normale mais marche toujours en pas a pas?



Merci de m'eclairer la dessus...



Cordialement,

Mathieu.

10 réponses

Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
74
un DoEvents juste avant le raffraichissement (plus radical, un Sleep avec une durée de quelques millisecondes..)


<HR>
'# Partie déclaration
Private Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)

<HR>
'# dans le code
xxx.Update

Sleep 750 '# régler ici la durée en millisecondes

xxx.Refresh

<HR>

Amusez-vous !
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS - MVP Visual Basic
3
Messages postés
69
Date d'inscription
lundi 3 janvier 2005
Statut
Membre
Dernière intervention
15 septembre 2005

Salut, moi je suis en VBA et quand j'utilise .refresh ça marche au
petit bonheur la chance tandis qu'avec .recalc ça fonctionne à tous les
coups. Regarde si tu dispose de .recalc
0
Messages postés
26
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
15 septembre 2005

Non, pas de recalc sous vb6.

Merci quand meme,

Mathieu.
0
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
74
essaies .Reload

Amusez-vous !
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS - MVP Visual Basic
0
Messages postés
26
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
15 septembre 2005

Bonjour,

ne prennez pas ca mal, mais donnez une solution si vous pensez qu'elle est bonne lol

Reload n'existe pas pas non plus. Si c'est pour inventer des mots je peux trés bien le faire tout seul



Si qq un a une vraie reponse, je suis tjrs prenneur.



Cdt,

Mathieu.
0
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
74
Sub ReBind()
Membre de MSDataGridLib.DataGrid
Réinitialise la grille à partir de la table de source de données

voilà, ca devrait aller....

a voir ce qui coince, a savoir : les données ne sont elles pas récupérées
ou les données ne sont elles pas affichées.... (auquel cas fais un Grid1.Refresh)

le forum a un bug et enlève parfois le msg complet, parfois une phrase. En l'occurence, ma dernière phrase a été otée... Elle disais de regarder une fonction qui porterait un nom dans le genre
pour info, et si c'est bien la solution a ton probleme, ca m'a pris cinq minutes en utilisant l'explorateur d'objets (F2). Donc si c'est pour etre désagréable, tu peux te contenter de t'en servir, ca t'eviteras d'aller agacer les gens sur le Forum.

Amusez-vous !
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS - MVP Visual Basic
0
Messages postés
26
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
15 septembre 2005

Cher Renfield,



j'ai pas été desagréable, y a un "lol" et un gros smiley. Si on peut plus rigoler.... Faut se detendre ;)

Ok, ta phrase a été coupée par un bug, mais j'etais pas censé le savoir.



Ensuite, tu as mit 5 min a trouver la réponse. Y a surement un paquet
de choses que tu ferais plus rapidement que moi, c'est d'ailleurs la
raison pour laquelle je pose des questions sur le forum.



Mais pour un revenir au plus important, ca marche toujours pas "a
vitesse normale" alors que ca fonctionne en pas a pas, donc je comprend
pas.



Merci,



Mathieu.








0
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
74
vraiment étrange...

la mise a jour a peut etre pas le temps d'être accomplie alors que tu demande a ré-afficher la chose....


faudrait ajouter un Sleep qq chose pour faire patienter un peu, au moins pour le test.

me suis emporté un tit peu, j'avoues, bref.

Amusez-vous !
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS - MVP Visual Basic
0
Messages postés
26
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
15 septembre 2005

Re,



C'est bien un probleme de temps : j'ai mit une message box avant le adodc1.refresh, et ca marche.

Donc, au lieu de regler le probleme je le contourne : je vais afficher un joli message "Votre entrée est ajoutée"

Comme ca le temps que le type clic sur "Ok", la mise a jour a bien le temps de se faire lol



Mais ca serait quand meme bien de trouver une solution plus "pro"



En tout cas merci,



Mathieu.



PS : je met pas "réponse acceptée" parce que nous n'avons découvert que le probleme, pas la solution
0
Messages postés
26
Date d'inscription
jeudi 24 juillet 2003
Statut
Membre
Dernière intervention
15 septembre 2005

Super, ca marche bien. Pour info, a
450 ca passe pas, a 500 ca passe. J'ai pas le temps (et l'envie lol)
d'aller chercher la valeur exacte. Mais ca depend surement de la
machine, dc je vais prendre un peu plus de marge.



En tout cas merci pour la solution.



Mathieu.
0