Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Manfred S am Juli 30, 2012, 20:50:50

Titel: Daten werden beim Einlesen abgeschnitten
Beitrag von: Manfred S am Juli 30, 2012, 20:50:50
Hallo,

mit folgendem Code ziehe ich Daten über ein Kombifeld aus einer Tabelle und übertrage sie in eine andere Tabelle. Beide Datenfelder sind Memofelder:

Me!EmailBody = Me!EmailBetreff.Column(1)

Es werden auch die relevanten Daten ohne Fehlermeldung eingelesen. Alles gut bis auf die Tatsache, das der eingelesene Text einfach abgeschnitten wird. Beide Tabellenfelder sind aber auf Memo eingestellt. Oder ist es nicht möglich, den Inhalt aus einem Memofeld so einzulesen?

Gruß

Titel: Re: Daten werden beim Einlesen abgeschnitten
Beitrag von: Beaker s.a. am Juli 30, 2012, 21:23:17
Hallo Manfred,
Warum willst Du Daten doppelt speichern?
Ohne Dein Datenmodell zu kennen sieht die Vorgehensweise danach
aus, als wenn die "Bodies" in einer Vorratstabelle gespeichert sind.
Dann reicht IMO aber die Speicherung der ID. Über die kommst Du
doch jederzeit an das Memo.
Zum Problem an sich könnte ich mir vorstellen, dass eine Spalte in
Kombis nur die üblichen 255 Zeichen aufnehmen/weitergeben kann.
gruss ekkehard
Titel: Re: Daten werden beim Einlesen abgeschnitten
Beitrag von: Manfred S am Juli 30, 2012, 21:41:37
Hallo Ekkehard,

ja, habe eine Tabelle zur Speicherung sowohl der Betreffzeile als auch des Bodys.

Du hast Recht, wozu diese Redundanz. Ich bekomme es wohl noch hin, den Primärschlüssel auszulesen und zu speichern. Den bislang verwendeten "Übertragungscode" bekomm ich ohne Weiteres sicherlich nicht ohne Hilfe an Start:

On Error GoTo cmdEmailbild1_Err
Me.Refresh
'Wenn das Feld leer ist, gebe dem User eine Meldung aus, ansonsten erzeuge eine Mail:
If IsNull(Me.AdrMail1) Then
If MsgBox("Private Mailadresse nicht vorhanden. Jetzt eingeben?", vbYesNo + vbInformation, "Hinweis") = vbYes Then
        DoCmd.Close acForm, Me.Name
' Ansonsten, Popup schliessen, Adresse aufrufen, Focus auf Steuerelement "Nachname" setzen und Mailadresse eingeben.
    Forms![frmAdressen]!MailAW.SetFocus
   Forms![frmAdressen]!MailAW.Dropdown
   End If
Else
' Mailversand, wenn kein anderer Fehler vorliegt.
DoCmd.SendObject , , , Me.AdrMail1, , , Me!EmailBetreff, Me!EmailBody, True
Me!Mailversandprivat = Now()
End If

GoTo cmdEmailbild1_EndIt
cmdEmailbild1_Err:
If Err.Number = 2501 Then
'Senden der Mail wurde abgebrochen:
MsgBox "Das Senden der Mail wurde abgebrochen", vbInformation, "Hinweis"
'Me!Mailversandprivat = ""
Else
'Ein anderer Fehler ist aufgetreten:
MsgBox "Ohne Texteingabe im Feld 'Email Betreff' kann keine Mail versendet werden. Geben Sie einen Text im Betreff ein, wählen eine Vorlage über den Rollbalken aus oder brechen Sie den Vorgang über den Schliessen Button ab.", 16, "Betreffzeile nicht ausgefüllt"
'MsgBox "Fehler: " & vbCrLf & Err.Number & vbCrLf & Err.Description, vbCritical, "Fehler"
End If
cmdEmailbild1_EndIt:




Titel: Re: Daten werden beim Einlesen abgeschnitten
Beitrag von: DF6GL am Juli 30, 2012, 22:24:52
Hallo Manfred,


die Spalten einer Kombifeldliste sind vom Typ TEXT und können jeweils max. nur 255 Zeichen aufnehmen....

Versuch es so, das Memofeld auszulesen:

Me!EmailBody = Dlookup("DeinMemofeld","tblDeineMemotabelle", "IDFeld=" &  Me!EmailBetreff)

wobei das Kombifeld in seiner ersten Spalte den Primärschlüsselfeldwert (IDFeld) beinhalten muss.
Titel: Re: Daten werden beim Einlesen abgeschnitten
Beitrag von: Manfred S am August 01, 2012, 13:44:39
Hallo Franz,

der Text wird jetzt vollständig übernommen und als Body in die Email übernommen. Allerdings wird beim Übertragen in das Emailprogramm jetzt der Primärschlüsselwert des Betreffs in die Betreffzeile des Mailprogramms eingetragen und nicht der Klartext...

Gruß

Manfred
Titel: Re: Daten werden beim Einlesen abgeschnitten
Beitrag von: Manfred S am August 01, 2012, 15:36:42
Habe es gelöst, indem ich ein "Hilfsdatenfeld" angelegt habe, in dem der Textwert abgelegt wird und auf nicht sichtbar eingestellt. Da verdrehet sich sicherlich das Programmiergerz, aber es funktioniert einwandfrei :-)

Danke
Titel: Re: Daten werden beim Einlesen abgeschnitten
Beitrag von: DF6GL am August 01, 2012, 15:43:33
Hallo,


dann dreh nochmal am "Programmiergerz" und schreib:

DoCmd.SendObject , , , Me.AdrMail1, , , Me!EmailBetreff.Column(1) , Me!EmailBody, True


wobei in der ersten Spalte des Kombis der ID-Wert, in der zweiten der Betreff stehen muss.
Titel: Re: Daten werden beim Einlesen abgeschnitten
Beitrag von: Manfred S am August 01, 2012, 17:57:47
Einfach schon göttlich Franz,  

und autsch, das funktioniert so was von perfekt. Und jetzt kann ich, wie ursprünglich geplant, sehen, was als letzte Mail rausgegangen ist (wegen Speicherung der letzten Emailversanddaten). Irgendwann kommt auch noch ein automatisierter Dateianhang hinzu.

Seit 2004 steter Verbesserung meiner DB und nach ca. 4000 Arbeitsstunden gibt es doch noch immer etwas, was es zu verbessern gilt. Danke Dir und den anderen freundlichen Helfern hier.

Gruß

Manfred