[ nsofft @ 16.04.2005. 21:58 ] @
Kako da u text1 povucem zbir cele kolone "SUMA"
- polje suma u bazi sam postavio kao broj
-Baza Access
[ KiselinaXP @ 16.04.2005. 22:36 ] @
Pogledaj temu:
" Opet problem sa tabelom! (sabiranje dva polja iz baze) "
[ vujkev @ 16.04.2005. 22:41 ] @
Code:

Text1.text = db.execute("Select sum(Suma) from tblNeka")(0)


Db je ADODB connection
[ nsofft @ 17.04.2005. 10:49 ] @
vujkev
Hvala to sam trazio
[ nsofft @ 23.04.2005. 17:50 ] @
Pokusavao sam danas da iskoristim ovaj kod
Code:

Text1.text = db.execute("Select sum(Suma) from tblNeka")(0)

Ali mi nonstop prikazuje gresku :
Code:
.execute

Kako to da izmenim.
[ Marko_L @ 23.04.2005. 18:32 ] @
Šta koristiš, ADO ili DAO ?
I šta ti predstavlja db u tom kodu koji si ostavio.Znači, daj malo više detalja.
[ nsofft @ 23.04.2005. 19:25 ] @
Db :
Code:
Set db = WS.OpenDatabase(App.Path & "\Internetadresar.mdb")
[ Marko_L @ 23.04.2005. 19:45 ] @
Code:
Text1.Text = db.OpenRecordset("SELECT SUM(Suma) FROM tblNeka").Fields(0).Value
[ vujkev @ 23.04.2005. 19:46 ] @
Probaj umesto Execute da stavis OpenRecordset
Code:

Set db = WS.OpenDatabase(App.Path & "\Internetadresar.mdb")  
Text1.Text = db.OpenRecordset("Select sum(Suma) from tblNeka")(0)
[ Marko_L @ 23.04.2005. 20:10 ] @
Takođe, ako imaš više polja koje želiš da sabiraš, bilo bi dobro napraviti funkciju za to i to iz sledećih razloga.Preglednije je, lakše za upotrebu, a i ne petljaš sa otvorenom objektom koji ti služi za pregled (mada ovo i nije toliko bitno).Znači ovako
Code:
Public Function SumaKolone(polje As String)
Dim baza As Database
Set baza = OpenDatabase([putanja do baze])
SumaKolone = baza.OpenRecordset("SELECT SUM(" & polje & ") FROM tblNeka").Fields(0).Value
baza.Close
End Function

to staviš recimo u modul i onda bilo gde iz tvog programa pozivaš sumu sa
Code:
Text1.Text = SumaKolone([ime polja za sabrati])
[ nsofft @ 24.04.2005. 12:49 ] @
Marko_L
nonstop mi prijavljuje gresku :
Code:
Text1.Text = SumaKolone([ime polja za sabrati])

Naravno :
(ime polja za sabrati) sam zamenio Zbir
(putanja do baze) sa App.Path & "\Internetadresar.mdb"
(tblNeka) sa Internetadresar
[ vujkev @ 24.04.2005. 16:31 ] @
A koju grešku prijavljuje?

Jesi li napisao ovako

Code:

Text1.Text = SumaKolone(Zbir)


ili ovako

Code:

Text1.Text = SumaKolone("Zbir")



Ispravan je drugi primer. Ako nije problem u ovome onda ces morati da napises malo vise detalja o greski
[ Marko_L @ 24.04.2005. 16:50 ] @
vujkev je u slovo napisao ono što sam i ja hteo :)
Dakle, ako to ne radi, postuj tačno koju ti grešku javlja.
[ nsofft @ 24.04.2005. 20:15 ] @
Hvala
ja sam pisao :

Code:
Text1.Text = SumaKolone(Zbir)


I u tome je bila greska
[ nsofft @ 24.04.2005. 20:19 ] @
I imam jos jedno pitanje :
Dali bi moglo da ako je
text2.text = "10.4.2005"
Da mi u polje text1 sabere samo kolone iz baze sa tim datumom
kolona sa datumom se zove Date
[ Marko_L @ 24.04.2005. 20:30 ] @
Može.Izmeni ovu liniju
Code:
SumaKolone = baza.OpenRecordset("SELECT SUM(" & polje & ") FROM tblNeka").Fields(0).Value

