[ 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 |
[ nsofft @ 16.04.2005. 21:58 ] @
[ 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 ![]() Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|