Newsletter Developpez.com

Inscrivez-vous gratuitement au Club pour recevoir
la newsletter hebdomadaire des développeurs et IT pro

FAQ MS-AccessConsultez toutes les FAQ

Nombre d'auteurs : 140, nombre de questions : 926, dernière mise à jour : 30 mars 2017 

 
OuvrirSommaireFormulairesContrôlesZones de texte
 
Sélectionnez
MaZoneTexte.ForeColor = QBColor(1)  '(Pour le bleu)
MaZoneTexte.ForeColor = QBColor(4)  '(Pour le rouge) 
Créé le 3 septembre 2004  par Demco
 
Sélectionnez
MaZoneDeTexte.BackColor = QBColor(1)  'pour du bleu
Créé le 3 septembre 2004  par Demco

Première solution :

 
Sélectionnez
Private Sub Form_Current() 
Dim ctl As Control 

 ' Pour chaque contrôle du formulaire
For Each ctl In frm.controls 
    ' On vérifie que le contrôle est bien une zone de texte
    If ctl.ControlType = acTextBox Then 
        ' On vérifie le contenu du contrôle
        If nz(ctl.Value,"") = "" Then 
            ' Il est vide on le rend invisible
            ctl.Visible = False 
        End If 
    End If 
Next ctl 
End sub

Une autre solution en utilisant TypeOf :

 
Sélectionnez

Private Sub Form_Current()
Dim ctl As Control

 ' Pour chaque contrôle du formulaire
For Each ctl In frm.Controls
    ' On vérifie que le contrôle est bien une zone de texte
    If TypeOf ctl Is TextBox Then
        ' On vérifie le contenu du contrôle
        If Nz(ctl.Value,"") = "" Then
            ' Il est vide on le rend invisible
            ctl.Visible = False
        End If
    End If
Next ctl
End sub
Créé le 1er avril 2004  par Lucifer, Tofalu

Lien : Comment rendre des colonnes d'un formulaire invisibles ?

Il faut utiliser le masque de saisie de la zone de texte. Tapez "password" ou "Mot de passe" (sans les guillemets) dedans.

Mis à jour le 2 mai 2004  par Demco

Lien : Comment éviter qu'Access ne corrige automatiquement les mots saisis dans un contrôle ?

Allez dans les propriétés de la zone de texte :
Onglet Autres, effet touche entrée --> Nouvelle ligne dans le champ.

On peut également utiliser la propriété Onglet Toutes, Barre de défilement --> Verticale. Sinon il est toujours possible de passer à la ligne avec un simple Ctrl+Entrée.

Créé le 1er janvier 2005  par Tofalu

Lien : Comment afficher un texte d'info-bulle sur plusieurs lignes ?

Par exemple vous voulez taper 3+4 dans une zone de texte et qu'elle vous affiche 7 : Utilisez un bouton dans lequel vous mettrez le code suivant (Input est la zone de texte) :

 
Sélectionnez
Me!Input = Eval(Nz(Me!Input, 0))

Sur pression du bouton, le calcul s'effectuera.

Créé le 1er janvier 2005  par Faw

Papy Turbo :

 
Sélectionnez
Private Sub ControlNumerique_KeyPress(KeyAscii As Integer)
    If (KeyAscii > 31 And KeyAscii < 48) Or (KeyAscii > 59) Then
        Beep
        KeyAscii = 0
    End If
End Sub

Cette solution empêche d'insérer autre chose qu'un chiffre dans la zone de texte. Les virgules sont acceptées.

Une autre solution consiste à laisser l'utilisateur saisir ce qu'il veut, puis avant de valider la saisie, d'en vérifier le contenu (FRED.G) :

 
Sélectionnez
Private Sub txtAtteindre_BeforeUpdate(Cancel As Integer)
 
 ' Le code suivant sert à vérifier que la valeur spécifiée _
 ' dans le contrôle txtAtteindre est de type numérique :
  With Me!txtAtteindre
   
  ' On applique la fonction IsNumeric à la propriété Value du contrôle sélectionné _
    'afin de vérifier si le type est bien du numérique :
   
    If Not IsNumeric(.Value) Then     
    ' On avertit l'utilisateur :     
      MsgBox "Vous devez saisir un numéro d'enregistrement valide.", vbExclamation
     
    ' On repositionne le curseur sur le contrôle sélectionné :     
      .SelStart = 0 ' Positionne le curseur au début du champ
      .SelLength = Len(.Value) ' Sélectionne l'ensemble des données affichées dans le champ
     
    ' On annule la mise à jour de l'événement BeforeUpdate en utilisant son argument Cancel :   
      Cancel = True
    End If
  End With
End Sub
Créé le 1er janvier 2005  par Papy Turbo

Il faut traiter l'événement KeyDown de la zone de texte et vérifier la taille du texte déjà inscrit. Ainsi, si le texte ne doit pas dépasser dix caractères, on aura :

 
Sélectionnez
Private Sub Texte13_KeyDown(KeyCode As Integer, Shift As Integer)
If Len(Texte13) > 9 Then KeyCode = 0
End Sub
Créé le 10 mai 2005  par Tofalu

Lien : Comment contrôler la saisie, empêcher la saisie de certains caractères ?

Lorsque vous utilisez le point du pavé numérique, Access le convertit en virgule suivant les options régionales de Windows. Cela se transforme en France par une virgule.

Pour éviter cela, vous pouvez modifier le caractère saisi lors de la frappe de la zone de texte (événement Touche appuyée).

 
Sélectionnez

Private Sub MonTextBox_KeyPress(KeyAscii As Integer)
    If KeyAscii = 59 Then KeyAscii = 46
End Sub
Créé le 29 novembre 2006  par cafeine

Pour donner de l'effet à votre contrôle, vous pouvez le rendre clignotant :

Sur l'événement Sur minuterie de votre formulaire mettez ce code :

 
Sélectionnez
Me.MonControl.Visible = Not (me.MonControl.Visible)

Ensuite il y a deux façons de lancer la minuterie :

En fixe
Sur l'événement Intervalle minuterie du formulaire, la base de temps est en millisecondes.
Exemple : 1000 provoque l'exécution du code Sur minuterie toutes les secondes.

En VBA
Le principe du code est de lancer la minuterie et de paramétrer le temps par code, ceci peut être pratique
pour lancer le code à un moment précis.

Pour le lancement :

 
Sélectionnez
Me.TimerInterval = 1000

Pour l'arrêter :

 
Sélectionnez
Me.TimerInterval = 0
Créé le 14 octobre 2007  par Faw
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2013 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.