Access makró dátum problémák (eeee/hh/nn és eeee.hh.nn. )

Access makró dátum problémák (eeee/hh/nn és eeee.hh.nn. )
2015-01-10T15:44:30+01:00
2015-01-13T10:35:44+01:00
2022-12-02T01:41:52+01:00
ufss
Sziasztok!

A következő problámával találkoztam: a dátumbeállításoknál a windowsos beállításoknál hogyha átállítom eeee/hh/nn formátumra, akkor működik az sql, de ha az alapétrelmezett forműtumban van a windows, (eeee.hh.nn.) akkor sql szinttaktikai hibát ír ki. Nem tudom átalakítani az angol dátumra, mert állandóan visszaalkítja valahol, de a kód meg angolt kért szerintem. Van valakinek ötlete?

ez a lényege:



VAR_NB_PAYMENT = Me.éves_fizetési_ciklus * DateDiff("yyyy", VAR_START, var_end)
VAR_DURATION_MONTH = DateDiff("m", VAR_START, var_end)
VAR_INTERVAL = VAR_DURATION_MONTH / VAR_NB_PAYMENT

VAR_DUE_DATE = VAR_START
For i = 1 To VAR_NB_PAYMENT
SQL = "INSERT INTO számla ( szerződésszám, cég, díj, esedékesség ) "
SQL = SQL & "SELECT szerződés.szerződésszám, szerződés.cég, Round([díj]/([szerződés]![éves_fizetési_ciklus]"
SQL = SQL & "*DateDiff('yyyy',[szerződés]![szerződés_kezdete],[szerződés]![szerződés_vége])),1) AS amount, #" & VAR_DUE_DATE & "# "
SQL = SQL & "FROM szerződés "
SQL = SQL & "WHERE (((szerződés.szerződésszám)=[Forms]![számla_létrehozás]![szerződésszám]));"

DoCmd.SetWarnings False
'DoCmd.OpenQuery "add_payment"
DoCmd.RunSQL SQL
DoCmd.SetWarnings True
VAR_DUE_DATE = DateAdd("m", VAR_INTERVAL, VAR_DUE_DATE)
Next i

Ha var_Startot átalakítom, a var_due_date  megint magyar dátum lesz.

KÖSZI!
Mutasd a teljes hozzászólást!
Én ezt használom az SQL -be való átadásnál, és így nem érdekel, hogy mi a dátum formátuma.

Public Function DateTimeToFindsString(DateTime As Date) As String ' A DÁTUM/IDŐ formátumot átalakítja a felterben és az SQL-ben használható formára! DateTimeToFindsString = "#" & Month(DateTime) & "/" & Day(DateTime) & "/" & Year(DateTime) & " " & Hour(DateTime) & ":" & Minute(DateTime) & ":" & Second(DateTime) & "#" End Function
Mutasd a teljes hozzászólást!

  • Nem angolt kér, hanem amerikait, de valóban ez egy probléma. A vba kód (nem makró, mert access alatt van külön makró is) a dátum szöveg konverziónál használja a windows regionális beállításait, az sql kód viszont nem. A gond ott lehet, ahol a var_due_date-et beilleszted az sql utasításba. Használd a format() üggvényt a dátum megfelelő formåtumra hozására.
    Mutasd a teljes hozzászólást!
  • Én ezt használom az SQL -be való átadásnál, és így nem érdekel, hogy mi a dátum formátuma.

    Public Function DateTimeToFindsString(DateTime As Date) As String ' A DÁTUM/IDŐ formátumot átalakítja a felterben és az SQL-ben használható formára! DateTimeToFindsString = "#" & Month(DateTime) & "/" & Day(DateTime) & "/" & Year(DateTime) & " " & Hour(DateTime) & ":" & Minute(DateTime) & ":" & Second(DateTime) & "#" End Function
    Mutasd a teljes hozzászólást!
  • Ami ugyanaz, mintha format()-tal formáznád meg, csak ott elég egyszer feldolgoznia a VBA-nak a dátumot, nem 3x.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd