[ rribaric @ 17.09.2004. 19:10 ] @
Imam problem kod izrade querya.
Koristim funkciju za konvertiranje datuma koju je zidar naveo.
Medjutim javlja mi da je greška u sql izrazu.
Kad pokrenem isti izras a umjesto ovih funkcija date4SQl() navedem fiksne datume u literalima sql izraz funkcionira.
U čemu je greška.
Dali sql izraz uspoređuje (stranaA.datum_izdavanja )tipa date I (date4SQL)tipa string pa zbog toga javlja grešku.Ako je to kako da to otklonim.
A ako tko ima rješenje neka mi kaže kako napraviti SQl izraz koji bi dao podatke na osnovu unesenih datuma.



Function Date4SQL(Date2Convert As Variant) As String
Date4SQL = "#" & Format(CVDate(Date2Convert), "mm/dd/yyyy") & "#"
MsgBox "u procedurisam"
MsgBox Date4SQL
End Function



Public Function fpotvrdi()
Dim CurrentForm As Form
Set CurrentForm = Screen.ActiveForm
Forms!frmdatum.Refresh
On Error GoTo Err_cmdPreview_Click
Dim tsql As String
Dim z, a As Variant

Dim db3 As DAO.Database, tb3 As DAO.Recordset, br As Integer
Set db3 = CurrentDb
Set tb3 = db3.OpenRecordset("parametri")
tb3.MoveFirst
a = tb3!DatumOD
z = tb3!DatumDo
MsgBox a
Rem ovo je kopirani kod
[Forms]![frmreport].Visible = False
Dim stDocName, strsql As String
stDocName = "rptdatum"
MsgBox a
tsql = " SELECT stranaA.* ,stranaB.ID,stranaB.broj "
tsql = tsql & " FROM stranaA ,stranaB "
tsql = tsql & " WHERE stranaB.ID=stranaA.ID AND stranaA.datum_izdavanja BETWEEN " & Date4SQL(a) & " AND " & Date4SQL(z) & ";"


MsgBox tsql




DoCmd.OpenReport stDocName, acPreview, tsql
[ JogyII @ 17.09.2004. 19:42 ] @
probaj ovu funkciju za datum :

Code:

Public Function DateToStr(Datum As Date) As String
    DateToStr = " DateSerial(" & CStr(Year(Datum)) & ", " & CStr(Month(Datum)) & ", " & CStr(Day(Datum)) & ") "
End Function


ova funkcija sluzi za Datum+Vreme :

Code:

Public Function DateTimeToStr(Vreme As Variant) As String
    Dim tVreme As Date
    tVreme = CDate(Vreme)
    DateTimeToStr = " (DateSerial(" & CStr(Year(tVreme)) & ", " & CStr(Month(tVreme)) & ", " & CStr(Day(tVreme)) & ") + TimeSerial(" & CStr(Hour(tVreme)) & ", " & CStr(Minute(tVreme)) & ", " & CStr(Second(tVreme)) & " )) "
End Function


obe koristim vec koju godinu, i vrlo su pouzdane, ali koristi ih za sve datumske parametre, a ne pojedine, jer ces potrositi koji sat da nadjes gde ti je access zamenio mesec i dan jer ti je windows-ov international "nestandardno podesen"

nacin koriscenja :
Code:

tSql = tSql & " WHERE ([GKZ].[DatumPromene]) Between " & DateToStr(SDate) & " And " & DateToStr(EDate) & " ) "






[ rribaric @ 20.09.2004. 22:16 ] @
Provjereno radi i jako sam zadovoljan s kodom.
HvALA!
[ rribaric @ 20.09.2004. 22:17 ] @
Provjereno radi i jako sam zadovoljan s kodom.
HvALA!