Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: burlibua am Januar 25, 2011, 10:53:30

Titel: IFNULL bei Text
Beitrag von: burlibua am Januar 25, 2011, 10:53:30
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
Titel: Re: IFNULL bei Text
Beitrag von: DF6GL am Januar 25, 2011, 11:18:48
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.)

Titel: Re: IFNULL bei Text
Beitrag von: burlibua am Januar 25, 2011, 12:17:37
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



Titel: Re: IFNULL bei Text
Beitrag von: MzKlMu am Januar 25, 2011, 14:25:17
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.
Titel: Re: IFNULL bei Text
Beitrag von: DF6GL am Januar 25, 2011, 14:40:17
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.
Titel: Re: IFNULL bei Text
Beitrag von: burlibua am Januar 25, 2011, 18:05:20
Hallo
Danke nochmal

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

Es funktioniert

Danke nochmals