Bosna i Hercegovina



#1 02.06.2017-10:35
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,370


Subject: Query od vise tabela
Imam jednu glavnu tabeluu kojoj upisujen meke podatke.
Imam jos 10 drugih tabela u koi na osnovu ID od glavnu tabelu upisujen podatke koi mogu sadrzati vise redova za jedan isti ID.

Sad mi treba da mogu izvaditi queri ili ako nije to moguce da napravim temp tabela koja ce ih sadrzati sva podatke is glavne tbele i sva podatka iz pomocnih tabala ali to da bude tako sto prvo ce se upise u jedan red podatke iz glavne tabeli i prvi red iz pomocnih tabela a sledeci redove sodrzace podatke samo od pomocni tabela so to sto colone gdje su podatke iz glavne tabele ostace prazne.

Ovo naravno mi treba da mogu kasnije izvrsit pretragu nad ovaj query ili tabeloj.
Sve ideje su dobro dosli

Prilozi:
Informacije o fajlu: bmp  relacii.bmp
Preuzimanja: 80
Veličina: 1.52 MB
Informacije o fajlu: rar  Query.rar
Preuzimanja: 80
Veličina: 1.73 KB

Ovaj komentar je mijenjan 1 puta. zadnja izmjena 02.06.2017-10:37 od strane Gjoreski. ↑  ↓

#2 02.06.2017-21:11
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,549


Subject: Re: Query od vise tabela
Podatke mozes dobiti ali nemozes dobiti prazna polja kao sto si to naveo u exelu.
Znaci nebi bila prazna polja nego bi se podatak ponavljao.
To mozes izvesti samo na formi.
Pozdrav
↑  ↓

#3 02.06.2017-21:55
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,370


Subject: Re: Query od vise tabela
Pa neka bude na formi nije mi problem samo da tako izgeda kao u exelu.

Ja znam da ce se podatke ponavljati to sam vec uradio ali ovo mi teba bas ovako.
Mozda najbolje bi bila Temp tabela koja bi se punila i praznila iz neke procedure.
Ovaj komentar je mijenjan 1 puta. zadnja izmjena 02.06.2017-21:58 od strane Gjoreski. ↑  ↓

#4 02.06.2017-21:58
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,549


Subject: Re: Query od vise tabela
Moze i na izvjestaju ako ti treba za sztampu tako.
Jeli moraju biti redovi i kolone?
Pozdrav
↑  ↓

#5 02.06.2017-22:02
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,370


Subject: Re: Query od vise tabela
Ne treba mi stampu na izvestaj, trebace mi export u excelu za dalje obrade.
Ipak sam ja Temp tabela pa mogu sa njom da radim bilo sta .
↑  ↓

#6 02.06.2017-22:26
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,549


Subject: Re: Query od vise tabela
Citat:
Ipak sam ja Temp tabela pa mogu sa njom da radim bilo sta .

Jesil mislio da je najbolje rijesiti preko temp tabele ili te nisam razumio.
Naravno da se moze rijesiti pomocu temp tabele.
Pozdrav
↑  ↓

#7 02.06.2017-22:37
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,370


Subject: Re: Query od vise tabela
Dobro si razumeo.
Mozda imas neka funkcija o ovome ili nesto slicno?
↑  ↓

#8 02.06.2017-23:44
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,370


Subject: Query od vise tabela
evo i databazi

Prilozi:
Informacije o fajlu: rar  Baza .rar
Preuzimanja: 62
Veličina: 216.33 KB

↑  ↓

#9 03.06.2017-10:55
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,549


Subject: Re: Query od vise tabela
Evo ti kod.

