69304
Goto Top

Access 2003 - Unzulässige Verwendung von Null - Abfrage von 3 DropDown

Ein Formular hat 3 DropDows, die von einer anderen Tabelle gefüllt werden. Klappt soweit Prima.

Es soll eine Mail an die User aus den DropDown geschickt werden. Würde auch soweit klappen, aber!

Wenn Feld 2 und/oder 3 leer ist, bekomm ich immer die Meldung "Unzulässige Verwendung von Null"...

Hier mein VBA-Code, vllt sieht ja jemand die Lösung sofort...


Dim Empfaenger1 As String 'Zwischenvariablen  
Dim Empfaenger2 As String 'Zwischenvariablen  
Dim Empfaenger3 As String 'Zwischenvariablen  
  
Dim Empfaenger As String 'Der eigentliche SendTo-String  
  
Empfaenger1 = Me!Bearbeiter1.Value 'Wert aus Formular auslesen  
Empfaenger2 = Me!Bearbeiter2.Value 'Wert aus Formular auslesen  
Empfaenger3 = Me!Bearbeiter3.Value 'Wert aus Formular auslesen  
  
If Not IsNull(Empfaenger1) Then
  MsgBox ("Bitte mindestens einen Bearbeiter auswählen!!!") 'Sicherheitsabfrage, dass mindestens einer ausgewählt ist!  
Else
  If Not IsNull(Empfaenger2) Then
      If Not IsNull(Empfaenger3) Then
          Empfaenger = Empfaenger1 + ";" + Empfaenger2 + ";" + Empfaenger3  
      Else
          Empfaenger = Empfaenger1 + ";" + Empfaenger2  
      End If
  Else
      Empfaenger = Empfaenger1
  End If
End If
  
DoCmd.SendObject , "", "", Empfaenger, "mail@adresse.de", Null, "Betreff", "!!! TEST TEST TEST !!!", False  

Gruß,
René.

Content-Key: 103579

Url: https://administrator.de/contentid/103579

Printed on: April 18, 2024 at 20:04 o'clock

Member: dog
dog Dec 08, 2008 at 19:42:51 (UTC)
Goto Top
Das letzte mal, dass ich mit VB gearbeitet hat war das Concatenation-Zeichen noch &:

  Empfaenger = Empfaenger1 & ";" & Empfaenger2   

Vielleicht hilft das?
Mitglied: 69304
69304 Dec 09, 2008 at 07:07:09 (UTC)
Goto Top
Hallo!

Danke erstmal für die Antwort.

Ich habe alle "+" in "&" geändert - trotzdem noch die selbe Fehlermeldung...

Sonst noch jemand einen Idee?
Mitglied: 27234
27234 Dec 09, 2008 at 07:40:49 (UTC)
Goto Top
Hallo,

Variablen vom Type "String" können keine NULL-Werte speichern, eine nicht gefüllte String-Variable prüft man mit <> "" (2 Anführungszeichen hintereinander). Nur Variablen vom Type Variant können Null-Werte speichern.

Gruß - René
Member: Logan000
Logan000 Dec 09, 2008 at 07:59:45 (UTC)
Goto Top
Moin Moin

...
If Not IsNull(Empfaenger1) Then 
  MsgBox ("Bitte mindestens einen Bearbeiter auswählen!!!") 'Sicherheitsabfrage, dass mindestens einer ausgewählt ist!   
... 
Müste da nicht das NOT weg? Oder wie mus ich mir das vorstellen?

Später prüfst du zwar ob Empfänger2 & 3 nicht NULL sind, aber Empfänger 1 kann eigentlich nur NULL sein (da ELSE Zweig des obrigen IFs) und das wird bei der Stringverkettung diesen Fehler auslösen.

Gruß L.
Mitglied: 69304
69304 Dec 10, 2008 at 07:38:04 (UTC)
Goto Top
Tja, waren dann doch mehrere Faktoren.

Erstmal alle Variablen als Typ "Variant" deklariert

Dim Nachricht As Variant

Den Code an sich hab ich auch noch so umgestellt:

If IsNull(Empfaenger1) Then 'Wenn Empfaenger1 leer...  
    MsgBox ("Bitte mindestens einen Bearbeiter auswählen!!!") 'Sicherheitsabfrage, dass mindestens einer ausgewählt ist!  
  Else 'Wenn mindestens 1 Empfänger gesetzt ist...  
    If Empfaenger2 <> "" Then  
        If Empfaenger3 <> "" Then  
            Empfaenger = Empfaenger1 & ";" & Empfaenger2 & ";" & Empfaenger3  
        Else
            Empfaenger = Empfaenger1 & ";" & Empfaenger2  
        End If
    Else
        Empfaenger = Empfaenger1
    End If
    MsgBox ("DEBUG: Empfaenger: " & Empfaenger)  
    DoCmd.SendObject , "", "", Empfaenger, CC, Null, Betreff, "!!! TEST TEST TEST !!!", False 'SendObejct aus Access (Zum Emails senden)  
  End If