u ovo
Code:
SumaKolone = baza.OpenRecordset("SELECT SUM(" & polje & ") FROM tblNeka WHERE Date = #" & CDate(Text2.Text) & "#").Fields(0).Value
[ nsofft @ 24.04.2005. 20:45 ] @
Marko_L
Probao sam da izmenim to ali mi prijavljuje gresku
i obelezi ceo red :
Code:
SumaKolone = baza.OpenRecordset("SELECT SUM(" & polje & ") FROM Internetadresar WHERE Date = #" & CDate(Text2.Text) & "#").Fields(0).Value

U bazi sam polje definisao kao
Date/time
[ Marko_L @ 24.04.2005. 21:00 ] @
Napiši mi tačno koju grešku ti prijavljuje ?
[ nsofft @ 24.04.2005. 21:03 ] @
Evo ti slika u uploadu.
[ Marko_L @ 24.04.2005. 21:12 ] @
Da li si taj kod stavio u modul ? Ako je odgovor "da", onda moraš ispred textbox-a da staviš ime forme kojoj pripada.Recimo, ako se nalazi na formi Form1, moraš umesto
Code:
CDate(Text2.Text)

da staviš
Code:
CDate(Form1.Text2.Text)

E sad, javi da li je to.Ako nije da idemo dalje.
[ nsofft @ 24.04.2005. 21:18 ] @
Da bio sam postavio u module i sada kada sam promenio oped javlja gresku
ali drugaciju pogledaj upload.
[ Marko_L @ 24.04.2005. 21:35 ] @
U kom ti je formatu datum inače u win-u ? Kao parametar moraš da mu pošalješ datum u onom formatu koji ti podešen u Regional Settings-u.
[ nsofft @ 24.04.2005. 21:38 ] @
Marko_L

Probao sam:
11.04.2005 i
11.4.2005
I nece da prihvati ni jedno ni drugo
[ Marko_L @ 24.04.2005. 22:17 ] @
Vidi, to sa upisivanjem datuma u Textbox kontrolu je prilično nezgrapno rešenje, jer se od korisnika očekuje da unese tačan format, a textbox dozvoljava unošenje bilo čega.Recimo, probaj da uneseš u textbox datum na ovaj način 11/04/2005, i to bi trebalo da radi.Zato mislim da je bolje da umesto textbox-a za unos traženog datuma koristiš maskedbox kontrolu kojoj možeš da odrediš tačno određen format koji se očekuje od korisnika.Drugo rešenje bi bilo da staviš tri textboxa, jedan za dan (Text2), jedan za mesec (Text3) i jedan za godinu(Text4) i onda promeniš funkciju, jer po meni je bolje rešenje proslediti datum kao argument , nego ga vući sa druge forme.Znači, probaj funkciju u modulu da postaviš ovako:
Code:
Public Function SumaKolone(polje As String, datum As Date)
Dim baza As Database
Set baza = OpenDatabase([putanja do baze])
SumaKolone = baza.OpenRecordset("SELECT SUM(" & polje & ") FROM tblNeka WHERE Date = #" & datum & "#").Fields(0).Value
baza.Close
End Function

A onda iz koda pozivaš ovako
Code:
Dim datum As Date
datum = Text3.Text & "/" text2.Text & "/" & Text4.Text
Text1.Text = SumaKolone("Zbir", datum)

ili ako koristiš Maked Edit Box kontrolu, onda samo
Code:
Text1.Text = SumaKolone("Zbir", MaskedBox1.Text)
[ nsofft @ 24.04.2005. 22:29 ] @
Marko_L

Gresku mi pokazuje na datum ne znam sta je to?
[ Marko_L @ 24.04.2005. 22:33 ] @
Fali jedno "&".Treba da bude