Bilo je par gresaka u nazivima polja pa popravi.
DownloadIzvorni kod (Visual Basic):
  1. Option Compare Database
  2. Option Explicit
  3. Type Imena
  4. Pt As String            'Imepomone tabele
  5. Pt_Kljuc As String      'Klju
  6. za pod tabelu
  7. Pdt As String           'Imepod tabele
  8. Pdt_Kljuc  As String    'Klju
  9. u pod tabeli
  10. Pt_Podatak As Integer   'Podatak klju
  11. a u pomonoj tabeli
  12. End Type
  13. Dim Db As DAO.Database
  14. Dim RsTemp As DAO.Recordset
  15.  
  16. Function Popuni()
  17. Dim Rs As DAO.Recordset
  18. Dim SQL As String, SQLTemp As String
  19. Dim ID As Integer
  20.  
  21. SQL = "SELECT * FROM tblMain"
  22. SQLTemp = "SELECT * FROM tblTemp"
  23. Set Db = CurrentDb
  24. Set Rs = Db.OpenRecordset(SQL)
  25. Do While Not Rs.EOF
  26. ID = Rs!Id_Main
  27. Set RsTemp = Db.OpenRecordset(SQLTemp)
  28. RsTemp.AddNew
  29. RsTemp!No = Rs!Broj_Dokumenta
  30. RsTemp!Datum_Ukladanja = Rs!Datum_Ukladanja
  31. RsTemp!Godina_kad_je_verovatno_stvoren = Rs!Godina_kad_je_verovatno_stvoren
  32. RsTemp!Datum_kad_je_verovatno_stvoren = Rs!Datum_kad_je_verovatno_stvoren
  33. RsTemp!Naziv = Rs!Naziv
  34. RsTemp!Opis = Rs!Opis
  35. RsTemp!Sacuvan = Rs!Lock
  36. RsTemp!Id_Main = ID
  37. RsTemp.Update
  38. RsTemp.Close
  39. Pomocne_Tabele ID
  40. Rs.MoveNext
  41. Loop
  42.  
  43. End Function
  44.  
  45.  
  46. Sub Pomocne_Tabele(ID As Integer)
  47. Dim Rs As DAO.Recordset, RsPom As DAO.Recordset, Rsdod As DAO.Recordset
  48. Dim SQL As String, SQLPom As String, SQLDod As String, SQLTemp As String
  49. Dim IP As Imena
  50. Dim Broj_Polja As Integer, I As Integer, N As Integer, N1 As Integer
  51. Dim ImePolja As String
  52.  
  53. N1 = 1
  54. SQLTemp = "SELECT * FROM tblTemp WHERE ID_Main=" & ID
  55. SQL = "SELECT * FROM tblTabele"
  56. Set RsTemp = Db.OpenRecordset(SQLTemp)
  57. Set Rs = Db.OpenRecordset(SQL)
  58. Do While Not Rs.EOF
  59. IP.Pdt = Rs.Fields(3)
  60. IP.Pt = Rs.Fields(1)
  61. IP.Pt_Kljuc = Rs.Fields(2)
  62. IP.Pdt_Kljuc = Rs.Fields(4)
  63.  
  64. '*************************
  65. 'Pomona tabela
  66. '*************************
  67.  
  68. RsTemp.MoveFirst
  69.  
  70. SQLPom = "SELECT * FROM " & IP.Pt & " WHERE ID_Main=" & ID
  71. Set RsPom = Db.OpenRecordset(SQLPom)
  72.     N = RsPom.RecordCount
  73.     If N > 0 Then
  74.     RsPom.MoveLast
  75.     RsPom.MoveFirst
  76.     N = RsPom.RecordCount
  77.     End If
  78. REKORD:
  79.     If N1 < N Then
  80.     RsTemp.AddNew
  81.     RsTemp.Update
  82.     N1 = RsTemp.RecordCount
  83.     GoTo REKORD
  84.     End If
  85.     RsTemp.MoveFirst
  86.     Do While Not RsPom.EOF
  87.     RsTemp.Edit
  88.     IP.Pt_Podatak = RsPom(IP.Pt_Kljuc)
  89.     SQLDod = "SELECT * FROM " & IP.Pdt & " WHERE " & IP.Pdt_Kljuc & "=" & IP.Pt_Podatak
  90.     Set Rsdod = Db.OpenRecordset(SQLDod)
  91.     Broj_Polja = Rsdod.Fields.Count - 1
  92.         For I = 1 To Broj_Polja
  93.         ImePolja = Rsdod.Fields(I).Name
  94.         RsTemp(ImePolja) = Format$(Rsdod.Fields(I))
  95.         Next I
  96.     Rsdod.Close
  97.     RsPom.MoveNext
  98.     RsTemp.Update
  99.     RsTemp.MoveNext
  100.     Loop
  101. Rs.MoveNext
  102. RsTemp.MoveFirst
  103. Loop
  104. RsPom.Close
  105. End Sub

