Ik exporteer tekst en datums vanuit MS Access 2007 naar MS Word 2007.
Dit kan in 4 talen. Alles in in de database vertaald, maar de datums worden
gegenereerd en daar door niet vertaald.
De datums staan dus altijd in het Nederlands. Hoe kan ik de datums in de
juiste taal exporteren?
Alvast bedankt,
Frits
DatumStr = Format(Me.datum, "dd mmmm yyyy")
UwDatumStr = Format(Me.UwDatum, "dd mmmm yyyy")
Maar als ik voor het Engels de volgende code gebruik:
DatumStr = UCase(Left(Format(Me.datum, "Mmmm dd, yyyy"), 1)) &
LCase(Right(Format(Me.datum, "Mmmm dd, yyyy"), Len(Format(Me.datum, "Mmmm
dd, yyyy")) - 1))
UwDatumStr = UCase(Left(Format(Me.UwDatum, "Mmmm dd, yyyy"), 1)) &
LCase(Right(Format(Me.UwDatum, "Mmmm dd, yyyy"), Len(Format(Me.UwDatum,
"Mmmm dd, yyyy")) - 1))
dan wordt de maand met een hoofdletter geschreven en de volgorde is anders,
maar de spelling blijft Nederlands.
Metde volgende code exporteer ik het vervolgens naar MS Word:
Set wrdobj = CreateObject("Word.Application")
wrdobj.Visible = True
wrdobj.Activate
wrdobj.Documents.Open (strPad + strBestand + strExtention) 'hier wordt
het juiste sjabloon geopend.
wrdobj.ActiveDocument.Bookmarks("uwdatum").Range.Text = UwDatumStr
wrdobj.ActiveDocument.Bookmarks("Datum").Range.Text = DatumStr
Je zal dus in 4-talen aan moeten geven hoe de datum moet worden gelezen.
Op zijn Engels is dat dus: Format(Datum,"mm-dd-yyyy")
"Frits.van Leeuwen" wrote:
> .
>
Tabel: VertaalTabel
Velden: MaandCode nummeriek
Land nummeriek
MaandInJuisteTaal Tekst
Als je die dan zo toevoegd dan zou het ook moeten werken:
Vertaling =
Dfirst("MaandInJuisteTaal";"VertaalTabel";"DatePart('m',me.datum) And Land =
XX ") '----- XX is de landcode
Daarna kan je hem indelen en dus exporteren zoals je zelf wilt......
Bijv: vertaling & " " & DatePart('dd',Me.datum) & ", " &
DatePart('yyyy',Me.datum)
December 21, 2009
' --- Functie DatumInJuisteTaal geeft de datum op een goed manier in tekst
weer terug ---
Function DatumInJuisteTaal(FTaal As String, FDatum As Date) As String
' INPUT
' FTaal = de taalcode om te bepalen waarin de output moet staan.
' FDatum = datum cijfers.
' OUTPUT
' DatumInJuisteTaal = de datum in tekst in de juiste FTaal en opmaak.
' LOCAL
' FDag = dag in 2 cijfers
' FMaand = maand in 2 cijfers
' FJaar = jaar in 4 cijfers
Dim FDag, FMaand, FJaar As String
FDag = Format(FDatum, "dd")
FMaand = Format(FDatum, "mm")
FJaar = Format(FDatum, "jjjj")
Select Case (FTaal + FMaand)
Case "NL01"
DatumInJuisteTaal = FDag + " januari " + FJaar
Case "NL02"
DatumInJuisteTaal = FDag + " februari " + FJaar
Case "NL03"
DatumInJuisteTaal = FDag + " maart " + FJaar
Case "NL04"
DatumInJuisteTaal = FDag + " april " + FJaar
Case "NL05"
DatumInJuisteTaal = FDag + " mei " + FJaar
Case "NL06"
DatumInJuisteTaal = FDag + " juni " + FJaar
Case "NL07"
DatumInJuisteTaal = FDag + " juli " + FJaar
Case "NL08"
DatumInJuisteTaal = FDag + " augustus " + FJaar
Case "NL09"
DatumInJuisteTaal = FDag + " september " + FJaar
Case "NL10"
DatumInJuisteTaal = FDag + " oktober " + FJaar
Case "NL11"
DatumInJuisteTaal = FDag + " november " + FJaar
Case "NL12"
DatumInJuisteTaal = FDag + " december " + FJaar
Case "EN01"
DatumInJuisteTaal = "January " + FDag + ", " + FJaar
Case "EN02"
DatumInJuisteTaal = "February " + FDag + ", " + FJaar
Case "EN03"
DatumInJuisteTaal = "March " + FDag + ", " + FJaar
Case "EN04"
DatumInJuisteTaal = "April " + FDag + ", " + FJaar
Case "EN05"
DatumInJuisteTaal = "May " + FDag + ", " + FJaar
Case "EN06"
DatumInJuisteTaal = "June " + FDag + ", " + FJaar
Case "EN07"
DatumInJuisteTaal = "July " + FDag + ", " + FJaar
Case "EN08"
DatumInJuisteTaal = "August " + FDag + ", " + FJaar
Case "EN09"
DatumInJuisteTaal = "September " + FDag + ", " + FJaar
Case "EN10"
DatumInJuisteTaal = "October " + FDag + ", " + FJaar
Case "EN11"
DatumInJuisteTaal = "November " + FDag + ", " + FJaar
Case "EN12"
DatumInJuisteTaal = "December " + FDag + ", " + FJaar
Case "DU01"
DatumInJuisteTaal = "den " + FDag + ". Januar " + FJaar
Case "DU02"
DatumInJuisteTaal = "den " + FDag + ". Februar " + FJaar
Case "DU03"
DatumInJuisteTaal = "den " + FDag + ". M�rz " + FJaar
Case "DU04"
DatumInJuisteTaal = "den " + FDag + ". April " + FJaar
Case "DU05"
DatumInJuisteTaal = "den " + FDag + ". Mai " + FJaar
Case "DU06"
DatumInJuisteTaal = "den " + FDag + ". Juni " + FJaar
Case "DU07"
DatumInJuisteTaal = "den " + FDag + ". Juli " + FJaar
Case "DU08"
DatumInJuisteTaal = "den " + FDag + ". August " + FJaar
Case "DU09"
DatumInJuisteTaal = "den " + FDag + ". September " + FJaar
Case "DU10"
DatumInJuisteTaal = "den " + FDag + ". Oktober " + FJaar
Case "DU11"
DatumInJuisteTaal = "den " + FDag + ". November " + FJaar
Case "DU12"
DatumInJuisteTaal = "den " + FDag + ". Dezember " + FJaar
Case "FR01"
DatumInJuisteTaal = "le " + FDag + " janvier " + FJaar
Case "FR02"
DatumInJuisteTaal = "le " + FDag + " f�vrier " + FJaar
Case "FR03"
DatumInJuisteTaal = "le " + FDag + " mars " + FJaar
Case "FR04"
DatumInJuisteTaal = "le " + FDag + " avril " + FJaar
Case "FR05"
DatumInJuisteTaal = "le " + FDag + " mai " + FJaar
Case "FR06"
DatumInJuisteTaal = "le " + FDag + " juin " + FJaar
Case "FR07"
DatumInJuisteTaal = "le " + FDag + " juillet " + FJaar
Case "FR08"
DatumInJuisteTaal = "le " + FDag + " ao�t " + FJaar
Case "FR09"
DatumInJuisteTaal = "le " + FDag + " septembre " + FJaar
Case "FR10"
DatumInJuisteTaal = "le " + FDag + " octobre " + FJaar
Case "FR11"
DatumInJuisteTaal = "le " + FDag + " novembre " + FJaar
Case "FR12"
DatumInJuisteTaal = "le " + FDag + " d�cembre " + FJaar
End Select
End Function
' --- einde functie ---
Ik roep de functie alsvolgt aan:
Dim strTaal, DatumStr As String
strTaal = "NL"
DatumStr = DatumInJuisteTaal(strTaal, Me.datum)
Maar nu wordt strTaal gemarkeerd en krijg ik de volgende foutmelding:
Compileerfout:
ByRef-argumenttypen komen niet overeen.
Wie weet er wat ik over het hoofd zie?
Dim strTaal As String
Dim DatumStr As String
anders is enkel de laatste als string gedefinieerd
U kunt ook de functie choose(FMaand,"Januari","Februari",....)
gebruiken
anders is enkel de laatste als string gedefinieerd
U kunt ook de functie choose(FMaand,"Januari","Februari",....)
gebruiken
LucT bedankt.
Ik wist niet dat ik achter Dim maar 1 variabele kan plaatsen. Ik herinner
mij dat ik in Access 2003 dit ook vaak deed en daar geen problemen mee had.
Maar misschien was dat toeval. Weer wat geleerd zullen we maar zeggen.
Kan je me vertellen hoe je die functie choose voor mij ingedachten hebt? Het
klinkt interessant.
ipv zoveel case na mekaar, enkel de taal afvragen
Select Case (FTaal)
Case "NL"
DatumInJuisteTaal = FDag & " " & choose(FMaand, "Januari ",
"Februari", tem december) & " " & FJaar
Case "EN"
DatumInJuisteTaal = FDag & " " & choose(FMaand, "January" ,
"February , ....) & " " & FJaar
Case "FR"
.......
End select
Goed man!!!!
Nu is mijn code gelijk een stuk overzichtelijker.
Bedankt