Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1552 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 



 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

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

n°1618798
nelior
Posté le 04-10-2007 à 12:36:16  profilanswer
 

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

mood
Publicité
Posté le 04-10-2007 à 12:36:16  profilanswer
 

n°1618802
seniorpapo​u
Posté le 04-10-2007 à 12:44:47  profilanswer
 

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
n°1618823
nelior
Posté le 04-10-2007 à 13:16:18  profilanswer
 

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
n°1618844
tegu
Posté le 04-10-2007 à 13:56:30  profilanswer
 

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.

n°1618875
nelior
Posté le 04-10-2007 à 14:18:42  profilanswer
 

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
n°1618943
seniorpapo​u
Posté le 04-10-2007 à 15:31:15  profilanswer
 

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
n°1618957
nelior
Posté le 04-10-2007 à 15:42:17  profilanswer
 

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
n°1618961
seniorpapo​u
Posté le 04-10-2007 à 15:44:35  profilanswer
 

lol
 

n°1619001
tegu
Posté le 04-10-2007 à 16:25:32  profilanswer
 

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

n°1619092
nelior
Posté le 04-10-2007 à 17:28:13  profilanswer
 

pourquoi me dire çà?

mood
Publicité
Posté le 04-10-2007 à 17:28:13  profilanswer
 

n°1619486
jpcheck
Pioupiou
Posté le 05-10-2007 à 10:47:11  profilanswer
 

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

n°1619655
nelior
Posté le 05-10-2007 à 13:57:01  profilanswer
 

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.

n°1619691
jpcheck
Pioupiou
Posté le 05-10-2007 à 14:22:38  profilanswer
 

comment ca ne marche pas ? :heink:

n°1619697
nelior
Posté le 05-10-2007 à 14:26:44  profilanswer
 

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

n°1619726
jpcheck
Pioupiou
Posté le 05-10-2007 à 14:44:58  profilanswer
 

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...

n°1619780
nelior
Posté le 05-10-2007 à 15:34:19  profilanswer
 

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

n°1619784
jpcheck
Pioupiou
Posté le 05-10-2007 à 15:35:24  profilanswer
 

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

n°1619804
nelior
Posté le 05-10-2007 à 15:53:02  profilanswer
 

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.

n°1619812
jpcheck
Pioupiou
Posté le 05-10-2007 à 15:59:45  profilanswer
 

ben pourtant, listbox_change existe bel et bien...

n°1619839
nelior
Posté le 05-10-2007 à 16:35:35  profilanswer
 

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

n°1619865
jpcheck
Pioupiou
Posté le 05-10-2007 à 16:59:44  profilanswer
 

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 ?

n°1619874
nelior
Posté le 05-10-2007 à 17:08:16  profilanswer
 

rien de rien

n°1619877
jpcheck
Pioupiou
Posté le 05-10-2007 à 17:09:38  profilanswer
 

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

n°1619889
nelior
Posté le 05-10-2007 à 17:22:50  profilanswer
 

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

n°1619992
jpcheck
Pioupiou
Posté le 05-10-2007 à 21:23:12  profilanswer
 

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"...

n°1619999
seniorpapo​u
Posté le 05-10-2007 à 22:10:32  profilanswer
 

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

n°1620026
seniorpapo​u
Posté le 06-10-2007 à 07:46:37  profilanswer
 

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

n°1620385
nelior
Posté le 08-10-2007 à 09:20:00  profilanswer
 

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.

n°1620431
nelior
Posté le 08-10-2007 à 11:31:53  profilanswer
 

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.

n°1620495
seniorpapo​u
Posté le 08-10-2007 à 13:17:51  profilanswer
 

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
 
 

n°1620502
nelior
Posté le 08-10-2007 à 13:26:39  profilanswer
 

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 ).

n°1620504
seniorpapo​u
Posté le 08-10-2007 à 13:33:11  profilanswer
 

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
n°1620544
kao98
...
Posté le 08-10-2007 à 14:24:12  profilanswer
 

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
n°1625168
nelior
Posté le 17-10-2007 à 09:29:39  profilanswer
 

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.

n°1625206
seniorpapo​u
Posté le 17-10-2007 à 10:14:32  profilanswer
 

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

n°1625265
nelior
Posté le 17-10-2007 à 11:00:08  profilanswer
 

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

n°1625317
seniorpapo​u
Posté le 17-10-2007 à 12:05:24  profilanswer
 

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

n°1625352
seniorpapo​u
Posté le 17-10-2007 à 12:22:15  profilanswer
 

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
n°1625364
nelior
Posté le 17-10-2007 à 12:31:52  profilanswer
 

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
n°1625391
seniorpapo​u
Posté le 17-10-2007 à 13:11:53  profilanswer
 

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
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 

Sujets relatifs
Debuter avec Access[Access] lancement auto via Batch et Mot de passe?
migration base access odbc/sql serexporter une bd access en fichier texte en vb6
Synchro de bases access sous accessVBA ACCESS pb fermeture application
Pilotage de l'archivage Outlook avec VBAsuivi de version de programmes access reliés à une base serveur
[Access] Generer des lignes dans une Query 
Plus de sujets relatifs à : [VBA - ACCESS] Rendre (in)Visible une zone


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR