Zahl mit Pfeilen und Einheit eingeben
Mit WklSpinEdit in einem Formular oder mit einer Drehfeldspalte in einer Liste stellt der Benutzer eine Zahl
innerhalb von Grenzen ein, etwa die Laufzeit eines Schlüssels in Tagen oder die Dauer einer Sitzung in Stunden.
Voraussetzungen: WKL Forms Object Library 1.43 oder höher.
Lösungsüberblick
- Binden Sie es wie ein Textfeld: Steuerelementinhalt (
ControlSource) nennt ein Zahlenfeld. - Legen Sie die Regeln fest:
MinValue,MaxValue,Step,DecimalPlacesundUnitfür den Text hinter der Zahl – auf der Designerseite Zahl oder per Code in der Entwurfsansicht. - Teilen Sie dem Benutzer in
InvalidEntrymit, warum eine Eingabe abgelehnt wurde; das Steuerelement zeigt kein Meldungsfenster. - In einer Liste: eine Spalte mit
Editor = wedSpin,MinValue,MaxValue,StepundUnit.
Umsetzung
Ein Formular frmKey, gebunden an tblKey, mit einem WklSpinEdit spnDays, gebunden an das Feld LaufzeitTage, und
einem Bezeichnungsfeld lblHint:
' Once, in design view (or on the designer's page Zahl); saved with the form.
With Forms!frmKey!spnDays
.ControlSource = "LaufzeitTage"
.Object.MinValue = 1
.Object.MaxValue = 3650
.Object.Step = 30
.Object.Unit = "Tage"
End With
' Module of frmKey: say why an entry was refused, and clear the hint after a valid change.
Private Sub spnDays_InvalidEntry(ByVal Text As String, ByVal Message As String)
Me!lblHint.Caption = "„" & Text & "“: " & Message
End Sub
Private Sub spnDays_Change()
Me!lblHint.Caption = ""
End Sub
Dieselben Regeln als Spalte eines WklGrid namens Grid1:
With Me!Grid1.Object.Columns("LaufzeitTage")
.Editor = wedSpin
.MinValue = 1
.MaxValue = 3650
.Step = 30
.Unit = "Tage"
End With
Hinweise
- Dezimalstellen. Im Formular rundet
DecimalPlacesdie Zahl und zeigt sie entsprechend an;Valueist dann ein Double. In einer Spalte richten sich die Dezimalstellen nach der Schrittweite (eine Schrittweite von 0,25 zeigt zwei). - Tippen. Eine gültige Zahl wird Access schon während des Tippens gemeldet; Zwischenwerte auf dem Weg zu einer abgelehnten Zahl (400 auf dem Weg zu 4000 bei
MaxValue = 3650) werden zurückgenommen, wenn der Benutzer das Feld verlässt. - Werte außerhalb der Grenzen, die aus dem Datensatz oder aus dem Code stammen, werden unverändert angezeigt.
- Locked und AllowEdits. Ein gesperrtes Steuerelement oder ein Formular mit
AllowEdits = Falsereagiert nicht auf Pfeile, Tasten und Eingaben. - Nicht im Detailbereich eines Endlosformulars: Access legt dort nur eine Instanz an; verwenden Sie in einer Liste eine Drehfeldspalte von
WklGrid.
Verwandte Themen
de/wiki/msaccess/comctl/how-to/enter-a-number-with-arrows.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille