Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Gdje je greska u kodu?

[es] :: Visual Basic 6 :: Gdje je greska u kodu?

[ Pregleda: 2939 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Robinsonk@

Član broj: 14124
Poruke: 41
*.impsat.com.co



Profil

icon Gdje je greska u kodu?15.01.2004. u 15:16 - pre 246 meseci
Ovaj kod, naravno prilagodjen imenima u projektu i bazi, sluzi za stampanje podataka:
Code:

Str = "SELECT IMETABELE.IMEKOLONE1, IMETABELE.IMEKOLONE2, IMETABELE.IMEKOLONE2, IMETABELE.DATUM " & _
   "FROM IMETABELE " & _
   " WHERE IMETABELE.DATUM = " & frmIMEFORME.lblIMELABELE.Caption
   
   Set IMERECORDSETA = New ADODB.Recordset
   IMERECORDSETA.Open Str, IMEKONEKCIJE, adOpenDynamic, adLockOptimistic
   Set drIMEDATAREPORTA.DataSource = IMERECORDSETA




Kada ga pokrenem javlja sledece:


Syntax error in number in query expression ‘IMETABELE.DATUM = 15.1.2004’

Naravno da je rekordset definisan, da se tabeli pristupa preko drugog rekordseta.
Podaci koje uzimam mi takodje trebaju zato stoje u SELECT upitu. Gresku javlja kod:

IMERECORDSETA.Open Str, IMEKONEKCIJE, adOpenDynamic, adLockOptimistic


U cemu bi mogla da bude greska?
 
Odgovor na temu

mladenovicz
Zeljko Mladenovic
Xoran Technologies, Inc., Ann Arbor, MI,
USA / Software Engineer
Ann Arbor, MI, USA

Član broj: 6598
Poruke: 2065
*.yubc.net

Jabber: mladenovicz@elitesecurity.org
ICQ: 95144142
Sajt: yubc.net/~mz


Profil

icon Re: Gdje je greska u kodu?15.01.2004. u 15:22 - pre 246 meseci
probaj ovo

Code:

" WHERE IMETABELE.DATUM = " & frmIMEFORME.lblIMELABELE.Caption


da zamenis sa

Code:

" WHERE IMETABELE.DATUM = #" & frmIMEFORME.lblIMELABELE.Caption & "#"


s tim sto ces najverovatnije morati da uradis i ovo

Code:

Format(frmIMEFORME.lblIMELABELE.Caption, "MM/DD/YYYY")

 
Odgovor na temu

Robinsonk@

Član broj: 14124
Poruke: 41
*.impsat.com.co



Profil

icon Re: Gdje je greska u kodu?15.01.2004. u 17:06 - pre 246 meseci
Poslije dodavanja tarabe javlja sledece:

Syntax error in date in query expression ‘IMETABELE.DATUM = #15.1.2004#'

Kada dodam"
Code:

Format(frmIMEFORME.lblIMELABELE.Caption, "MM/DD/YYYY")



Ne prihvata tu fukciju, javlja da nedostaje znak "="

Inace, u bazi se datum upisuje u obliku (za danasnji dan) 15.1.2004, upisuje se iz te iste labele i ne znam zasto ne bi mogao da ih uporedi?!

P.S. Da li bi upotreba ove f-je na svim mjestima na kojima se radi sa datumom
onemogucila greske koje se javljau kada se program prenese na kompjuter kod
kojeg je ispis datuma drugaciji?

 
Odgovor na temu

mladenovicz
Zeljko Mladenovic
Xoran Technologies, Inc., Ann Arbor, MI,
USA / Software Engineer
Ann Arbor, MI, USA

Član broj: 6598
Poruke: 2065
*.yubc.net

Jabber: mladenovicz@elitesecurity.org
ICQ: 95144142
Sajt: yubc.net/~mz


Profil

icon Re: Gdje je greska u kodu?15.01.2004. u 17:37 - pre 246 meseci
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?

 
Odgovor na temu

Robinsonk@

Član broj: 14124
Poruke: 41
*.impsat.com.co



Profil

icon Re: Gdje je greska u kodu?15.01.2004. u 20:46 - pre 246 meseci
Radim bazu u Access-u, a kada se radi u SQL-u javlja probleme zavisno od toga kako se cuva datum.
U access-u, u bazi, upisuje datum bas onako kako je upisan u labeli, zato ne znam zasto ne radi kod koji sam napisala.
Cini mi se pomalo i komplikovanim koriscenje ove f-je koju si napisao. Da li treba da je koristim prilikom svakog upisa datuma u bazu ili samo ovdje gdje citam datum iz baze?

Ne mogu da provjerim da li radi jer nisi napisao f-ju GetLocaleInfo koju koristis u f-ji GetInfo.
 
Odgovor na temu

ssteva
Beograd

Član broj: 12533
Poruke: 55
195.250.117.*



Profil

icon Re: Gdje je greska u kodu?15.01.2004. u 22:26 - pre 246 meseci
Sto ne rece odmah da radis u Access-u...

Code:
Str = "SELECT IMETABELE.IMEKOLONE1, IMETABELE.IMEKOLONE2, IMETABELE.IMEKOLONE2, IMETABELE.DATUM " & _
   "FROM IMETABELE " & _
   " WHERE IMETABELE.DATUM = " & Clng(Cdate(frmIMEFORME.lblIMELABELE.Caption))
 
Odgovor na temu

byTer

Član broj: 10936
Poruke: 1221
*.info-net.co.yu

ICQ: 47761626


Profil

icon Re: Gdje je greska u kodu?15.01.2004. u 23:50 - pre 246 meseci
Citat:
Robinsonk@:
Poslije dodavanja tarabe javlja sledece:

Syntax error in date in query expression ‘IMETABELE.DATUM = #15.1.2004#'

Kada dodam"
Code:

Format(frmIMEFORME.lblIMELABELE.Caption, "MM/DD/YYYY")



Ne prihvata tu fukciju, javlja da nedostaje znak "="

Inace, u bazi se datum upisuje u obliku (za danasnji dan) 15.1.2004, upisuje se iz te iste labele i ne znam zasto ne bi mogao da ih uporedi?!

P.S. Da li bi upotreba ove f-je na svim mjestima na kojima se radi sa datumom
onemogucila greske koje se javljau kada se program prenese na kompjuter kod
kojeg je ispis datuma drugaciji?



Dodaj na kraj CSTr(Format...) posto verovatno trazi string u SQL upitu.
 
Odgovor na temu

Robinsonk@

Član broj: 14124
Poruke: 41
*.impsat.com.co



Profil

icon Re: Gdje je greska u kodu?16.01.2004. u 09:39 - pre 246 meseci
ssteva, taj kod mi vraca kao rezultat, za npr. danasnji datum 38002 i onda program javlja da
DataField'(empty)' not found jer nije u tom formatu upisan datum.

I kad stavim:

" WHERE Clng(Cdate(IMETABELE.DATUM ))= " & Clng(Cdate(frmIMEFORME.lblIMELABELE.Caption))

opet isto.

ByTer. Ne prihvata ovu f-ju:

CSTr(Format (frmIMEFORME.lblIMELABELE.Caption, "MM/DD/YYYY"))

javlja da Expected:identifier

 
Odgovor na temu

ssteva
Beograd

Član broj: 12533
Poruke: 55
*.jugopetrol.co.yu



Profil

icon Re: Gdje je greska u kodu?16.01.2004. u 10:37 - pre 246 meseci
Citat:
Robinsonk@:
ssteva, taj kod mi vraca kao rezultat, za npr. danasnji datum 38002 i onda program javlja da
DataField'(empty)' not found jer nije u tom formatu upisan datum.

I kad stavim:

" WHERE Clng(Cdate(IMETABELE.DATUM ))= " & Clng(Cdate(frmIMEFORME.lblIMELABELE.Caption))

opet isto.


Konverzija u Long radi sigurno, bez obzira na format lokalnog datuma i to od Accessa 97 do 2003, probao sam.
Da li je polje IMETABELE.DATUM definisano kao Date/Time u tabeli?
Posalji originalni SQL upit koji ne radi, verovatno je tu problem.
 
Odgovor na temu

Robinsonk@

Član broj: 14124
Poruke: 41
*.impsat.com.co



Profil

icon Re: Gdje je greska u kodu?16.01.2004. u 11:01 - pre 246 meseci
Umjesto datuma stavila sam da trazi polje koje ima cjelobrojnu vrijednost tj.

" WHERE IMETABELE.IMEKOLONE = " & frmIMEFORME.lblIMELABELE.Caption

i javlja:

DataField'(empty)' not found

Pretpostavljam da je onda resenje koje je dao ssteva za datum dobro, a ovaj kod ima neku drugu gresku koja nije vezana za format datuma!

Inace, polje jeste podeseno na DateTime.
 
Odgovor na temu

Robinsonk@

Član broj: 14124
Poruke: 41
*.impsat.com.co



Profil

icon Re: Gdje je greska u kodu?16.01.2004. u 11:41 - pre 246 meseci
Uspjela sam da rijesim. Koristila sam resenje koje je ponudio ssteva.
Hvala.
Hvala svima koji su mi pomagali.
 
Odgovor na temu

[es] :: Visual Basic 6 :: Gdje je greska u kodu?

[ Pregleda: 2939 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.