Barvna shema: Svetla
Trenutno dejavna stran: start » de » Dokumentation » Werkzeuge für Microsoft Access » WKL Forms Object Library » how-to » Wert über eine Schaltfläche neben dem Text ermitteln

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 ButtonClick aus; Ihre Prozedur öffnet das Dialogfeld und schreibt das Ergebnis in das Feld (der Datensatz wird wie bei jeder Bearbeitung geändert und gespeichert) und in Value (das Steuerelement zeigt es sofort an).
  • Schreibgeschützter Text für Geheimnisse: Setzen Sie TextEditable = False und PasswordMask = True, und beschriften Sie die Schaltfläche mit „Ändern…“. PasswordMask verbirgt nur die Anzeige: Der Wert steht weiterhin im Klartext im gebundenen Feld und in Value.

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!Account noch den vorherigen Wert enthalten (ebenso bei einem gebundenen WklToggleSwitch).
  • Locked und AllowEdits. Ein gesperrtes Steuerelement (Locked) oder ein Formular mit AllowEdits = False lehnt Eingaben ab; die Schaltfläche löst weiterhin ButtonClick aus. Prüfen Sie daher Me.AllowEdits in 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