[VBA - ACCESS] Rendre (in)Visible une zone

Rendre (in)Visible une zone [VBA - ACCESS] - VB/VBA/VBS - Programmation

Marsh Posté le 04-10-2007 à 12:36:16    

Bonjour,
 
Je me creuse la tête depuis un moment pour rendre visible une zone de texte dans un formulaire.
Cette zone de texte doit être visible par rapport à une valeur spécifique contenue dans une zone de liste ( préalablement filtrée) ne contenant qu'une réponse.
 
Pour la compréhension, la Zone de liste " VISIBLE "donne comme réponse " OUI " ou " NON ".
SI dans VISIBLE, on obtient NON alors la zone de texte " TEXTE " devient invisible( et par conséquent on ne peut plus y inscrire du texte ).
 
j'ai fais ceci:
 
If Me.VISIBLE= "oui" Then
    Me.TEXTE.Visible = True
Else
    Me.TEXTE.Visible = False
End If
 
Or ceci ne fonctionne pas.
Cela reste toujours visible.
Et si je met:  
If Me.VISIBLE= "non" Then
    Me.TEXTE.Visible = False
Else
    Me.TEXTE.Visible = True
End If
 
cela reste toujour invisible.
 
Je l'ai mis sur Evenement en click dans " TEXTE ".
 
Merci pour votre aide

Reply

Marsh Posté le 04-10-2007 à 12:36:16   

Reply

Marsh Posté le 04-10-2007 à 12:44:47    

Bonjour,
si la liste donne OUI compare à "OUI" et non pas à "oui"
 
pourquoi ne pas le mettre sur un évènement de VISIBLE? (change ou after_update)
Cordialement

Message cité 1 fois
Message édité par seniorpapou le 04-10-2007 à 12:47:17
Reply

Marsh Posté le 04-10-2007 à 13:16:18    

seniorpapou a écrit :

Bonjour,
si la liste donne OUI compare à "OUI" et non pas à "oui"
 
pourquoi ne pas le mettre sur un évènement de VISIBLE? (change ou after_update)
Cordialement


 
 
J'ai effectué la correction de suite.
Je n'avais pas pensé à respecter la casse.
 
Par contre toujours coincé quand même.
En mettant ceci,
If Me.VISIBLE= "Oui" Then  
    Me.TEXTE.Visible = True  
Else  
    Me.TEXTE.Visible = False  
End If
 
Que la réponse soit " Oui" ou "Non" il me rend "TEXTE" visible.


Message édité par nelior le 04-10-2007 à 13:18:50
Reply

Marsh Posté le 04-10-2007 à 13:56:30    

Tu mets un point d'arrêt (F9) sur le If et quand tu exécutes tu regardes la valeur de tes variables pour comprendre d'où vient le problème.

Reply

Marsh Posté le 04-10-2007 à 14:18:42    

je suis dans vba, je met un point d'arret.
Mais après comment j'execute le code ?


Message édité par nelior le 04-10-2007 à 14:22:29
Reply

Marsh Posté le 04-10-2007 à 15:31:15    

Bonsoir,
Une petite remarque en passant, qui ne répondra probablement pas à ta question:
Visible est une propriété de Me, il est donc conseillé de donner un autre nom à ta zone de liste.
Cordialement


Message édité par seniorpapou le 04-10-2007 à 15:43:56
Reply

Marsh Posté le 04-10-2007 à 15:42:17    

En fait j'ai mis VISIBLE , TEXTE etc ... ici
Mais il faut compendre qu'en fait j'utilise d'autre nom.
J'ai mis çà juste pour la ( ma ) compréhension.


Message édité par nelior le 04-10-2007 à 15:48:24
Reply

Marsh Posté le 04-10-2007 à 15:44:35    

lol
 

Reply

Marsh Posté le 04-10-2007 à 16:25:32    

>nelior : ton code s'exécute généralement en lançant le formulaire.

Reply

Marsh Posté le 04-10-2007 à 17:28:13    

pourquoi me dire çà?

Reply

Marsh Posté le 04-10-2007 à 17:28:13   

Reply

Marsh Posté le 05-10-2007 à 10:47:11    

après le point d'arrêt, progresse en pas à pas (f8) pour savoir si tu rentres ou non dans la boucle if :)

Reply

Marsh Posté le 05-10-2007 à 13:57:01    

Quand je fais çà il ne se passe rien.
Je rajoute bien le point d'arrêt, mais après, le pas à pas ne fonctionne pas.

Reply

Marsh Posté le 05-10-2007 à 14:22:38    

comment ca ne marche pas ? :heink:

Reply

Marsh Posté le 05-10-2007 à 14:26:44    

Ben rien ne se passe.
Ai je un module a activer dans Visual basic .?

Reply

Marsh Posté le 05-10-2007 à 14:44:58    

absolument pas, si tu ne passes pas par le point d'arrêt, c'est que tu n'as pas mis le code au bon endroit...