Pozdrav
↑  ↓

#10 04.06.2017-21:18
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,370


Subject: Re: Query od vise tabela
Evo ovaj tvoj cod sam preradio malo i za moih potreba je sasvim OK mada uvek se moze i bolje.
E sad imam drugo pitajne oko pretrage (ona pretraga koja je istoriska) na svi polja u tabeli.
Ja sam to uradio ali za vise redova ova bice problem .

Ako ima neko da da neki savet bi bilo OK.
Imam ja i jedna druga pretraga koja trazi odredene reci u udredenoj coloni .
Ako neko ima bolje resene zeleo bi pogledati.

I treco pitajne kako selektirati samo 2 redova u listbox.
odnosi se na lstPolja

Prilozi:
Informacije o fajlu: rar  Dokumenti.rar
Preuzimanja: 71
Veličina: 122.63 KB

↑  ↓

#11 05.06.2017-14:47
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,549


Subject: Re: Query od vise tabela
Nisam nasao tvoju pretragu.
Moras malo pomoci.

Citat:
I treco pitajne kako selektirati samo 2 redova u listbox.
Private Sub List0_Click()
Dim BrojSelektovanih As Integer
Dim Selektovani As Integer

BrojSelektovanih = Me.List0.ItemsSelected.Count
If BrojSelektovanih > 2 Then
Selektovani = Me.List0.ListIndex
Me.List0.Selected(Selektovani) = False
End If
End Sub
Pozdrav
↑  ↓

#12 05.06.2017-17:09
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,370


Subject: Re: Query od vise tabela
Danas nesto smo pricali sa ljudima za koi ovo radim i odustali su od ova pretraga koja sam radio na predhodi postom,ali zele da im odradim drugu pretragu za koja ce moci oni sami izbirati uslove (Kriterije)
na sledeci nacin.
--Iz prvi listbox se izabere kolonu u kojoj se vrsi pretraga , a u drugi listbox prikazace se sva uslova(Kriterija) za toj koloni.
Na dupli klikom se taj uslov doda u treci list box u kojoj se vide sva izabrana Kriterija i Kolone u kojoj vrsimo pretragu.
Na kraju imamo jedan command buton sa koj creiramo query sa parametrima koi imamo u treci list box.

Ne znam dali smo se razumeli ali ako nije jasno pokusacu objasniti ponovo.
↑  ↓

#13 05.06.2017-17:59
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,549


Subject: Re: Query od vise tabela
Citat:
Na dupli klikom se taj uslov doda u treci list box u kojoj se vide sva izabrana Kriterija i Kolone u kojoj vrsimo pretragu.

Nije mi bas jasno sto ce ti ovo ali eto.
Imas u prvom listu sve one po kojima trazis jer su selektovani e sad ako hoces da ih prebacis u novi list box dobro.

Jel uredu selektovanje dva reda?
Pozdrav
↑  ↓

#14 05.06.2017-20:42
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,370


Subject: Re: Query od vise tabela
sad mi ne treba to ali sam uradio ( ostace to u straroj verzii ovog programa )
↑  ↓

#15 05.06.2017-22:00
Gjoreski Offline
Super Moderator
Registrovan/a od: 02.02.2009-22:24
Komentari: 1,370


Subject: Re: Query od vise tabela
Ja sam ova pretraga resio ovako:
Napravio tabela u koja u jednoj koloni upusem Naziv Polja od tabele a u drugoj koloni sta se trazi u toj koloni.
Podatci u uvoj tabeli se pune iz list boxova

I na kraju napravio sam procedura koja iscitava ovu tabelu i od njoj stvara se sql koj se upise u RecordSurce na subformi u koja se prikazuju rezultae.

