Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Access Reihefolge ergänzen per VBA

Frage Entwicklung VB for Applications

Mitglied: bumbum

bumbum (Level 1) - Jetzt verbinden

06.11.2009 um 11:23 Uhr, 4626 Aufrufe, 3 Kommentare

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
Mitglied: jhinrichs
06.11.2009 um 11:50 Uhr
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:
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?
Bitte warten ..
Mitglied: bumbum
06.11.2009 um 12:01 Uhr
hey,

sorry für die schlechte Beschreibung
1. die Felder a1;a2;a3;b1;b2;b3 sind Felder in einem Formular.
2. die Zahlen 1-6 kommen jeweils nur einmal vor.
3. jedes der Felder könnte das leere Feld sein.
4. mit "leer" meine ich undefiniert..
5. es ist nur ein Feld "leer" (undefiniert)

... so, ich hoffe du kannst mit meiner Frage jetzt mehr anfangen.

LG bumbum
Bitte warten ..
Mitglied: jhinrichs
09.11.2009 um 15:16 Uhr
Hallo,
nach dem Wochenende hier ein Lösungsvorschlag:
(Die Felder im Formular heißen a1,...,a3,b1,...,b3; der Button heißt cmdButton)
01.
Private Sub cmdButton_Click() 
02.
Dim Summe As Integer 
03.
Dim Wert As Variant 
04.
Dim FeldLeer As String 
05.
Dim Feld As Control 
06.
Dim Feldliste As Collection 
07.
 
08.
Set Feldliste = New Collection 
09.
 
10.
Rem Erstellung der Liste der Feldnamen 
11.
With Feldliste 
12.
  .Add Me.Controls("a1") 
13.
  .Add Me.Controls("a2") 
14.
  .Add Me.Controls("a3") 
15.
  .Add Me.Controls("b1") 
16.
  .Add Me.Controls("b2") 
17.
  .Add Me.Controls("b3") 
18.
End With 
19.
 
20.
Rem Initialisierung der Summe 
21.
Summe = 0 
22.
 
23.
For Each Feld In Feldliste 
24.
  Wert = Feld.Value 
25.
Rem Wenn Feld leer ist: Namen merken; wenn nicht: Summe erhöhen 
26.
  If IsNull(Wert) Or Wert = 0 Or Wert = "" Then 
27.
    FeldLeer = Feld.Name 
28.
  Else 
29.
    Summe = Summe + Wert 
30.
  End If 
31.
Next 
32.
 
33.
Rem Berechnung und Einsetzen in das Formular 
34.
Me.Controls(FeldLeer).Value = 21 - Summe 
35.
 
36.
End Sub
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
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
VB for Applications
gelöst VBA Text mit Format übertragen und Zeichen ergänzen (11)

Frage von Dau12345 zum Thema VB for Applications ...

VB for Applications
gelöst Xml-Datei laden bzw. auf Festplatte kopieren und per VBA in eine Access-Tabelle speichern (22)

Frage von machohunk zum Thema VB for Applications ...

Datenbanken
gelöst Syntaxfehler VBA Access 2010 (6)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Datenbanken
gelöst Access Report per Email versenden, hat jemand zufällig einen Code dafür(VBA) (7)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (22)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (19)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...