Code:
datum = Text3.Text & "/" & Text2.Text & "/" & Text4.Text
[ nsofft @ 24.04.2005. 22:51 ] @
Marko_L
Ponovo mi prikazuje gresku jer baza datum konvertuje u
format
11.4.2005
jer moze drugcije ili da u bazi bude text
[ Marko_L @ 25.04.2005. 15:41 ] @
Čekaj, znači u bazi ti je datum napisan u tom formatu ?
Pa onda ne bi trebalo da ima problema sa onakvim pisanjem datuma.Inače možeš da koristiš i text data tip u bazi za datum, mada moraš paziti kako ga upisuješ u bazu, jer će primati bilo koji text, a i možeš imati problema prilikom korišćenja programa na drugom kompu u kome je drugačiji format datuma podešen u Regional Settings-u.Ajde da probamo ovako.Ukucaj negde
Code:
Msgbox Date

i vidi u kom ti formatu izbacuje datum, a onda onoj funkciji prosledi datum, tačno u tom formatu, pa vidi šta se dešava.
[ nsofft @ 25.04.2005. 17:27 ] @
Marko_L
Msgbox Date
Mi je izbacio 25.4.2005
A jesi pogledao upload da vidis koju mi gresku prikazuje:
[ Marko_L @ 25.04.2005. 18:08 ] @
Ne mogu da provalim šta je, evo sad sam probao kod mene isto to što sam dao tebi i "guta" u kom god formatu da pošaljem datum.Ajde ako možeš okači tu formu i bazu koju koristiš, ako nisu preveliki, i ako nije neka visoko državna tajna u pitanju :), pa da pogledam.
[ nsofft @ 25.04.2005. 19:05 ] @
Marko_L
Evo ti 2 forme skroz sam ih osiromasijo kako bi napravio sto manji fail inace je ceo oko 2mega ako nebudes mogo sa ovim videcu da postujem negde ceo kod
[ Marko_L @ 25.04.2005. 19:54 ] @
Vidi, kada kod postavim ovako
Code:
Private Sub Command1_Click()
Dim datum As Date
datum = "4/11/2005"
Text1.Text = SumaKolone("Zbir", datum)
End Sub

a u modulu stavim
Code:
Dim baza As Database
Set baza = OpenDatabase(App.Path & "\Kalkulacije.mdb")
SumaKolone = baza.OpenRecordset("SELECT SUM(" & polje & ") FROM kalkulacije1 WHERE Date = #" & datum & "#").Fields(0).Value
baza.Close
End Function

dobijem očekivani rezultat.Koliko sam video u tvom originalnom kodu imaš
Code:
datum = Text6.Text & "/" & Text7.Text & "/" & Text8.Text

a textbox-ova sa tim imenom nemaš nigde na formi.Ne znam šta da ti kažem, ajde probaj da ostaviš onaj Text5 textbox i postavi kod u click eventu Command1 da bude
Code:
Private Sub Command1_Click()
Dim datum As Date
datum = Text5.Text
Text1.Text = SumaKolone("Zbir", datum)
End Sub

I onda probaj redom da upisuješ u Text5 sledeće formate datuma
11.4.2005
11.04.2005
4/11/2005
11/4/2005
4/11/05
11/4/05
i vidi hoće li išta od toga da prihvati.
[ nsofft @ 25.04.2005. 20:16 ] @
Marko_L
Ne prihvata nijedan od datuma nonstop mi prijabvljuje istu gresku
Code:
Run-time eror '3075':
Sintax eror in date in query expression 'Date = 11.4.2005#'.


A inace sto se textboxova tice probao sam sa njima nego nisam obrisao kod a obrisao sam njih