Reply

Marsh Posté le 05-10-2007 à 15:34:19    

Je suis sincèrement désolé mais j'en suis là:
 
http://img299.imageshack.us/my.php [...] pashq2.jpg

Reply

Marsh Posté le 05-10-2007 à 15:35:24    

bon ben tu me vire ce afterupdate et tu mets change...

Reply

Marsh Posté le 05-10-2007 à 15:53:02    

Comme c'est cbo_dang est une zone de liste.
l'évènement sur changement n'existe pas.
j'ai bien remplacé dasn VB Afterupdate par change.
Aucun résultat.

Reply

Marsh Posté le 05-10-2007 à 15:59:45    

ben pourtant, listbox_change existe bel et bien...

Reply

Marsh Posté le 05-10-2007 à 16:35:35    

Dans access voici, les évènement que je peux faire avec une listox:
http://g.imageshack.us/g.php?h=525 [...] angjg0.jpg

Reply

Marsh Posté le 05-10-2007 à 16:59:44    

bon et donc quand tu modifies la valeur de la list_box, ton code se lance pas pour s'arrêter à la ligne een question ?

Reply

Marsh Posté le 05-10-2007 à 17:08:16    

rien de rien

Reply

Marsh Posté le 05-10-2007 à 17:09:38    

tu peux mettre ton fichier sur cjoint, qu'on puisse y jeter un oeil, ca me parait bizarre.

Reply

Marsh Posté le 05-10-2007 à 17:22:50    

Justement, je m'y préparais à le transmettre.
voici donc le lien:
http://cjoint.com/?kfrwPiTIcv

Reply

Marsh Posté le 05-10-2007 à 21:23:12    

bon y a plein de truc qui tourne pas chez moi... la liste cbo_dang, elle va prendre des valeurs quelque part ?
faut ajouter .value sinon ca peut pas trouver le "oui"...

Reply

Marsh Posté le 05-10-2007 à 22:10:32    

Bonsoir,
pour que les points d'arrèt soient pris en compte:
Menu Outils/Démarrage, la case utiliser les touches spéciales d'accès doit être cochée.  
tu coches, tu fermes ton appli et tu réouvres
 
Cordialement

Reply

Marsh Posté le 06-10-2007 à 07:46:37    

Bonjour,
un peu tiré par le cheveux, mais je crois que cela correspond à ce que tu veux faire
 
http://cjoint.com/?kghUyxj80u
 
Cordialement

Reply

Marsh Posté le 08-10-2007 à 09:20:00    

Bonjour,
 
Je ne sais quoi dire merci merci.
C'est sublimissimement trop fort.
 
J'étais passé par le .value. Cela n'avait pas marché.
Ce que je ne comprends pas c'est pourquoi je bloquais !
 
Heureusement que vous m'avez aidé, c'est des trucs comme çà bête et méchant qui me décourage.
 
Merci encore.

Reply

Marsh Posté le 08-10-2007 à 11:31:53    

Alors j'ai mis les modification comme il a été fait.
Or dans cbo_dang, j'obtiens comme valeur la même chose que dans cbo_dechet.
Et par adéquation, la zone texte cbo_bsddechet devient toujours invisible.
 
Puis-je avoir des explications sur les modifications apportées.
Merci.

Reply

Marsh Posté le 08-10-2007 à 13:17:51    

Bonjour,
As-tu regardé dans cbo_dechet: contenu     requête changée,
Nombre de colonnes
largeur de colonne
cbo_dang est une zone de texte
 
J'ai mis le:
 
Private Sub cbo_dechet_AfterUpdate()
'MsgBox cbo_dechet.Value & "  " & cbo_dechet.Text
    Forms!frm_at_enr!cbo_codedechet = Null
    Forms!frm_at_enr!cbo_codedechet.Requery
    Forms!frm_at_enr!cbo_dang = cbo_dechet.Value
    If Me.cbo_dang = "Oui" Then
        Me.cbo_bsddechet.Visible = True
    Else
        Me.cbo_bsddechet.Visible = False
    End If
     
End Sub
 
et retiré tous les :
If Me.cbo_dang = "Oui" Then
        Me.cbo_bsddechet.Visible = True
    Else
        Me.cbo_bsddechet.Visible = False
    End If
qui étaient ailleurs
 
En gros c'est tout
Bonne journée
 
 

Reply

Marsh Posté le 08-10-2007 à 13:26:39    

Pourtant niveau des modif j'ai bien compri çà.
Mais quand je le reporte sur ma Base.
 
le cbo_dang est ok mais cbo_codedechet ne donne plus rien.
Ainsi que cbo_coll et cbo_destin ne donne plus des résultat en conséquence du choix de cbo_dechet ( pour cbo_coll ) et cbo_coll (pour cbo_destin ).

Reply

Marsh Posté le 08-10-2007 à 13:33:11    

