Mise à jour de zone de texte en cours de saisie
Dans Access, j'ai un formulaire dans lequel il y a trois zones de texte.
Je suis en train de mettre à jour une zone de texte appelée tbxCombinedName avec une combinaison des deux:
- zone de texte tbxLastName (personne du Nom de famille)
- zone de texte tbxFirstName (prénom d'une personne)
Ma question est: quelle zone de texte bien dois-je utiliser, de sorte que, comme je suis en tapant du texte dans tbxLastName, le CombinedName zone de texte est mis à jour immédiatement et par la suite enregistré dans la table Contacts.
Sur Le site web de Microsoft, j'ai trouvé que le processus d'étapes lors de la saisie dans un textbox sont comme suit:
KeyDown → Pression De Touche → BeforeInsert → Modifier → KeyUp
J'ai essayé d'utiliser le OnChange et OnKeyDown propriétés, mais en vain. La propriété qui, combiné avec ce code, permettra la mise à jour-comme-vous-action de type de travail?
C'est ce que j'ai écrit plus tôt, qui n'a pas fonctionné:
Private Sub tbxLName_change()
Dim lastName As String
Dim nameCode As String
lastName = tbxLName.Value
Debug.Print lastName
nameCode = tbxNameCode.Value
nameCode = lastName
Debug.Print nameCode
End Sub
Merci à tous pour votre aide à l'avance.
OriginalL'auteur Paolo Bernasconi | 2012-08-16
Vous devez vous connecter pour publier un commentaire.
C'est l'un des rares cas où vous devriez vous référer à la .texte de la propriété.
Dans l'événement de Changement:
L' .texte de la propriété est disponible uniquement lorsqu'un contrôle a le focus et il se réfère au contenu visible du contrôle.
Cependant, c'est une base de données et la règle générale est que vous n'avez pas de magasin des champs calculés. Le nom complet peut être facilement obtenu à partir d'une requête.
+1 Bon conseils sur l'obtention de l'information désirée à partir d'une requête
Peuvent le processus de requête le Premier et le Dernier Nom dans ce format:
LLLLLL_F
? (LLLLLL est 6 premières lettres du nom de famille. F est la première lettre du prénom)Oui, pas de problème.
SELECT Left(LastName,6) & "_" & Left(FirstName,1) As NameRef FROM MyTable
J'ai passé plusieurs heures à essayer de comprendre pourquoi le nom de contrôle.la valeur n'était pas de donner de la valeur actuelle. Cela m'a beaucoup aidé.
OriginalL'auteur Fionnuala
Juste un couple de notes:
Vous pouvez aller avec pression de Touche, car il offre la possibilité de modifier ou d'annuler la clé de l'utilisateur poussé.
Dans l'exemple ci-dessous, seules les lettres sont autorisés et les lettres minuscules sont supérieures tubé:
lastName = tbxLName.Text
. La propriété par défaut est.value
et il n'est pas le même que.text
dans MS Access. Le.text
propriété est seulement disponible lorsqu'un contrôle a le focus.L'un de ces VB6/VBA différences subtiles? Je vais juste enlever la partie. Merci de me laisser savoir.
OriginalL'auteur ray