4rocky4
Messages postés55Date d'inscriptionmercredi 1 novembre 2006StatutMembreDernière intervention16 avril 2009
-
7 févr. 2008 à 15:43
4rocky4
Messages postés55Date d'inscriptionmercredi 1 novembre 2006StatutMembreDernière intervention16 avril 2009
-
8 févr. 2008 à 12:14
Bonjour,
Je voudrais verrouiller tous les champs de mon formulaire de consultation sauf UN, une liste déroulante
Pour verrouiller tous les champs, j'entre ce code :
For Each Ctl In Me.Controls
If Ctl.ControlType = acTextBox Then
Ctl.Locked = True
Ctl.Enabled = False
ElseIf Ctl.ControlType = acComboBox Then
Ctl.Locked = True
Ctl.Enabled = False
End If
Next Ctl
Et je voudrais donc pouvoir autoriser l'accès et la saisie d'un champ.
Je pensais donc mettre ce code :
For Each Ctl In Me.Controls
If Ctl.ControlType = acTextBox Then
Ctl.Locked = True
Ctl.Enabled = False
ElseIf Ctl.ControlType = acComboBox Then
Ctl.Locked = True
Ctl.Enabled = False
End If
Next Ctl
Me."mon_champ".Enabled = true
Me."mon_champ".Locked = false
Mais ca ne marche pas
Comment pourrais-je faire
Merci
rocky
- Un con qui marche ira plus loin qu'un intellectuel assis -
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 8 févr. 2008 à 10:52
Re,
Dans un module :
Private Sub CtrlLook(oFrm As Form)
Dim Ctrl As Control
For Each Ctrl In oFrm .Controls
Select Case Ctrl .ControlType
Case acTextBox, acComboBox, acCheckBox
Ctrl .Locked = True
End Select
Next Ctrl
End Sub
A+
Exploreur
4rocky4
Messages postés55Date d'inscriptionmercredi 1 novembre 2006StatutMembreDernière intervention16 avril 2009 7 févr. 2008 à 16:18
Bien vue pour la simplification. J'avais même pas fait attention.
J'ai donc modifié mon code comme ceci :
For Each Ctl In Me.Controls
Select Case Ctl.ControlType
Case acTextBox, acComboBox
Ctl.Enabled = False
End Select
Next Ctl
Me.ld_recherche.Enabled = True
Lorsque je lance le formulaire, j'ai accès à ma liste déroulante, mais je ne peux pas cliquer dessus pour selectionner la donnée que je souhaite.
rocky
- Un con qui marche ira plus loin qu'un intellectuel assis -
4rocky4
Messages postés55Date d'inscriptionmercredi 1 novembre 2006StatutMembreDernière intervention16 avril 2009 7 févr. 2008 à 16:42
Re,
J'ai fait comme cela :
For Each Ctl In Me.Controls
Select Case Ctl.ControlType
Case acTextBox, acComboBox
Ctl.Enabled = False
End Select
Next Ctl
Me.ld_recherche.Enabled = True
J'ai accès à la liste déroulante mais je ne peux pas selectionner
rocky
- Un con qui marche ira plus loin qu'un intellectuel assis -
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 7 févr. 2008 à 16:47
Re,
Je viens de faire l'essai avec le code que je t'ai donné à (16h28..lol)...sur une form avec 2 textbox et un combo et cela fonctionne, j'ai bien accès à mon combo et sa liste déroulante....
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 7 févr. 2008 à 17:00
Re,
Un peu d'astuces....d'espièglerie....c'est la vie de Candy ! lol...
For Each ctl In Me.Controls
If TypeOf ctl Is TextBox Then ctl.Enabled = False
If TypeOf ctl Is ComboBox Then ctl.Enabled = False
Next ctl
Me.ld_recherche.Enabled = True
4rocky4
Messages postés55Date d'inscriptionmercredi 1 novembre 2006StatutMembreDernière intervention16 avril 2009 7 févr. 2008 à 17:10
Re,
lol oui ca aide parfois
J'ai un sérieux problème dans mon code là.
Voici le code de tout le formulaire (Va faloir de la place et j'explique après :
Option Compare Database
Option Explicit
Private Sub bt_annuler_Click()
btannuler
End Sub
Private Sub bt_supprimer_Click()
btsupprimer
End Sub
Private Sub bt_valider_Click()
btvalider
End Sub
Private Sub Form_Load()
Call presentation(Me)
End Sub
Private Sub bt_menu_Click()
btmenu
End Sub
Private Sub ld_recherche_AfterUpdate()
' Rechercher l'enregistrement correspondant au contrôle.
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[code_ce] = " & Str(Nz(Me![ld_recherche], 0))
Me.Détail.Visible = True
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
Private Sub Form_Open(Cancel As Integer)
Select Case Openargs
Case "ce_ajout"
'on affiche la partie Détail
Me.Détail.Visible = True
'On cache les outils recherche
Me.boite_rectangle.Visible = False
Me.za_nom.Visible = False
Me.ld_recherche.Visible = False
Me.éti_recherche.Visible = False
'modification impossible
Me.AllowEdits = False
Case "ce_modif"
'Boutons
Me.bt_annuler.Visible = False
Me.bt_valider.Visible = False
'Ajout impossible
Me.AllowAdditions = False
'on affiche la partie Détail
Me.Détail.Visible = False
'les Champs sont accessible
For Each Ctl In Me.Controls
Select Case Ctl.ControlType
Case acTextBox, acComboBox
Ctl.Enabled = True
End Select
Next Ctl
Me.za_titre.Caption = "Modification d'un comité d'engagement"
Case "ce_consultation"
'boutons
Me.bt_annuler.Visible = False
Me.bt_valider.Visible = False
'ajout impossible
Me.AllowAdditions = False
'on affiche la partie Détail
Me.Détail.Visible = False
' on bloque les champs que l'on consulte pour empécher la modification
For Each Ctl In Me.Controls
Select Case Ctl.ControlType
Case acTextBox, acComboBox
Ctl.Enabled = False
End Select
Next Ctl
Me.ld_recherche.Enabled = True
'on change le titre
Me.za_titre.Caption = "Consultation d'un comité d'engagement"
Case "ce_suppr"
'boutons
Me.bt_annuler.Visible = False
Me.bt_valider.Visible = False
Me.bt_supprimer.Visible = True
'ajout impossible
Me.AllowAdditions = False
'on affiche la partie Détail
Me.Détail.Visible = False
' on bloque les champs que l'on consulte pour empécher la modification
For Each Ctl In Me.Controls
Select Case Ctl.ControlType
Case acTextBox, acComboBox
Ctl.Enabled = False
End Select
Next Ctl
Me.ld_recherche.Enabled = True
'on change le titre
Me.za_titre.Caption = "Suppression d'un comité d'engagement"
End Select
End Sub
Donc là si mon formulaire s'ouvre un "modification", j'ai accès à la liste ld_recherche.
Si j'ouvre en "consultation", je n'y ai pas accès.
J'ai éssayé de mettre exactement la même boucle FOR que "modification"dans "consultation" et là ... Ca ne change rien ... j'ai toujours pas accès à la liste déroulante.
C'est grave docteur ?
rocky
- Un con qui marche ira plus loin qu'un intellectuel assis -