[ Marko_L @ 25.04.2005. 20:32 ] @
Ako obratiš pažnju videćeš da ti tu fali jedna taraba (#), tj. ako si dobro prepisao grešku
[ nsofft @ 25.04.2005. 20:43 ] @
Nerazumem gde jer ceo kod sam kopirao:
Code:
Private Sub Command1_Click()
Dim datum As Date
datum = "4/11/2005"
Text1.Text = SumaKolone("Zbir", datum)
End Sub

i u module
Code:
Dim baza As Database
Set baza = OpenDatabase(App.Path & "\Kalkulacije.mdb")
SumaKolone = baza.OpenRecordset("SELECT SUM(" & polje & ") FROM kalkulacije1 WHERE Date = #" & datum & "#").Fields(0).Value
baza.Close
End Function

Gde moze da hvali taraba

Nego Marko kako ja da program povezem sa nekom drugom bazom npr. Txt jer izgleda da ovaj moj Access ne prihvata taj kod.
[ Marko_L @ 25.04.2005. 20:56 ] @
Ne znam, nisam pametan, možda to ima neke veze sa tim što nisam spavao dva dana, pa ne mogu da uočim u čemu je problem :).Ajde da probamo ovu soluciju.Da staviš da ti polje u bazi bude text tipa.Pa onda u modulu umesto taraba stavi ovako
Code:
Private Function SumaKolone(polje As String, datum As String)
Dim baza As Database
Set baza = OpenDatabase(App.Path & "\Kalkulacije.mdb")
SumaKolone = baza.OpenRecordset("SELECT SUM(" & polje & ") FROM kalkulacije1 WHERE Date = '" & datum & "'").Fields(0).Value
baza.Close
End Function

A u kodu onda pozivaj sa
Code:
Private Sub Command1_Click()
Text1.Text = SumaKolone("Zbir", "11.4.2005")
End Sub

Ali pazi, kod ove solucije, kako upišeš datum u bazu (dakle prihvatiće ti šta god da upišeš), tako moraš i da ga proslediš kada pozivaš sumiranje kolone.
[ nsofft @ 25.04.2005. 21:17 ] @
Marko_L
Odustajem od ovoga.
[ nsofft @ 25.04.2005. 21:44 ] @
Marko_L
Hvala to je to uspeo sam (mislim ti si uspeo :)) sa ovim tvoim kodom prvi put ga nisam dobro
kopirao. Jos samo nesto:
jer moze da pri upisivanju u bazu ako korisnik napise
npr.11/4/2005 da se u bazi napise 11.4.2005
npr.4/11/2005 da se u bazi napise 11.4.2005
npr.11.04.2005 da se u bazi napise 11.4.2005
npr.11/04/2005 da se u bazi napise 11.4.2005
npr.04/11/2005 da se u bazi napise 11.4.2005
Naravno to da se desava i sa drugim datumima (mislim da je 99% nemoguce ako je polje baze text)
[ Marko_L @ 25.04.2005. 22:44 ] @
Kompjuter ne može da zna šta je tu dan, a šta mesec, tako da ne postoji lak način da se to izvede.Najbolje rešenje je da u bazu datum uvek upisuješ u istom formatu (kad već koristiš text tip polje), a da korisniku negde u programu napomeneš kako mora da unese datum.Nego tek mi sad nešto pade na pamet (rekoh da nisam spavao dva dana :D).Zašto ne bi umesto textbox-a koristio DTPicker kontrolu za odabir datuma.Tako ćeš izbeći greške u formatu prilikom odabira datuma, jer DTPicker vraća datum u forematu koji je podešen u Win-u, a u istom tom formatu se podaci upisiju u bazu kada je polje date tipa.To je mnogo elegantnije rešenje i za korisnika, a i tebi je lakše da napraviš kod.Znači probaj i to.Vrati u bazi da polje bude date tipa, a umesto one Text5 kontrole stavi DTPicker (on ti se nalazi u sklopu Microsoft Windows Common Controls-2 6.0).I stavi kod
Code:
Private Sub Command1_Click()
Text1.Text = SumaKolone("Zbir", DTPicker1.Value)
End Sub

i u module
Code:
Public Function(polje As String, datum As Date)
Dim baza As Database
Set baza = OpenDatabase(App.Path & "\Kalkulacije.mdb")
SumaKolone = baza.OpenRecordset("SELECT SUM(" & polje & ") FROM kalkulacije1 WHERE Date = #" & datum & "#").Fields(0).Value
baza.Close
End Function