Renvoi le fichier stp
 
 
 
Il y a cela aussi:
 
Private Sub Form_Activate()
Me.cbo_dechet.SetFocus
 
On Error Resume Next
Me.cbo_dechet.Text = "--Sélectionnez le déchet--"
On Error GoTo 0
Me.cbo_dang = ""
End Sub
 
regarde dans les selects des champs concernés , il faut mettre cbo_dechet.text.(ce que je n'avais pas fait). La valeur affichée dans la fenêtre cbo_dechet se trouve dans cbo_dechet.text
 
la valeur oui ou non associée se trouve, elle dans cbo_dechet.value
 
si tu ne précises pas , par défaut on prend le contenue de .value
 
 
Si tu réussis à corriger ce n'est pas la peine de renvoyer le mdb

Message cité 1 fois
Message édité par seniorpapou le 08-10-2007 à 13:46:27
Reply

Marsh Posté le 08-10-2007 à 14:24:12    

Heu, je vais peut-être dire une connerie mais :  

Code :
  1. Visible


n'est pas une propriété du formulaire ? Auquel cas, Me.Visible renvoie la valeur de la propriété 'Visible' du formulaire, et non la valeur du champs 'VISIBLE' !
Avec quelque chose comme

Code :
  1. Me.VISIBLE.value


Ca n'irait pas mieux ?
 
NB: j'avoue : je n'ai pas lu l'intégralité du topic ! Du coup, en lisant les derniers posts, j'ai un peu l'impression d'être à côté de la plaque :o


Message édité par kao98 le 08-10-2007 à 14:25:57

---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 17-10-2007 à 09:29:39    

seniorpapou a écrit :

Bonjour,  
un peu tiré par le cheveux, mais je crois que cela correspond à ce que tu veux faire  
 
http://cjoint.com/?kghUyxj80u  
 
Cordialement


 
bonjour,
je reviens aubout de quelque jours.
Je n'ai pas eu le temps de trop approfondir, j'étais pris par des choses plus urgente.
Quoi qu'il en soit, les combo box : cbo_coll et cbo_destin donnent tout les choix possible au lieu de choix en adéquation avec le précédent ( cbo_dechet pour cbo_coll, et cbo_coll pour cbo_destin ).
Ce qui pause un problème après dans la rentrée d'information.
Il suffit que l'utilisateur se trompe dans la liste.
J'ai regardé pourtant les liens au niveau des données/contenu sont bonne ainsi que dans évènements/ après MAJ.
 
Je ne comprends pas.
Estce que la modification effectué par vous ,aurait bloqué ou changé quelquechsoe dans ce processus.

Reply

Marsh Posté le 17-10-2007 à 10:14:32    

Bonjour,
regarde mon dernier post du 8/10 à 13h33
il précise que je n'avais pas regardé l'influence du changement sur les autres champs.
 
stp envoie ton fichier , je vais regarder
Cordialement

Reply

Marsh Posté le 17-10-2007 à 11:00:08    

Voici le lien
http://www.send-large-file.com/tel [...] c17c4b7fe1
 
Merci encore pour votre aide

Reply

Marsh Posté le 17-10-2007 à 12:05:24    

Re,
Dans les propriétés de cbo_codedechet, tu remplaces la propriété contenu par:
SELECT tbl_at_dechet.code_nomenclature FROM tbl_at_dechet GROUP BY tbl_at_dechet.code_nomenclature, tbl_at_dechet.dechet HAVING (((tbl_at_dechet.dechet)=Formulaires!frm_at_enr!cbo_dechet.text)) ORDER BY tbl_at_dechet.code_nomenclature;  
 
cordialement

Reply

Marsh Posté le 17-10-2007 à 12:22:15    

re,re,
j'ai regardé partout et je n'ai pas trouvé l'endroit où tu sélectionnes les données pour cbo_coll en fonction de de cbo_dechet


Message édité par seniorpapou le 17-10-2007 à 12:27:29
Reply

Marsh Posté le 17-10-2007 à 12:31:52    

J'ai effectué la correction.
Cela n'a rien changé.
Le code nomenclature reste vide.
ainsi que les autre cbo ne change pas.
 
Je pense que le problème provient du faite que dans cbo_dechet cest la 2eme colonne qui est lié, ce qui empèche cbo_codedechet de se mettre à jour.
vu que cbo_dechet retourne comme velaure oui un non.
cbo_codedechet attend comme valeur le nom du dechet.


Message édité par nelior le 17-10-2007 à 12:36:05
Reply

Marsh Posté le 17-10-2007 à 13:11:53    

voici le code qui modifie la nomenclature:
 
attention!!! je n'ai pas changé le nom du mdb
http://cjoint.com/?krnldR50jw
Si tu peux me préciser à quel endroit tu définis coll en fonction de dechet cela m'arrangerait
Cordialement


Message édité par seniorpapou le 17-10-2007 à 13:12:43
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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