Centar za edukaciju-BiH


Stranice (9):1,2,3,4,5,6,7,8,9

#1 10.07.2013 10:33
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Spajanje arhiviranih baza
Na subformi koja je u DataSheet obliku između ostalog imam textBox 'ULAZ' i textBox 'IDDokumenta'
U dizajnu forme u Form Footer sam stavio textBox gdje dobivam zbroj svih ulaza
=Nz(Sum([ULAZ])

i to je u redu.
Međutim želio bih da mi se kod ovog zbrajanja ne uzimaju u obzir ulazi čiji je 'IDdokumenta = 1'

Mogu li taj uvjet nekako dodati u gornju formulu?
Pozdrav
Ovaj post je ureden 1 puta. Posljednja izmjena 11.07.2013 09:10 od strane pmiroslav. ↑  ↓

#2 10.07.2013 11:45
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: Funkcija SUM uz uvijet
Ja sam pretpostavio da ti se textbox zove suma.
Mozes to rijesiti procedurom.
PreuzmiIzvorni kôd (Visual Basic):
  1. Private Sub Form_Current()
  2. Dim Rs As Recordset
  3. Dim suma As Integer
  4. Dim Iznos As Integer
  5. Dim ID As Integer
  6.  
  7. Set Rs = Me.RecordsetClone
  8. If Rs.RecordCount = 0 Then GoTo Kraj
  9. Rs.MoveLast
  10. Rs.MoveFirst
  11. On Error Resume Next
  12. Do While Not Rs.EOF
  13. Iznos = Rs!Ulaz
  14. If Err.Number > 0 Then
  15. Iznos = 0
  16. Err.Clear
  17. End If
  18. ID = Rs!IDDokumenta
  19. If ID = 1 Then
  20. Iznos = 0
  21. End If
  22. suma = suma + Iznos
  23. Rs.MoveNext
  24. Loop
  25. Kraj:
  26. Me.suma = suma
  27. Exit Sub
  28. End Sub

Ili upitom
Napravi ovaj upit:
PreuzmiIzvorni kôd (SQL):
  1. SELECT 1 AS ID, SUM(Ulaz) AS SUMA
  2. FROM ImeTabele
  3. WHERE IDDokumenta<>1
  4. GROUP BY 1;

Daj Mu ime Q_Suma
sada na formi txtbox gdje si imao sumu pretvori u combo box(desni mis pa Change to).
Znaci sada imamo combo box.
U controlsource upisi =1
U rowsource ime Query-a tj. Q_Suma
Solumncount 2
Column witdth. 0;5
Na on curent ide ovo:
Private Sub Form_Current()
Me.suma.RowSource = Me.suma.RowSource
End Sub
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#3 10.07.2013 13:23
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Re: Funkcija SUM uz uvijet
Ovo je dobar kod i to radi, ali nažalost nije baÅ¡ ono Å¡to sam trebao. Malo sam se tu zapetljao pa ću napraviti primjer i zakačiti ga i malo bolje objasniti Å¡to mi treba.
Pozdrav
↑  ↓

#4 10.07.2013 13:50
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: Funkcija SUM uz uvijet
Bilo sta da ti treba ako je u pitanju citanje podataka sa forme sa ovim se moze dobiti uz malu prepravku.
Tako da te to ne brine.
I ja znam nekad pšovrsno procitati.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#5 10.07.2013 16:43
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Re: Funkcija SUM uz uvijet
Radi se zapravo o slijedećem. Imam bazu za vođenje skladiÅ¡nh kartica. Svake godine krećem ispočetka
Prva transakcija je inventura i u tablicu 'tblUlazIzlaz' upisuje se početno stanje.
Nakon toga upisuju se ostale transakcije redom.
Na početku slijedeće godine baza se arhivira i kreće se na isti način ispočetka.
Ako korisnik želi vidjeti neÅ¡to Å¡to se u kartici događalo u nekoj od predhodnih godina mora se linkati na arhiviranu bazu i pregledavati samo promjene u kartic i iz te godine.
Ideja mi je omogućiti korisniku da bez relinka ima uvid u promjene kroz sve arhivirane godine do danas.
To sam zamislio tako da sam se linkao na tablice
-tblTransakcije
-tblUlazIzlaz
i to na sve postojeće arhivirane baze.

aktuelne tablice (2013.g) su
-tblTransakcije
-tblUlazIzlaz

a starije sam preimenovao
-tblTransakcije_12
-tblUlazIzlaz_12

-tblTransakcije_11
-tblUlazIzlaz_11

Napravio sam Union Query QryKarticaSve i QryKarticaSveSub koji objedinjuju sve te godine.
U QrykarticaSveSub neznam kako sortirati podatke po datumu pa i tu molim pomoć

(Query_11 Query_12 i Query_13 iz primjera samo služe da bih lakše napravio QryKarticaSveSub)

E sada dolazimo do mog problema. U formi frmKarticaSve imam textBox 'SumaUlazi' koji se nalazi iznad kolone ULAZ subforme, Problem je Å¡to mi se Inventure zbroje kao Ulaz a to nebi trebalo, zapravo kod zbroja bi trebalo uzeti u obzir samo prvu inventuru, a ostale inventure ignorirati.

Evo i primjer:

Prilozi:
Informacije o tipu datoteke za:rar  Primjer MP1.rar
Preuzimanja:286
Velicina datoteke:42.16 KB


Pozdrav
↑  ↓

#6 10.07.2013 17:54
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: Funkcija SUM uz uvijet
Union ti sporije radi nego da Kodom Napravis temp mdb. prekopiras sve podatke iz ovih dviju tabela svih godina i linkas se.
Doduse lnik moze i ostati stalan.
Ja to uvijek radim tako kodom.
E sad nemora sve kodom ako neces.
Mozes napraimjer imati bazu temp i u njoj ove dvije tabele a samo podatke dopisivati i brisati pri pokretanju.
Mozes dodati u tabele jos jedno polje godina pa provjeravati te ono sto je kopirano da se ne radi.
Nasm jos skinuo primjer.
ako budes zainteresovan za moju ideju probat cemo napraviti nesto.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#7 10.07.2013 17:58
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Re: Funkcija SUM uz uvijet
Svakako sam zainteresiran to mi se čini kao interesanto. Kod ovog mog primjera je mana Å¡to bi opet svake godine morao raditi novi Union Query da dodam slijedeću godinu.
Pozdrav
↑  ↓

#8 11.07.2013 00:17
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: Funkcija SUM uz uvijet
Napravio sam ja proceduru.
Samo mi je ostalo da vidimo stacemo sa id koji je u ovom primjeru autonuber.
Ako je tako onda ga nemozemo prenijeti iz vise tabela jer ce se preklapati.
Morao bi se generisati novi kljuc i prenosti jedan po jedan podatak iz jedne pa iz druge tabele.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#9 11.07.2013 06:56
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Re: Funkcija SUM uz uvijet
Ako misliÅ¡ na IDtransakcije u tblTransakcije onda ću to rijeÅ¡iti sa kodom:
PreuzmiIzvorni kôd (vbnet):
  1. Function SifraTrans()
  2. Dim db As Database
  3. Dim SQL As String
  4. Dim rs As Recordset
  5. Dim I As Integer
  6.  
  7. Set db = CurrentDb
  8. SQL = "SELECT Max(Right(TransakcijaID,4)) FROM tblTransakcije"
  9. Set rs = db.OpenRecordset(SQL)
  10. If Format$(rs.Fields(0)) <> "" Then
  11. I = Val(rs.Fields(0))
  12. End If
  13. I = I + 1
  14. SifraTrans = Right(Year(Date),2) & Format(I, "0000")
  15. rs.Close
  16. Set db = Nothing
  17. Kraj:
  18. End Function
Tako da će idTransakcije onda biti u obliku
130001; 130002 itd.

Samo dali mi ti onda možeš napraviti neki Kod koji bi mi automatski promjenio ID u tablici tblTransakcije i tblUlazIzlaz jer su ta dva polja vezana relacijom jedan prema više.
U tblTransakcije imam oko 4000 zapisa, a u tblUlazIzlaz oko 16000.
Pozdrav
Ovaj post je ureden 1 puta. Posljednja izmjena 11.07.2013 07:05 od strane pmiroslav. ↑  ↓

#10 11.07.2013 07:38
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: Funkcija SUM uz uvijet
Hehe pa u tome i jeste problem, da se ne pogube podaci.
Napravit cemo to.
Nego mene interesuje gdje su ti smjestene baze i kako se tacno zovu.
Putanja do baza i kako se zovu?
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

Stranice (9):1,2,3,4,5,6,7,8,9


Sva vremena su GMT +01:00. Trenutno vrijeme: 3: 55 pm.