Wert über eine Schaltfläche neben dem Text ermitteln
Mit WklButtonEdit, gebunden an ein Feld des Formulars, tippt der Benutzer einen Wert ein oder holt ihn über eine
Schaltfläche: ein Windows-Konto aus einem Suchdialog, eine getestete Verbindungszeichenfolge oder ein ersetztes
Geheimnis.
Voraussetzungen: WKL Forms Object Library 1.43 oder höher.
Lösungsüberblick
- Binden Sie es wie ein Textfeld: Steuerelementinhalt (
ControlSource) nennt das Feld. - Die Schaltfläche löst
ButtonClickaus; Ihre Prozedur öffnet das Dialogfeld und schreibt das Ergebnis in das Feld (der Datensatz wird wie bei jeder Bearbeitung geändert und gespeichert) und inValue(das Steuerelement zeigt es sofort an). - Schreibgeschützter Text für Geheimnisse: Setzen Sie
TextEditable = FalseundPasswordMask = True, und beschriften Sie die Schaltfläche mit „Ändern…“.PasswordMaskverbirgt nur die Anzeige: Der Wert steht weiterhin im Klartext im gebundenen Feld und inValue.
Umsetzung
Ein Formular frmIdentity, gebunden an tblIdentity, mit einem WklButtonEdit btnAccount, gebunden an das Feld
Account:
' Once, in design view (or on the designer's page Schaltfläche); saved with the form.
With Forms!frmIdentity!btnAccount
.ControlSource = "Account"
.Object.ButtonText = "Konto suchen"
.Object.Caption = "Windows-Konto"
End With
' Module of frmIdentity: the button fetches the account.
Private Sub btnAccount_ButtonClick()
Dim account As String
account = InputBox("Windows-Konto (DOMAIN\Name):", "Konto suchen", Nz(Me!Account, ""))
If Len(account) = 0 Then Exit Sub
Me!Account = account ' the field: the record is now changed (dirty)
Me!btnAccount.Object.Value = account ' the control: shows it at once
End Sub
Ein Geheimnis, das nur ein eigenes Dialogfeld ersetzt:
With Forms!frmIdentity!btnSecret.Object
.TextEditable = False
.PasswordMask = True
.ButtonCaption = "Ändern…"
.ButtonText = "Geheimnis ändern"
End With
Hinweise
- Lesen Sie das Steuerelement, während der Benutzer tippt. Das Steuerelement meldet jede Änderung an Access, das sie beim Speichern des Datensatzes in das Feld übernimmt; bis dahin kann
Me!Accountnoch den vorherigen Wert enthalten (ebenso bei einem gebundenenWklToggleSwitch). - Locked und AllowEdits. Ein gesperrtes Steuerelement (
Locked) oder ein Formular mitAllowEdits = Falselehnt Eingaben ab; die Schaltfläche löst weiterhinButtonClickaus. Prüfen Sie daherMe.AllowEditsin der Prozedur, wenn das Dialogfeld den Datensatz ändern würde. - Esc stellt den Wert vor der ersten Änderung des Benutzers wieder her; ein zweites Esc geht an Access und macht den Datensatz rückgängig.
- Nicht im Detailbereich eines Endlosformulars: Access legt dort nur eine Instanz an; verwenden Sie in einer Liste eine Spalte von
WklGrid.
Verwandte Themen
de/wiki/msaccess/comctl/how-to/look-up-a-value-with-a-button.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille