Vba .visble

Résolu
codortis -  
acuao Messages postés 1121 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai fait des formulaires dans lesquels je cache des champs (on current) qui ne s'ouvrent qu'en fonction du choix fait via un champs x ( x on click )
jusqu'ici tout marche.
Je veux en refaire un mais access refuse mon .visible (il ne me propose que .value dans les v) hors les autres fonctionnent toujours !
Quelqu'un aurait-il une idée du pourquoi du comment ?

3 réponses

acuao Messages postés 1121 Date d'inscription   Statut Membre Dernière intervention   259
 
Bonjour,

fais voir ton bout de code stp
0
codortis
 
Voici les .visible qui fonctionnent derrière un de mes formulaire

Private Sub Form_Current()

If ref_rt_ta = 1 Then
sf_emp_pap.Visible = True
sf_emp_elec.Visible = False
ElseIf ref_rt_ta = 2 Or ref_rt_ta = 3 Then
sf_emp_pap.Visible = False
sf_emp_elec.Visible = True
Else
sf_emp_pap.Visible = False
sf_emp_elec.Visible = False
End If

If ref_rt_type_dossier = 1 Then
ref_p_nom.Visible = True
ref_p_prenom.Visible = True
ref_intitule.Visible = False
Else
ref_intitule.Visible = True
ref_p_nom.Visible = False
ref_p_prenom.Visible = False
End If
End Sub

Private Sub Modifiable287_AfterUpdate()
Modifiable287.Requery
If ref_rt_type_dossier = 1 Then
ref_p_nom.Visible = True
ref_p_prenom.Visible = True
ref_intitule.Visible = False
Else
ref_intitule.Visible = True
ref_p_nom.Visible = False
ref_p_prenom.Visible = False
End If
End Sub

Private Sub Modifiable277_AfterUpdate()
If ref_rt_ta = 1 Then
sf_emp_pap.Visible = True
sf_emp_elec.Visible = False
ElseIf ref_rt_ta = 2 Or ref_rt_ta = 3 Then
sf_emp_pap.Visible = False
sf_emp_elec.Visible = True
Else
sf_emp_pap.Visible = False
sf_emp_elec.Visible = False
End If
End Sub
0
acuao Messages postés 1121 Date d'inscription   Statut Membre Dernière intervention   259
 
heu j'avoue ne pas trop savoir, en fait je vais du vb.net mais sans acces

ça ne se fait peut être pas avec acces mais as tu essayé me faire
Me.sf_emp_elec.Visible = False?
0
codortis
 
merci quand même ! en tout cas j'essaie ça lundi à la première heure !!
0
acuao Messages postés 1121 Date d'inscription   Statut Membre Dernière intervention   259
 
le Me. c'est pour dire qu'on parle bien de la fenêtre active en vb.net
0
codortis
 
ouais merci mais à mon avis ça ne vient pas de là parce que le code que je t'ai mis là ce sont tous les .visible qui marchent. Voilà tout le VBA peut être que j'ai fait quelque chose qui a eu pour effet qu'il n'accepte plus de .visible (il dit que .visible ne correspond pas à la méthode) si je veux ajouter

(on current)
ref_tri_precision.visible=false
ref_an_tri.visible=false
(ref_rt_destination_finale_click)
if ref_rt_destination_finale=1 then
ref_tri_precision.visible=true
ref_an_tri.visible=true
end if

Sinon voilà tout ce qui est fait en VBA et qui marche.
(Peut être que ça peut aider mais il y a des onglets dans mon formulaire)

Option Compare Database


Private Sub Form_Current()

If ref_rt_ta = 1 Then
sf_emp_pap.Visible = True
sf_emp_elec.Visible = False
ElseIf ref_rt_ta = 2 Or ref_rt_ta = 3 Then
sf_emp_pap.Visible = False
sf_emp_elec.Visible = True
Else
sf_emp_pap.Visible = False
sf_emp_elec.Visible = False
End If

If ref_rt_type_dossier = 1 Then
ref_p_nom.Visible = True
ref_p_prenom.Visible = True
ref_intitule.Visible = False
Else
ref_intitule.Visible = True
ref_p_nom.Visible = False
ref_p_prenom.Visible = False
End If
End Sub



Private Sub Modifiable277_AfterUpdate()
If ref_rt_ta = 1 Then
sf_emp_pap.Visible = True
sf_emp_elec.Visible = False
ElseIf ref_rt_ta = 2 Or ref_rt_ta = 3 Then
sf_emp_pap.Visible = False
sf_emp_elec.Visible = True
Else
sf_emp_pap.Visible = False
sf_emp_elec.Visible = False
End If
End Sub

Private Sub Modifiable287_AfterUpdate()
Modifiable287.Requery
If ref_rt_type_dossier = 1 Then
ref_p_nom.Visible = True
ref_p_prenom.Visible = True
ref_intitule.Visible = False
Else
ref_intitule.Visible = True
ref_p_nom.Visible = False
ref_p_prenom.Visible = False
End If
End Sub


Private Sub modifiable287_NotInList(NewData As String, Response As Integer)
Dim rst As DAO.Recordset
If MsgBox("L'élément [" & NewData & "] ne figure pas dans la liste. Voulez-vous l'ajouter ?", vbQuestion + vbYesNo) = vbYes Then
Set rst = CurrentDb.OpenRecordset("t_type_dossier")
rst.AddNew
rst!td_nom = NewData
rst.Update
rst.Close
Set rst = Nothing
End If
Response = acDataErrAdded
End Sub

Private Sub Modifiable317_AfterUpdate()
Me.Requery
End Sub

Private Sub Modifiable317_NotInList(NewData As String, Response As Integer)
Dim rst As DAO.Recordset
If MsgBox("L'élément [" & NewData & "] ne figure pas dans la liste. Voulez-vous l'ajouter ?", vbQuestion + vbYesNo) = vbYes Then
Set rst = CurrentDb.OpenRecordset("t_langue")
rst.AddNew
rst!lang_nom = NewData
rst.Update
rst.Close
Set rst = Nothing
End If
Response = acDataErrAdded
End Sub
0
codortis
 
J'ai la solution !!! Enfin j'ai trouvé mon erreur : En fait j'avais fait un formulaire et ensuite des copies pour d'autre formulaires donc le nom de mon champs n'était plus ref_tri_precision mais modifiable_275 c'est pour cela qu'il n'acceptait pas le .visible !!! Encore merci d'avoir réfléchi à mon mon problème ;-)
0
acuao Messages postés 1121 Date d'inscription   Statut Membre Dernière intervention   259
 
content que tu aies trouvé la solution de ton problème :)

peux tu passer le sujet en résolu?
0
acuao Messages postés 1121 Date d'inscription   Statut Membre Dernière intervention   259
 
Oui en effet, tu as raison...
0