zxz 29.12.2010 12:30
Predmet:Re: Server i Access baza

Citat:
IDdijela i Kom ali tako da ako se u koloni IDstroja naiđemo na Å¡ifru koja je indentična Å¡ifri IDdijela, a kategorija je veča od izabrane kategorija onda treba dopisati i te pripadajuće podatke u kolonu iDdijela

Red u kome je u koloni udstroja identicna vrijednost kao u koloni IDdijela (ovo je jasno)
a kategorija je veča od izabrane kategorija- Jel se misli na sifre kategorija o,1,2,3 itd da je veca.

onda treba dopisati i te pripadajuće podatke u kolonu iDdijela- Koji su to pripadajuci podaci i jel mislis dobisati novi red podataka.

pmiroslav 29.12.2010 13:13
Predmet:Re: Server i Access baza

Tako je, misli se na sifre Kategorija

zxz 29.12.2010 14:30
Predmet:Re: Server i Access baza

Nemogu da te skontam sta hoces.
Citat:
Treba Izabrati odtređenu kategoriju, recimo 1 i određeni IDstroja recimo 0005899 i na temelju tog izbora treba u drugu tablicu prenijeti IDstroja;IndexSklop; IDdijela i Kom ali tako da ako se u koloni IDstroja naiđemo na Å¡ifru koja je indentična Å¡ifri IDdijela, a kategorija je veča od izabrane kategorija onda treba dopisati i te pripadajuće podatke u kolonu iDdijela

dao si mi tabelu tblshema.
Pretpostavljam kada kazes kategorija da je to ID polje. Recimo ako je to tako.
Citat:
Teba Izabrati odtređenu kategoriju, recimo 1 i određeni IDstroja recimo 0005899
meni to znaci da idem po redu iz ove tabele i citam podatke odnosno sve redove jer napisao si "recimo" sto pretpostavljam da ces utezi ovaj uvjet pa poslije sledeci itdd. znaci sve kombinacije koje imaju u tabeli.
Naime mogu ti napraviti da ovo dvoje budu ulazni parametri i onda ce se odnostit samo na taj red podataka odnosno red koji zadovoljava ulazne parametre.
Citat:
i na temelju tog izbora treba u drugu tablicu prenijeti IDstroja;IndexSklop; IDdijela i Kom
Ovo bi mozda i imalo smisla da je izbor iz druge tablice ali iz iste ako ides red po red prepisat ces sve podatke iz postojece.

Citat:
ali tako da ako se u koloni IDstroja naiđemo na Å¡ifru koja je indentična Å¡ifri IDdijela, a kategorija je veča od izabrane kategorija onda treba dopisati i te pripadajuće podatke u kolonu iDdijela

Treba dopisati podatke u kolonu to sam te vec pitaio sta ti to znaci. kolonaza odredjeni red ima samo ednu celiju ili si mislio na red.

Moras konkretno pisati inace necemo ovo zavrsiti.

tabela ta i ta i uslov u njoj taj i taj.
Polja po imenima red kolona celija.

pmiroslav 29.12.2010 15:09
Predmet:Re: Server i Access baza

1. u "tblShema" koju sam dao Prva kolona ID je samo Autonumber koji me možda treba kasnije i ne treba te opterečivati.

2.Iz "tblShemaMontaze" treba uzdvojiti podatke po slijedećem kriteriju.

Odaberem da mi treba shema za Stroj to znači da se na početku uzimaju u obzir samo podaci iz kolone IDstroja ispred kojih je u koloni "Kategorija" broj 1.
Zatim odaberem o kojem se stroju radi i odaberem njegov IDstroja npr."0008239"
Sada Funkcija treba krenuti od prvog reda u tblShemaMonaze i preskakati sve redove dok ne dođe do reta u kojem je
Kategorija = 1 i IDstroja = 0008239
i sada sve podatke iz tog reda kopirati u tblShema

tblShema.ID = Autonumber
tblShema.IDstroja = tblshemaMontaze.IDstroja
tblShema.KomStr = tblshemaMontaze.kom
tblShema.Kategorija = tblshemaMontaze.Kategorija
tblShema.Index = tblshemaMontaze.indeXSklop '(sluzi samo za sortiranje)
tblShema.komStr = tblshemaMontaze.kom

i sada tako kopirati redom sve dok je kategorija = 1 i IDstroja = 0008239

Kada funkcija naiđe na IDdijela koji postoji i u koloni IDStroja, ali da je Kategorija veča od na početku izabrane kategotije, podatke iz tog reda nastaviti kopirati u istu tablicu i u ista polja sve dok postoji taj pronađeni IDdijela.

Nakon toga vratiti se na prvi uvjet i tako do kraja.

pmiroslav 29.12.2010 15:38
Predmet:Re: Server i Access baza

Evo i još jedna slika da dodatno pojasnim
Prilozi:
Image3.jpg (Velicina datoteke:258.69 KB)

zxz 29.12.2010 15:53
Predmet:Re: Server i Access baza

Evo procedura.
ulazni parametri su Kategorija i Id stroja kao sto si i naveo uslov.
PreuzmiIzvorni kôd (Visual Basic):
  1. Function PrenesiPod(Kategorija As Integer, IdStroja As String)
  2. Dim Db As Database
  3. Dim Rs1 As Recordset
  4. Dim Rs2 As Recordset
  5. Dim Rs3 As Recordset
  6. Dim SQL As String
  7. Dim Dio As Integer
  8. Dim I As Integer
  9. Dim BrojKolona As Integer
  10.  
  11.  
  12. Set Db = CurrentDb
  13. SQL = "SELECT * FROM tblShemaMontaze " _
  14.     & "WHERE kategorija=" & Kategorija & "  AND IDstroja='" & IdStroja & "'"
  15.  
  16. Set Rs1 = Db.OpenRecordset(SQL)
  17. Set Rs3 = Db.OpenRecordset("tblShema")
  18. BrojKolona = Rs1.Fields.Count
  19. Do While Not Rs1.EOF
  20. Dio = Rs1!IdDijela
  21. Rs3.AddNew
  22.         For I = 1 To BrojKolona
  23.         Rs3.Fields(I) = Rs1.Fields(I - 1)
  24.         Next I
  25. Rs3.Update
  26. SQL = "SELECT * FROM tblShemaMontaze " _
  27.      & "WHERE IDdijela='" & IdStroja & "' AND kategorija>kategorija"
  28. Set Rs2 = Db.OpenRecordset(SQL)
  29. Do While Not Rs2.EOF
  30.         Rs3.AddNew
  31.         For I = 1 To BrojKolona
  32.         Rs3.Fields(I) = Rs1.Fields(I - 1)
  33.         Next I
  34. Rs3.Update
  35. Rs2.MoveNext
  36. Loop
  37. Rs2.Close
  38. Rs1.MoveNext
  39. Loop
  40. Rs1.Close
  41. Rs3.Close
  42. Set Db = Nothing
  43. End Function

pmiroslav 29.12.2010 21:02
Predmet:Re: Server i Access baza

Nažalost joÅ¡ uvjek se ne razumjemo. Ovo Å¡to si mi dao bilo bi prejednostavno. To će napraviti i Query

SELECT tblShemaMontaze.*
FROM tblShemaMontaze
WHERE (((tblShemaMontaze.kategorija)=1) AND ((tblShemaMontaze.IDstroja)="0008239"));

Jer su kopirani samo slogovi kojima je Kategorija = Početno upisanoj vrijednosti i ID stroja = Početno upisanoj vrijednosti.
Mi moramo pregledavati u kompletnoj tablici tblShemaMontaze, a ne u query-u gdje su podaci več filtrirani.

Idemo još jedanput.

