Bug VB6 ???

Résolu
AbsolutBeauty Messages postés 26 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 15 septembre 2005 - 28 juin 2005 à 15:56
AbsolutBeauty Messages postés 26 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 15 septembre 2005 - 29 juin 2005 à 17:24
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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 juin 2005 à 16:48
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
omsylv Messages postés 69 Date d'inscription lundi 3 janvier 2005 Statut Membre Dernière intervention 15 septembre 2005
28 juin 2005 à 16:06
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
AbsolutBeauty Messages postés 26 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 15 septembre 2005
28 juin 2005 à 16:13
Non, pas de recalc sous vb6.

Merci quand meme,

Mathieu.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
28 juin 2005 à 17:18
essaies .Reload

Amusez-vous !
Renfield - thomas_reynald@msn.com
Admin CodeS-SourceS - MVP Visual Basic
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
AbsolutBeauty Messages postés 26 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 15 septembre 2005
29 juin 2005 à 09:48
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
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 juin 2005 à 10:00
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
AbsolutBeauty Messages postés 26 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 15 septembre 2005
29 juin 2005 à 15:50
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
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 juin 2005 à 16:20
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
AbsolutBeauty Messages postés 26 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 15 septembre 2005
29 juin 2005 à 16:40
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
AbsolutBeauty Messages postés 26 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 15 septembre 2005
29 juin 2005 à 17:24
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
Rejoignez-nous