Réinitialiser le formulaire en VBA
J'ai un formulaire VBA avec une variété d'options de sélection, y compris les menus déroulants, les champs de texte, des cases à cocher et les radios.
Je voulais juste savoir à propos de la meilleure façon d'effacer tous ces domaines, avec un bouton de la presse. Un de mes amis a essayé d'aider en m'envoyant un email le code ci-dessous mais malheureusement ça ne fonctionne pas, j'ai vérifié les noms de variable.
Des conseils sur comment je peux l'améliorer?
Merci d'avance.
Private Sub btnReset_Click()
Unload Me
UserForm.Show
End Sub
Voici le code pour l'objet userform.
Dim DeptCode 'Holds department code
Private Sub UserForm_Initialize()
Dim c_deptCode As Range
Dim c_deptName As Range
Dim deptCodes As Variant
Dim deptNames As Variant
Dim ws_dept As Worksheet
Set ws_dept = Worksheets("lookupDept")
' Assign each range to an array containing the values
deptCodes = Choose(1, ws_dept.Range("deptCode"))
deptNames = Choose(1, ws_dept.Range("deptName"))
For i = 1 To ws_dept.Range("deptCode").Rows.Count
' Create the combined name (code + space + name)
CombinedName = deptCodes(i, 1) & " - " & deptNames(i, 1)
cbo_deptCode.AddItem CombinedName
Next i
End Sub
Vous devez vous connecter pour publier un commentaire.
Je pense que quand il frappe les Décharger M'ligne, l'exécution de code s'arrête et c'est pourquoi il ne fonctionne pas pour vous. Voici un générique événement procédure pour réinitialiser tous (la plupart) des contrôles sur le formulaire.
Il n'a pas de repeupler les zones de liste modifiables et zones de liste, juste effacer la sélection, qui est ce que je suppose que vous voulez.
Je sais que cette question est presque 2 ans, MAIS je cherchais une réponse de ce genre. Cependant, je suis aide d'Access 2010 et a découvert que la fonction ne fonctionne pas entièrement comme prévu:
Donc avec ces questions à l'esprit, voici mon réécrit la fonction:
L'ajout le plus récent réponse - si certains de vos contrôles ont des valeurs par défaut, vous pouvez utiliser
ctl.Value = ctl.DefaultValue
Qui fonctionne pour moi, au moins pour les cases à cocher et les listes déroulantes.
Vous pouvez essayer ceci:
Microsoft a cette documenté assez bien maintenant pour la dernière version d'Accès. Il ressemble à certaines des réponses ci-dessus se réfèrent à des versions plus anciennes. Le code ci-dessous fonctionne dans mon application parfaitement. J'ai seulement compris les types de contrôle j'ai besoin, mais vous pouvez trouver de la documentation pour tous les autres dans le Microsoft liens ci-dessous.
Ref: https://msdn.microsoft.com/en-us/vba/access-vba/articles/textbox-controltype-property-access?f=255&MSPPError=-2147217396
Noter que pour la zone de liste modifiable, vous avez à mettre l'accent là avant le réglage de la valeur.
Ref: https://msdn.microsoft.com/en-us/vba/access-vba/articles/combobox-seltext-property-access