Pb refresh avec un sous formulaire sous access (VB6)

Pb refresh avec un sous formulaire sous access (VB6) - VB/VBA/VBS - Programmation

Marsh Posté le 27-07-2006 à 20:00:56    

Bonjour à tous,
 
 
Je développe actuellement  en VB6 un formulaire sous access pour faciliter la gestion d'une base de donnée.
J'ai un problème de "refresh" en fait plus précisemment d'actualisation d'un sous formulaire...
Je m'explique.
 
Mon formulaire : form contient un sous formulaire : sousForm ainsi qu'une zone de saisie texte : saisie1.
sousForm à pour source une requete : requete1 qui est "en dur" dans la base access (onglet requete -> requete1)
 
Lorsque je tape dans la zone de saisie du fomulaire form (sub saisie1_change) je modifie le code de requete1 afin de prendre en compte la nouvelle valeur dans la zone de saisie (en gros la requete change dès qu'on fait varier la  valeur de saisie) voilà le code :

Code :
  1. Private sub saisie1_change()
  2.        CurrentDbQueryDefs("requete1" ).SQL = "Select * from ...... where champ1 = " & saisie1.Text & ";"
  3.        sousForm.requery
  4. end sub


 
Lors du premier changement le sous formulaire s'affiche convenablement mais ensuite malgré le changement du code de  requete1 (si on execute la requete hors formulaire -> dans l'onglet requete de access le résultat souhaité s'affiche  :ouch: ) l'affichage n'est pas mis à jour comme si la méthode requery ne fonctionnait pas. Le problème ne vient donc pas de requete1 a priori...
 
Quelq'un à t-il déjà rencontré ce problème ? Faut-il rouvrir et fermer le formulaire ? Merci de m'aider au plus vite n'hésitez pas si je n'ai pas été clair.
 

Reply

Marsh Posté le 27-07-2006 à 20:00:56   

Reply

Marsh Posté le 27-07-2006 à 20:34:29    

Bonsoir,
as-tu pensé à utiliser un autre contrôle qu'un textbox? (même si ça parait étrange ^^)

Reply

Marsh Posté le 27-07-2006 à 20:41:22    

les gens roots a écrit :

Bonsoir,
as-tu pensé à utiliser un autre contrôle qu'un textbox? (même si ça parait étrange ^^)


 
J'avais pensé à utiliser un listbox mais de toute facon saisie1 est un contrôle indépendant donc je doute que le problème vienne de là  :jap:  
Le problème doti probablement venir du sous formulaire ou de ses propriétés .... Peut être que j'utilise mal requery ou qu'il existe une autre solution pour rafraichir le sous formulaire.


Message édité par rital_5_4 le 27-07-2006 à 20:43:19
Reply

Marsh Posté le 28-07-2006 à 08:51:25    

Tiens je viens de penser à un truc: si tu réinitialisais ta query une fois la requète effectuée, ex:
 
' CurrentDbQueryDefs("requete1" ).SQL = "Select * from ....where  champ1 = " & saisie1.Text & ";"  
' CurrentDbQueryDefs = new query

Reply

Marsh Posté le 28-07-2006 à 08:52:13    

les gens roots a écrit :

Tiens je viens de penser à un truc: si tu réinitialisais ta query une fois la requète effectuée, ex:
 
' CurrentDbQueryDefs = new query("requete1" )
' CurrentDbQueryDefs("requete1" ).SQL = "Select * from ....where  champ1 = " & saisie1.Text & ";"  


Message édité par les gens roots le 28-07-2006 à 08:52:54
Reply

Marsh Posté le 29-07-2006 à 09:33:40    

je viens de faire quelques tests, en faite lorsqu'on ouvre le formulaire form, la requete1 remplie bien le sous formulaire sousForm mais ensuite rien ne se passe lorsque la méthode requery est executée et ce malgré le fait que requete1 soit bien à jour.
Le plus étrange c'est que si je crée un sous formulaire "externe" (dans onglet -> formulaire) lié à requete1 et que je l'ouvre dans une autre fenetre dès que la valeur de mon champ de saisie change tout s'affiche normalement :pt1cable: .  
Quelq'un à t-il déjà eu ce problème ? Peut-on inclure une fenetre dans un formulaire ou la placer à un endroit voulu ?
 
Merci de m'aider au plus vite !


Message édité par rital_5_4 le 29-07-2006 à 09:37:33
Reply

Marsh Posté le 29-07-2006 à 14:22:49    

Bonjour,
as-tu regardé les mèthodes Requery et refresh?
cordialement

Reply

Marsh Posté le 03-08-2006 à 17:34:44    

Salut,
C'est un bug sur les sous formulaire
ton sous formulaire perd le recordsource.
apres ton code et avant le requery essaye me.recordsource=me.recordsource
Cordialement
exemple :
Private sub saisie1_change()    
   CurrentDbQueryDefs("requete1" ).SQL = "Select * from ...... where champ1 = " & saisie1.Text & ";"        
sousform.recordsource=sousform.recordsource
sousForm.requery
end sub


Message édité par micke21 le 03-08-2006 à 17:53:51
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed