collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 26
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 13569
  • stats Beiträge insgesamt: 60025
  • stats Themen insgesamt: 8214
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 16
  • stats Am meisten online: 415

Autor Thema: Zuweisung einer Variablen zu einem String endet mit Fehler beim Kompilieren  (Gelesen 67 mal)

Offline nimora

  • Access-Profi
  • **
  • Beiträge: 112
...Methode oder Datenobjekt nicht gefunden.

Hallo,

Ich möchte Einladungsmails per Button verschicken, die zum einen die Richtige Anrede enthalten (was abhändig von "Herr" oder "Frau" ist) und in dieser Mail sollen Ansprechpartner und Datum eingefügt werden.

wenn ich mir die einzelnen Felder aus dem rst per debug.print anzeigen lasse, kommt das raus, was ich haben will. Aber in der Zeile, in der strMailbody1person gefüllt werden soll, kommt die oben genannte Fehlermeldung.

Ich verstehe nicht warum, denn das Sammeln der Daten im rst scheint ja zu funktionieren. Hat da jemand evtl. nen Tipp für mich?

Private Sub VG1_Click()
    ' ####################### Einladung per Mail ########################
    Dim db As DAO.Database
    Dim qdf As DAO.QueryDef
    Dim prm As DAO.Parameter
    Dim rst As DAO.Recordset
    Set db = CurrentDb
    Set qdf = db.QueryDefs("Ansprache")
    Set prm = qdf.Parameters("BewID")
    prm.Value = Me.MailitemID
    Set rst = qdf.OpenRecordset(dbOpenDynaset)
    ' Outlook-Anhang einleiten
    Dim myMail      As Outlook.MailItem
    Dim myOutlApp   As Outlook.Application
    Dim att         As Outlook.Attachment

    If rst.EOF Then
        ' Falls irgend eine Angabe im Datensatz fehlt, zb "Frau" oder "Herr"
        MsgBox "Hallo " & Environ("Username") & ", mit der Ansprache stimmt etwas nicht. Wende dich bitte an den Admin."
    End If
'################################ Anschreiben per Mail #######################################

    ' Erstellen einer Outlook-Instance und einer neuen Mailitems
    Set myOutlApp = New Outlook.Application
    Set myMail = myOutlApp.CreateItem(olMailItem)

      Dim strUserMail As String
      strUserMail = Me![Absender]
      Debug.Print rst!MailAnredeKomplett
      Debug.Print Me.datum_interv
    Dim strMailBody1person As String
      strMailBody1person = rst!MailAnredeKomplett & vbCrLf & vbCrLf & "Herzlichen Dank für Ihr Interesse. Wir können ein persönliches Gespräch am" & vbCrLf & vbCrLf & Format(Me.datum_interv1, "DDDD") & ", den " & Me.datum_interv1 & " um " & Format(Me.Uhrzeit_interv1, "HH:MM") & " Uhr" & vbCrLf & vbCrLf & "ermöglichen." & vbCrLf & vbCrLf & "Ihr Gesprächspartner wird voraussichtlich " & Me.Gespraechspartner1 & " sein." & vbCrLf & vbCrLf & "Wir freuen uns auf ein interessantes Gespräch mit Ihnen."

    With myMail
        ' den Empfänger festlegen
        .SentOnBehalfOfName = "xxxxx@xxxx.de"
        .To = strUserMail
       
        ' Den Betreff der Email festlegen
        .Subject = "Terminasprache"
       
        ' Das Email-Text-Format und den Text der Email festlegen

            .Body = strMailBody1person

        .Display

    End With

    Set att = Nothing
    Set myMail = Nothing
    Set myOutlApp = Nothing
End Sub

Hier ist die Abfrage, auf die sich der Code bezieht:
SELECT [AnredeText] & " " & [nName] & "," AS MailAnredeKomplett, tblMailItems.MailItemID AS Ausdr1, tblAnrede.SpracheRID, [vName] & "," AS MailAnredeDu
FROM tblAnrede INNER JOIN tblMailItems ON tblAnrede.AnredeID = tblMailItems.AnredeRID2
WHERE (((tblMailItems.MailItemID) Like [BewID]));
 

Offline el_gomero

  • Access-Profi
  • **
  • Beiträge: 421
  • Wissen ist Macht - weiss nichts - Macht nichts
Hallo,

beim ersten überfliegen fällt mir auf - hier:
Set rst = qdf.OpenRecordset(dbOpenDynaset)

fehlt die Zuweisung des Recordsets. Du meintest vermutlich so:

Set rst = qdf.OpenRecordset()
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen
 

Offline nimora

  • Access-Profi
  • **
  • Beiträge: 112
besten Dank el_gomero,

leider hat das keine Änderung gebracht. Mir ist auch der Grund nicht klar. Könntest du deine Aussage noch etwas erklären?

btw: Wenn ich die Zeile "strMailBody1person = ..." auskommentiere, wird die Mail, nur ohne Inhalt erzeugt und die debug.print's werden ausgegeben.
Der Wurm ist wirklich in dieser Zeile.
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 22795
Hallo,

glaube, der Fehler liegt woanders...


Wo(mit) durchläufst Du den Recordset?  (Do Until rst.eof)


Willst Du hier wirklich mit Like vergleichen?
Welchen Datentyp haben MailItemID und BewID?


Zitat
(((tblMailItems.MailItemID) Like [BewID]));


Enthält rst!MailAnredeKomplett   evtl. NULL?  Schreib dann mal so:

 strMailBody1person = "" & rst!MailAnredeKomplett & vbCrLf &  .........

Offline PhilS

  • Administrator
  • Access-Profi
  • *****
  • Beiträge: 173
    • Tipps zu Access, VBA, SQL und Co.
Ich verstehe nicht warum, denn das Sammeln der Daten im rst scheint ja zu funktionieren. Hat da jemand evtl. nen Tipp für mich?
Eines der folgenden Formularsteuerlemente existiert nicht oder kann nicht eindeutig identifiziert werden.
  • datum_interv1
  • Uhrzeit_interv1
  • Gespraechspartner1

Offline nimora

  • Access-Profi
  • **
  • Beiträge: 112
besten Dank,

dieselbe Konstellation funktioniert auch schon bei der Eingangsbestätigung.

Ich habe jetzt mal Stück für Stück auskommentiert und der Fehler tritt erst auf, sobald die Datumsfelder mit ins spiel kommen. kommentiere ich die aus, läuft alles wie es soll und die Inhalte stimmen. Ich habe jetzt auch den schritt übersprungen, das alles in eine Variable zu schreiben, sondern packe es gleich in .Body = rein. dennoch, ab dem Datumsfeld kommt die Fehlermeldung.

Hilft das bei der Beurteilung?

@PhilS. Das würde deinen Part unterstützen, dass die nicht eindeutig identifiziert werden können. Vorhanden sind sie aber und ich habe die entsprechenden Felder füllen können
 

Offline nimora

  • Access-Profi
  • **
  • Beiträge: 112
So: in der Autovervollständigung habe ich gemerkt, dass die Felder me.datum_interv1, uhrzeit... und Gespraechspartner1 nicht auftauchten.

ich habe die Felder in dem Formular raus geworfen und noch mal eingefügt. dann ging es.

Merkwürdige Sache das, vor allem, das was die Autovervollständiung angeboten hat, gab es wieder in der Tabelle, noch im Vormular.

Danke an alle, @PhilS, du lagst am nächsten dran und hast den richtigen Anstoß gegeben.

Besten Dank