Sujet : [resolu][vb]opérations Au Chargement D'une Feuille

Boujour !

Cette fois-ci je souhaite décharger une feuille à son chargement  :blink:  :wacko:  :blink:

Je m'explique : je traite chaque feuille à peu près comme un module, c'est-à-dire que toute les opérations concernant la feuillle et son affichage se trouve dans la feuille.
Mon problème est que sur le form_load()  j'initialise toute ma feuille, surtout les grilles qui sont le résultat de requêtes.
Seulement si il n'y a aucun tuple à afficher, j'aimerais afficher un MsgBox et décharger la feuille car il n'y aura aucune opération possible dessus.

J'espère avoir été clair.

Le setFocus() ne fonctionne pas non plus sur un form_load(), mais bon ça c'est "normal" vu que la page n'est pas chargée.

Si vous avez une idée...

----------------------------------------------------------------------------------------------------------------------------
On peut être intelligent toute sa vie et stupide un instant.

WWW

Re : [resolu][vb]opérations Au Chargement D'une Feuille

Il n'y a pas moyen que tu fasses les vérifications nécessaires avant de charger la feuille ? Auquel cas, tu ne chargerais la feuille que si les conditions nécessaires à son affichage sont remplies ; sinon tu affiches ton message d'erreur.

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

Re : [resolu][vb]opérations Au Chargement D'une Feuille

Oui mais non ! Car il faudrait que je fasse 2 fois la même requête (qui est assez lourde) : 1 fois pour savoir si il y a des enregistrements ( si oui je charge la page), et 1 autre fois pour récupérer le recordset ...

en plus je perd mon systeme de "modules"

----------------------------------------------------------------------------------------------------------------------------
On peut être intelligent toute sa vie et stupide un instant.

WWW

Re : [resolu][vb]opérations Au Chargement D'une Feuille

Ou sinon, sur le form_load(), tu fais tes requetes et tu généres toi meme une erreur si tu ne recupères pas de tuples, qui stope le reste du chargement.

Je pense qu'il doit t'etre possible de lever tes propres erreurs, de les fabriquer et ainsi, si 0 tuples, tu lèves l'erreur, tu affiches ton message et tu quittes la feuille.

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

Re : [resolu][vb]opérations Au Chargement D'une Feuille

tu ne fais pas 2 fois la meme requete, puisque celle de verification serait faite avant de lancer ta feuille. Si ton COUNT vaut autre chose que 0, tu n'as pas besoin de recompter quand tu arrives sur ta feuille puisque c'est deja fait, une simple lecture de tes données suffit.

=> ca fait donc 2 requetes au total.

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

Re : [resolu][vb]opérations Au Chargement D'une Feuille

L'erreur je l'ai, le truc c'est comment (ou à quel moment) décharger la feuille !

PS : pour avoir le nombre d'enregistrement d'une requete : RecordSet.RecordCount

----------------------------------------------------------------------------------------------------------------------------
On peut être intelligent toute sa vie et stupide un instant.

WWW

Re : [resolu][vb]opérations Au Chargement D'une Feuille

Et bien je pense que tu devrais pouvoir decharger ta feuille quand ton erreur est levée, si tu as l'erreur. Un simple UnLoad Me devrait suffire.

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

Re : [resolu][vb]opérations Au Chargement D'une Feuille

Et bien non ! smile Le "Unload Me" est inactif sur le Form_load()

----------------------------------------------------------------------------------------------------------------------------
On peut être intelligent toute sa vie et stupide un instant.

WWW

Re : [resolu][vb]opérations Au Chargement D'une Feuille

Il doit surement exister une autre fonction qui permet de forcer la fermeture (comme le exit(0); en C). Je ne la connais pas mais y'a surement moyen. Et si y'a pas moyen, fait comme je t'ai dit la haut avec une requete de comptage (une vraie "SELECT COUNT(...." ).

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

Re : [resolu][vb]opérations Au Chargement D'une Feuille

Non je ne veux pas mélanger les codes : donc pas de requete qui ne concerne pas la feuille en cours.
J'ai opter pour une désactivation de tous les controles de la feuille sauf le bouton "Quitter". Ca force l'utilisateur à faire un click pour rien mais bon ...

----------------------------------------------------------------------------------------------------------------------------
On peut être intelligent toute sa vie et stupide un instant.

WWW

Re : [resolu][vb]opérations Au Chargement D'une Feuille

Tu n'as pas moyen de faire ta vérification avant le form_load() ?
Je ne suis pas assez bon en VB pour être plus précis, mais il me semble qu'en Delphi ce genre de chose est possible notamment quand tu lances une appli (par exemple pour verifier qu'elle ne soit pas déjà lancée).

Etant donné que l'API reste le même, si Delphi le permet, la chose doit etre possible en VB aussi...Renseignes toi wink

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

12

Re : [resolu][vb]opérations Au Chargement D'une Feuille

Et le unload_me sur le activate_form

Un intellectuel assis va moins loin qu'un con qui marche

Re : [resolu][vb]opérations Au Chargement D'une Feuille

AHHHHHHHHHHHHHH !!! MERCI ! :wub:

Ca marche nikel. Je peux même faire des SetFocus si je veux !!! smile

Je recapitule :
- je créé un booleen "erreur" comme variable globale de la page
- au début du Form_Load() je l'initialise à False
- dans mes procédures d'initialisation, si il y a une erreur je le met à True
- et j'utilise le code suivant :

Private Sub Form_Activate()
    If erreur = True Then
        Unload Me
    End If
End Sub
----------------------------------------------------------------------------------------------------------------------------
On peut être intelligent toute sa vie et stupide un instant.

WWW