Access Reihefolge ergänzen per VBA
Hallo liebe VBA-Freunde,
ich habe folgendes Problem:
ich habe 6 Felder (a1,a2,a3,b1,b2,b3), in einige von ihnen gebe ich Zahlen ein(von 1-6)
Beispiel: a1 = 2
a2 = 3
a3 = 1
b1 = 5
b2 = 4
b3 = leer
nach der eingabe der Werte betätige ich einen Buttom, dann soll das leere Feld (b3) ergänzt werden mit dem fehlenden Wert (6).
Kennt jemand einen VBA-Code dazu???
LG bumbum
ich habe folgendes Problem:
ich habe 6 Felder (a1,a2,a3,b1,b2,b3), in einige von ihnen gebe ich Zahlen ein(von 1-6)
Beispiel: a1 = 2
a2 = 3
a3 = 1
b1 = 5
b2 = 4
b3 = leer
nach der eingabe der Werte betätige ich einen Buttom, dann soll das leere Feld (b3) ergänzt werden mit dem fehlenden Wert (6).
Kennt jemand einen VBA-Code dazu???
LG bumbum
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 128800
Url: https://administrator.de/contentid/128800
Ausgedruckt am: 22.11.2024 um 19:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo,
zur Präzisierung der Frage:
- sind die Felder in einem Formular?
- kommt jede der Zahlen von 1 bis 6 genau einmal vor?
- ist immer b3 das leergelassene Feld, oder wechselt das?
- was heißt "leer" (Wert dann 0 oder undefiniert)
Um zu ermitteln, welche Zahl fehlt, kann man (unter der Voraussetzung, dass jede Zahl von 1 bis 6 genau einmal vorkommt, y die fehlende Zahl ist und x1-x5 die vorhandenen Zahlen), folgende Formel verwenden:
Wenn man es dann ausbaut, gehört natürlich noch die Überprüfung, dass nur 1 Feld frei ist und die Zahlen im Bereich von 1-6 und höchsten einmal vorkommen, dazu.
Rein interessehalber: Wozu das Ganze?
zur Präzisierung der Frage:
- sind die Felder in einem Formular?
- kommt jede der Zahlen von 1 bis 6 genau einmal vor?
- ist immer b3 das leergelassene Feld, oder wechselt das?
- was heißt "leer" (Wert dann 0 oder undefiniert)
Um zu ermitteln, welche Zahl fehlt, kann man (unter der Voraussetzung, dass jede Zahl von 1 bis 6 genau einmal vorkommt, y die fehlende Zahl ist und x1-x5 die vorhandenen Zahlen), folgende Formel verwenden:
y=21-x1-x2-x3-x4-x5
Das jetzt nur noch mit dem VB-Editor für das Formular (?) in VB umsetzen.Wenn man es dann ausbaut, gehört natürlich noch die Überprüfung, dass nur 1 Feld frei ist und die Zahlen im Bereich von 1-6 und höchsten einmal vorkommen, dazu.
Rein interessehalber: Wozu das Ganze?
Hallo,
nach dem Wochenende hier ein Lösungsvorschlag:
(Die Felder im Formular heißen a1,...,a3,b1,...,b3; der Button heißt cmdButton)
Was noch fehlt, ist ein Test, ob genau ein Feld leer gelassen wurde, die Zahlen im Bereich von 1-6 sind und genau einmal vorkommen. Aber ein bisschen solltest Du ja auch tun...
Viele Grüße
nach dem Wochenende hier ein Lösungsvorschlag:
(Die Felder im Formular heißen a1,...,a3,b1,...,b3; der Button heißt cmdButton)
Private Sub cmdButton_Click()
Dim Summe As Integer
Dim Wert As Variant
Dim FeldLeer As String
Dim Feld As Control
Dim Feldliste As Collection
Set Feldliste = New Collection
Rem Erstellung der Liste der Feldnamen
With Feldliste
.Add Me.Controls("a1")
.Add Me.Controls("a2")
.Add Me.Controls("a3")
.Add Me.Controls("b1")
.Add Me.Controls("b2")
.Add Me.Controls("b3")
End With
Rem Initialisierung der Summe
Summe = 0
For Each Feld In Feldliste
Wert = Feld.Value
Rem Wenn Feld leer ist: Namen merken; wenn nicht: Summe erhöhen
If IsNull(Wert) Or Wert = 0 Or Wert = "" Then
FeldLeer = Feld.Name
Else
Summe = Summe + Wert
End If
Next
Rem Berechnung und Einsetzen in das Formular
Me.Controls(FeldLeer).Value = 21 - Summe
End Sub
Viele Grüße