MS Access Forum auf freeaccess.de
http://forum.freeaccess.de/YaBB.pl
MS Access und SQL-Server >> Access und SQL-Server-Forum >> Datum in Mail umwandeln im US-style mittels Array
http://forum.freeaccess.de/YaBB.pl?num=1504116130

Beitrag begonnen von Lothar am 30.08.2017 um 20:02:10

Titel: Datum in Mail umwandeln im US-style mittels Array
Beitrag von Lothar am 30.08.2017 um 20:02:10
Guten Abend veerhte Gemeinde,

aus einem Formular heraus, das auch als solches per e-mail an den Kunden gesendet wird, soll ein Datum im Text der Mail im Format "Dec-17-2017" gesendet werden. In der Funtion "Function MonatErmitteln()" wird das Datum aus dem Formular zerlegt, um den Monat zu ermitteln. Danach soll es wieder Stück-für-Stück zu einem String zusammengesetzt werden und in den Text, hier im Beisp. AA, eingefügt werden. Nur bleibt leider der Bereich leer.

DoCmd.SendObject acForm, "AuftragFormularEnglisch", acFormatPDF, ....
... "The goods will be ready for shipment as of " & AA & "..."

Function MonatErmitteln()

Dim MonatUS As Variant
Dim AA As String
Dim VerladedatumTxt As String

VerladedatumTxt = Forms![AuftragFormularEnglisch]![Verladedatum1] 'Herkunftsfeld

VerladedatumMonat = Mid(VerladedatumTxt, 4, 2) 'Monat ermitteln

MonatUS = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")

A = MonatUS((VerladedatumMonat) - 1)

AA = A & "-" & Left(VerladedatumTxt, 2) & "-" & Right(VerladedatumTxt, 4) 'das Datum wieder zusammenbauen

End Function

Wenn ich vor dem Ende der Funktion mir das Ergebnis mit "MsgBox AA" anzeigen lasse, ist das Ergebnis "Dez-17-2017"; im Text jedoch ""(leer, nix, nad, njende)

Wass habe ich falsch gemacht?

Gruß
Lohar




Titel: Re: Datum in Mail umwandeln im US-style mittels Array
Beitrag von df6gl am 30.08.2017 um 21:49:26
Hallo,

die Variable "AA" ist (lokal) nur  in der Funktion deklariert und außerhalb unbekannt.

Entweder wird sie in einem Standartmodul als "Public" deklariert oder der Wert wird der ebenfalls als Public deklarierten Funktion selber zugewiesen, wobei die Funktion dann im Sendobject-Body-String aufgerufen wird.


Ansonsten ist der Code eher missverständlich programmiert.

(Variablen  ist nicht deklariert, in jeden Modulkopf "Option Explicit" einbauen)




Vorschlag:



[code]Public Function conv2UsDate(Verladedatum As Date) As String
Dim strDate As String
Dim strMon As String
Dim MonatUS()
Dim lngMon As Long


strDate = Format(Verladedatum, "mmm-dd-yyyy")
lngMon = DatePart("m", Verladedatum) 'Monat ermitteln
MonatUS = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
strMon = MonatUS((lngMon) - 1)
conv2UsDate = strMon & Mid(strDate, 4)  'das Datum wieder zusammenbauen

End Function

[/code]


und Aufruf:

DoCmd.SendObject acForm, "AuftragFormularEnglisch", acFormatPDF, ....
... "The goods will be ready for shipment as of " & conv2UsDate(Me!Verladedatum ) & "..."

Titel: Re: Datum in Mail umwandeln im US-style mittels Array
Beitrag von Lothar am 31.08.2017 um 12:38:43
Ja super! Funktioniert einwandfrei! Vielen Dank!  :D
Es gibt in Access Dinge, die werde ich wohl nie kapieren  :-[

Gruß
Lothar 

MS Access Forum auf freeaccess.de » Powered by YaBB 2.5.2!
YaBB © 2000-2009. Alle Rechte vorbehalten.