Hm, ja u svojim aplikacijama uvek prosledjujem separator "/" (verovatno postoji neki dobar razlog, ovo sam davno napravio, pa se i ne secam vise :)), tako da probaj da iskoristis ovaj kod ispod. On formatira datum u odgovarjuci format i zamenjuje tekuci date separator sa onim koji mu je prosledjen (default je /)
Code:
'LOCAL SETTINGS CONSTANTS
Const LOCALE_USER_DEFAULT = &H400
Const LOCALE_SDATE = &H1D ' date separator
' retrieve local settings (country, language, date format, date separator, ...)
Public Function GetInfo(ByVal lInfo As Long) As String
Dim Buffer As String
Dim Ret As Long
Buffer = String$(256, 0)
Ret = GetLocaleInfo(LOCALE_USER_DEFAULT, lInfo, Buffer, Len(Buffer))
If Ret > 0 Then
GetInfo = Left$(Buffer, Ret - 1)
Else
GetInfo = ""
End If
End Function
Public Function MyFormatDate( _
dDate As Date, _
sFormat As String, _
Optional sSeparator As String = "/" _
) As String
Dim curSep As String
curSep = GetInfo(LOCALE_SDATE)
MyFormatDate = Replace(Format(dDate, sFormat), curSep, sSeparator)
End Function
Kad prosledjujes datum u SQL upit, pozovi MyFormatDate(NekiDatum, "MM/DD/YYYY")
Code:
Str = "SELECT IMETABELE.IMEKOLONE1, IMETABELE.IMEKOLONE2, IMETABELE.IMEKOLONE2, IMETABELE.DATUM " & _
"FROM IMETABELE " & _
" WHERE IMETABELE.DATUM = #" & MyFormatDate(frmIMEFORME.lblIMELABELE.Caption, "MM/DD/YYYY") & "#"
Koliko se secam, kad prosledjujes datum SQL upitu uvek se formatira u "MM/DD/YYYY", bez obzira na Local Settings, a kad upisujes u bazu prosledis ga takvog kakav jeste, pa se baza pobrine da upise kako valja. Ovo sigurno radi sa Accessom, za druge baze nisam siguran. Btw, sa kojom bazom radis?