Evo coda od proceduri.
DownloadIzvorni kod (Visual Basic):
  1. Dim rsUslov As ADODB.Recordset
  2.      Set cn = CurrentProject.Connection
  3.      Set rsUslov = New ADODB.Recordset
  4.          rsUslov.CursorLocation = adUseClient
  5.          rsUslov.Open "SELECT * FROM tblTempSQL", cn, adOpenForwardOnly, adLockOptimistic
  6.       If rsUslov.RecordCount = 0 Then SQLSearch = "SELECT tblTemp.* FROM tblTemp"
  7.              
  8.          SQLSearch = "SELECT tblTemp.* FROM tblTemp WHERE (("
  9.             rsUslov.MoveFirst
  10.          Do While Not rsUslov.EOF
  11.             SQLSearch = SQLSearch & "(tblTemp." & rsUslov.Fields("Pole") & ")=" & Chr(34) & rsUslov.Fields("SeBara") & Chr(34) & " OR "
  12.             rsUslov.MoveNext
  13.          Loop
  14.          SQLSearch = Left(SQLSearch, Len(SQLSearch) - 3) & "))"
  15.          Me.frmTemp_Subform.Form.RecordSource = SQLSearch
  16.          Me.frmTemp_Subform.Requery

Treba mi bolji kod za pretraga od ovaj koj se izvrsava na onChange na text pole.

DownloadIzvorni kod (Visual Basic):
  1.  Dim SQLSearch As String
  2.    SQLSearch = "SELECT * FROM tblTemp WHERE Broj_No LIKE" & Chr(34) & "*" & Me.pret.Text & "*" & Chr(34) _
  3.              & " OR Godina_kad_je_verovatno_stvoren LIKE" & Chr(34) & "*" & Me.pret.Text & "*" & Chr(34) _
  4.              & " OR Broj_Kopija LIKE" & Chr(34) & "*" & Me.pret.Text & "*" & Chr(34) _
  5.              & " OR Format LIKE" & Chr(34) & "*" & Me.pret.Text & "*" & Chr(34) _
  6.              & " OR Grupa LIKE" & Chr(34) & "*" & Me.pret.Text & "*" & Chr(34) _
  7.              & " OR Naziv LIKE" & Chr(34) & "*" & Me.pret.Text & "*" & Chr(34) _
  8.              & " OR Moja_Firma LIKE" & Chr(34) & "*" & Me.pret.Text & "*" & Chr(34) _
  9.              & " OR pnfPrezime LIKE" & Chr(34) & "*" & Me.pret.Text & "*" & Chr(34) _
  10.              & " OR pnfIme LIKE" & Chr(34) & "*" & Me.pret.Text & "*" & Chr(34) _
  11.              & " OR Njihova_Firma LIKE" & Chr(34) & "*" & Me.pret.Text & "*" & Chr(34) _
  12.              & " OR ppPrezime LIKE" & Chr(34) & "*" & Me.pret.Text & "*" & Chr(34) _
  13.              & " OR ppIme LIKE" & Chr(34) & "*" & Me.pret.Text & "*" & Chr(34) _
  14.              & " OR Mesto_Gdje_Je_Stvoren LIKE" & Chr(34) & "*" & Me.pret.Text & "*" & Chr(34) _
  15.              & " OR Mesto_Kog_Se_Tice LIKE" & Chr(34) & "*" & Me.pret.Text & "*" & Chr(34) _
  16.              & " OR Osobe_Ime LIKE" & Chr(34) & "*" & Me.pret.Text & "*" & Chr(34) _
  17.              & " OR Osobe_Prezime LIKE" & Chr(34) & "*" & Me.pret.Text & "*" & Chr(34) _
  18.              & " OR Akcija LIKE" & Chr(34) & "*" & Me.pret.Text & "*" & Chr(34) _
  19.              & " OR Opis LIKE" & Chr(34) & "*" & Me.pret.Text & "*" & Chr(34)
  20.     Me.frmTemp_Subform.Form.RecordSource = SQLSearch
  21.     Me.frmTemp_Subform.Requery
↑  ↓

Stranice (2): 1, 2


All times are GMT +01:00. Current time: 24.01.2018-04:47.