Tako bi trebalo da šljaka.
[ nsofft @ 25.04.2005. 23:00 ] @
Marko_L
Mislim da je ovo uredu samo sto kod mene prikazuje ovo gresku:
Code:
Compile erorr:
Sub or function not defined

I podvuce
Code:
SumaKolone

Mislim da treba da ga definisem na vrhu forme samo ne znam kako :(
[ Marko_L @ 25.04.2005. 23:04 ] @
Ne, nego ja nisam naveo ime funkcije kad sam ti pisao kod.Izvinjavam se.Treba ovako
Code:
Public Function SumaKolone(polje As String, datum As Date)
Dim baza As Database
Set baza = OpenDatabase(App.Path & "\Kalkulacije.mdb")
SumaKolone = baza.OpenRecordset("SELECT SUM(" & polje & ") FROM kalkulacije1 WHERE Date = #" & datum & "#").Fields(0).Value
baza.Close
End Function
[ nsofft @ 25.04.2005. 23:20 ] @
Marko_L
E ne vredi ovako izgleda da je moj Access poludeo opet mi prikazuje gresku:
Code:
 Run-time eror '3075':
Sintax eror in date in query expression 'Date = 11.4.2005#'.

U accessu mi je polje date/time
izgleda da je kod mene neka greska
jesi ti probao kod sebe na onom kodu sto sam postovao?
Ako kod tebe radi nema druge nego da je greska kod mene u Accessu
[ Marko_L @ 25.04.2005. 23:37 ] @
Citat:
Run-time eror '3075':
Sintax eror in date in query expression 'Date = 11.4.2005#'.

Ajde proveri još jednom za tu tarabu :)
Trebalo bi da bude
Code:
'Date = #11.4.2005#'

a ne
Code:
'Date = 11.4.2005#'
[ nsofft @ 25.04.2005. 23:49 ] @
Marko_L
Ovako je napisan kod u module mislim da tu prikazuje gresku:
Code:
= #" & datum & "#")

Kako bi bio kod bez modula da probam i tako
[ Marko_L @ 26.04.2005. 00:08 ] @
Onda ne razumem zašto ti javlja onu grešku bez jedne tarabe.Ništa, probaj malo da eksperimentišeš, probaj recimo skroz da ukloniš tarabe.Ovako
Code:
SumaKolone = baza.OpenRecordset("SELECT SUM(" & polje & ") FROM kalkulacije1 WHERE Date = " & datum).Fields(0).Value
[ nsofft @ 26.04.2005. 00:21 ] @
Kad sam ubacio ovaj kod:
Code:
SumaKolone = baza.OpenRecordset("SELECT SUM(" & polje & ") FROM kalkulacije1 WHERE Date = " & datum).Fields(0).Value

Javlja ovu gresku:
Code:
Run-time eror '3075':
Sintax eror in date in query expression 'Date = 11.4.2005'.

Nacisto mi izgleda puko Access nema sta drugo da bude.
[ Marko_L @ 26.04.2005. 02:31 ] @
A probaj da u bazi promeniš ime polja, da ne bude Date, nego, recimo datum ili bilo šta drugo, pa vidi šta se dešava.
[ nsofft @ 26.04.2005. 16:04 ] @
Oped isto!
Aj probaj kod kod tebe pa vidi sta se desava!
[ X-Cite @ 12.05.2005. 16:22 ] @
Citat:
nsofft: Marko_L
Ovako je napisan kod u module mislim da tu prikazuje gresku:
Code:
= #" & datum & "#")

Kako bi bio kod bez modula da probam i tako


sad nebi baš da budem nešto pametan... ali ovdje možda fali "

umesto

Code:
= #" & datum & "#")


možda

Code:
= "#" & datum & "#")


biće mi drago ako je to problem bio... a ako nije ebiga
[ vujkev @ 12.05.2005. 16:48 ] @
Code:
 ... WHERE [Date] = #" & format$(datum, "mm-dd-yyyy") & "#") .... 


Mada tek sad vidim da mnogo kasnim sa odgorovom