August 06, 2020, 21:13:07

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Kombinationsfeld auslesen und Textfeld befüllen

Begonnen von shinoda70, Juli 24, 2020, 11:27:34

⏪ vorheriges - nächstes ⏩

shinoda70

Hallo Leute,

ich komme einfach nicht auf die wahrscheinlich sehr simple Lösung  :-\

In meinem Kombi-Formularfeld "Wkzgruppe" möchte ich bestimmte Werkzeuge auswählen.
Die Werkzeuge beginnen immer mit den Nummern 1.xxxxx oder 2.xxxxx  (nach der 1 oder 2 kommen noch 4 variable Zahlen)
Wenn ich nun ein 1er Werkzeug auswähle soll in einem Textfeld die Abteilung "PAK" oder "PAG" erscheinen.

1er Werkzeuge = Abteilung PAK
2er Werkzeuge = Abteilung PAG

Ich habe absolut ein Brett vorm Kopf und komm nicht drauf *schäm*

Private Sub Wkzgruppe_AfterUpdate()

If Nz([Wkzgruppe], "") = "1*" Then
Me.Abteilung = "PAK"


If Nz([Wkzgruppe], "") = "2*" Then
Me.Abteilung = "PAG"

End If
End If

End Sub

Vorab vielen Dank  :)

MzKlMu

Hallo,
versuche es so:
If Left([Wkzgruppe],1) = "1" ThenSinngemäß auch für 2.
Das NZ halte ich hier für überflüssig.

PS:
Das Datenmodell ist zu bezweifeln.
Die Werkzeugnummer sollte in 2 Felder aufgeteilt werden, ein Feld für die Abteilung und ein Feld für die reine Nummer (1.Normalform, atomare Inhalte). Die Abteilung wird aber als Zahl gespeichert.
Dann wird eine Tabelle benötigt für die Abteilung mit der Zahl als Primärschlüssel und einem Feld für den Text.
In einer Abfrage wird die Materialnummer dann als berechnetes Feld zusammengesetzt und mit der Tabelle für die Abteilung über die Zahlenfelder verknüpft.
Dann hast Du ohne jeden Code auch den Klartext der Abteilung zur Anzeige zur Verfügung.
Gruß
Klaus

shinoda70

Hallo Klaus.

hat so geklappt, vielen DANK  :)  :)

Ja, das Datenmodel ist etwas unglücklich, die Tabellen sind alle samt importiert aus Excel. muss da noch aufräumen und einiges umstricken.

Vielen dank und schönes We!!

Micha

crystal

Juli 24, 2020, 15:15:54 #3 Letzte Bearbeitung: Juli 24, 2020, 15:28:54 von crystal Grund: Nachtrag
Hallo Micha,
noch ein Nachtrag zu deinem ursprünglichen Post.

Du hast da im Code geschrieben
if ...1 then
...
if ...2 then
...
end if
end if

Das ist nicht nur etwas schwer zu lesen und absolut falsch, sondern wäre auch viel einfacher und richtiger möglich:
if ...1 then
...
else if ...2 then
...
end if

Seit der "Erfindung" des ELSE-Statements können if...then...else if...else if...else-Konstrukte viel einfacher verstanden werden, weil man nicht nach dem ersten End If aufhört, weiter zu lesen...

Davon abgesehen kann deine Konstruktion natürlich niemals und gar nie nicht funktionieren, weil dein "If Nz([Wkzgruppe], "") = "2*" Then" innerhalb der Frage "If Nz([Wkzgruppe], "") = "1*" Then" steht (und deine End Ifs erst ganz am Ende).

Gruß,
crystal

Edit/Nachtrag:
es hat sich als extrem hilfreich erwiesen, Code-Zeilen einzurücken, also
if xyz then
   -mach was
else if abc then
   -mach was anderes
end if

Sorry - aber das sind absolut grundlegende Dinge, mit denen du dich vielleicht einmal beschäftigen solltest...
Bitte lese viel über Programmierungs-Grundlagen und studiere fertige Programme oder Code-Sequenzen anderer...
Aber bitte: nie den Mut verlieren! Jeder hat mal klein angefangen...
Wer Fehler in meinen Antworten findet, darf sie behalten, muss sie aber kommentieren. ;-)
Dies ist keineswegs arrogant gemeint, sondern soll nur unterstreichen, dass meine Antworten - natürlich - nicht immer fehlerfrei sind und sein können.
Devise: bitte immer erst selbst probieren!

DF6GL

Hallo,

bei Verwendung von Sternchen als "Wildcard" ist der Like-Operator einzusetzen:

ZitatIf Me!Wkzgruppe Like "1*" Then