1. U nekoj formi trebamo odabrati Kategoriju i ID stroja
2. Treba pokrenuti Funkciju koja će u tablici "tblShemaMontaze" pronači slog koji zadovoljava taj uvjet i kopirati taj slog u novu tablicu.
2. Sada provjeriti dali IDdijela iz tog sloga postoji bilo gdje u koloni IDstroja,
3. Ako Ne onda kopirati slijedeći slog u novu tablicu.
4. Ako DA onda otiči na slog gdje je pronađen IDdijela = IDstroja i kopirati taj slog u novu tablicu.
5 Ponovno provjeriti dali IDdijela iz tog sloga postoji bilo gdje u koloni IDstroja
itd.

zxz 29.12.2010 22:40
Predmet:Re: Server i Access baza

Nisi u pravu nisi vidio ovo:
SQL = "SELECT * FROM tblShemaMontaze " _
& "WHERE IDdijela='" & IdStroja & "' AND kategorija>kategorija"

Znaci prvi puta kopira red gdje je zadovoljen uslov iz ulaznih parametara.
Drugi rs podize bazu gdje zadovoljava uslov iddijela=idstroja ali samo ovog rekorda iz prvog rs-a
kada dodje na drugi slog prvog opet provjerava itd.

Mozda negdje ima greska necu reci ali tako radi.

zxz 29.12.2010 22:47
Predmet:Re: Server i Access baza

Da ima greska u Drugom SQL-u
PreuzmiIzvorni kôd (SQL):
  1. SQL = "SELECT * FROM tblShemaMontaze " _
  2.      & "WHERE IDdijela='" & IdStroja & "' AND Kategorija>" & Kategorija

evo ispravljeno:

PreuzmiIzvorni kôd (Visual Basic):
  1. Function PrenesiPod(Kategorija As Integer, IdStroja As String)
  2. Dim Db As Database
  3. Dim Rs1 As Recordset
  4. Dim Rs2 As Recordset
  5. Dim Rs3 As Recordset
  6. Dim SQL As String
  7. Dim Dio As Integer
  8. Dim I As Integer
  9. Dim BrojKolona As Integer
  10.  
  11.  
  12. Set Db = CurrentDb
  13. SQL = "SELECT * FROM tblShemaMontaze " _
  14.     & "WHERE kategorija=" & Kategorija & "  AND IDstroja='" & IdStroja & "'"
  15.  
  16. Set Rs1 = Db.OpenRecordset(SQL)
  17. Set Rs3 = Db.OpenRecordset("tblShema")
  18. BrojKolona = Rs1.Fields.Count
  19. Do While Not Rs1.EOF
  20. Dio = Rs1!IdDijela
  21. Rs3.AddNew
  22.         For I = 1 To BrojKolona
  23.         Rs3.Fields(I) = Rs1.Fields(I - 1)
  24.         Next I
  25. Rs3.Update
  26. SQL = "SELECT * FROM tblShemaMontaze " _
  27.      & "WHERE IDdijela='" & IdStroja & "' AND Kategorija>" & Kategorija
  28. Set Rs2 = Db.OpenRecordset(SQL)
  29. Do While Not Rs2.EOF
  30.         Rs3.AddNew
  31.         For I = 1 To BrojKolona
  32.         Rs3.Fields(I) = Rs1.Fields(I - 1)
  33.         Next I
  34. Rs3.Update
  35. Rs2.MoveNext
  36. Loop
  37. Rs2.Close
  38. Rs1.MoveNext
  39. Loop
  40. Rs1.Close
  41. Rs3.Close
  42. Set Db = Nothing
  43. End Function

pmiroslav 29.12.2010 23:19
Predmet:Re: Server i Access baza

To mi ipak ne kopira ono što treba.
U primjeru koji šaljem u tablici "tblShema" je ono što prenese Funkcija koji si napravio,
a u tablici "tblShema_kako_treba" je ispravan prenos koji mi naprave moji komplicirani Queryi i funkcije.
Prilozi:
Shema_4.rar (Velicina datoteke:228.73 KB)