Neuigkeiten:

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

Mobiles Hauptmenü

IFNULL bei Text

Begonnen von burlibua, Januar 25, 2011, 10:53:30

⏪ vorheriges - nächstes ⏩

burlibua

Hallo zusammen

Nach langer Zeit habe ich wieder mal eine Frage an Euch. Ich komme einfach nicht weiter.

In einem Formular mit Kombifeld wird nach Verlassen abgefragt, ob die Pflichteingabe erfolgt ist oder nicht. Das ist eigentlich kein Problem. Leider habe ich eine Unverträglichkeit mit dem Datentyp.

Hier der Code:
Private Sub BU_Exit(Cancel As Integer)
If IsNull(BU) And (BUPflicht) = True Then MsgBox "BU muss eingegeben werden"
If (BU) And (BUPflicht) = False Then MsgBox "Keine BU eingegeben"
Me!BU.SetFocus

End Sub

Allerdings liegt das Problem darin, dass die "BU" als Text definiert ist und auch sein muss. Was kann ich anstelle von "IsNull" verwenden? Wenn ich ein zusätzliches Zahlenfeld in der Tabelle "Tbl_BU" definiere dann wird die Zahl und nicht der Text aus "BU" in die zu befüllende Tabelle eingetragen.

Ich komm einfach nicht dahinter.


Danke für Eure Hilfe im Voraus

DF6GL

#1
Hallo,

was steht denn in BU drin?

Wenn Du nur prüfen willst, ob ein Text vorhanden ist im Fall, dass "BUPflicht"  wahr ist, dann etwa (wenn tatsächlich das EXIT-Ereignis verwendet werden soll):

Private Sub BU_Exit(Cancel As Integer)
If Len(nz(Me!BU,"") =0 and Me!BUPflicht Then   'oder auch:  If nz(Me!BU,"") ="" and Me!BUPflicht Then  
MsgBox "BU muss eingegeben werden"
Cancel=true  'editiert
End If
End Sub


(Vermutlich ist das Form-Ereignis "Vor Aktualisierung" für solche Plausibilitätsprüfungen besser geeignet.)

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

burlibua

Hallo
Danke für die schnelle Antwort.

Leider funktioniert das nicht oder ich steh total auf dem Schlauch

In der Tabelle "Tbl_BU" stehen folgende Daten:
BU   BusinessUnit
CORP   990_Corporate
OPTC   920_Operations&Techn.Consulting
SMPL   110_SensorSMART_Platform

Ich muss bei der Eingabe diverser Daten diese der jeweiligen BU zuordnen. Diese BU wähle ich über ein Kombifeld aus. Da es sich aber nur in manchen Fällen (abhängig von vorangegangen Eingaben) um ein Pflichtfeld handelt, habe ich die IfNull in der Ereignisprozedur angeführt.

Wenn die "BU" ein Zahlenwert wäre dann gäbe es ja kein Problem, aber die Vorgabe ist nun leider "Text".

Die ganzen Daten werden über ein Endlosformular eingegeben und zum Export bereitgestellt. Deshalb ist es wichtig, dass der BU-Wert als Text in der Tabelle 1 landet. Tabelle 1 ist die Tabelle welche exportiert wird.

Die andere Möglichkeit wäre, dass ich noch eine Spalte "Zahl" in die Tbl_BU einfüge und über eine Aktualisierungsabfrage die Werte in der Tabelle 1 ändere. Soweit wollte ich aber nicht gehen.

Danke nochmals für die Hilfe




MzKlMu

#3
Hallo,
kann es sein, dass Du eine Nachschlagefeld direkt in der Tabelle angelegt hast?

An sich sollte die Zahl der richtige Weg sein und nicht der Text. In einer Abfrage werden beide Tabellen zusammengeführt. Und die Abfrage wird exportiert, eine zusätzliche Tabelle zum Export ist überflüssig.

Falls ich das nicht richtig verstanden habe, erkläre mal den Aufbau etwas genauer.
Gruß Klaus

DF6GL

Hallo,



eigentlich ist es für die Funktion  egal, ob Zahl oder Text....


Wenn das Kombi im Formular sich befindet, und "BU" in der Tabelle "tbl_BU" das Primärschlüsselfeld ist, dann funktioniert der Code  (im Posting leicht editiert) so auch mit Text...

WAS funktioniert denn genau nicht?


Ansonsten ist , wie MzKlMu schon sagt, ein numerischer Primärschlüssel vorzuziehen.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

burlibua

Hallo
Danke nochmal

ich sollte mir die Augen auswaschen. ein kleiner Fehler und schon ist es passiert.

Es funktioniert

Danke nochmals