Centar za edukaciju-BiH



#11 05.06.2017 14:47
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,644


Predmet: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
Podrska samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#12 05.06.2017 17:09
Gjoreski Van mreze
Administrator
Registrovan od:02.02.2009
Postovi:1,854


Predmet: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 Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,644


Predmet: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?
Podrska samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#14 05.06.2017 20:42
Gjoreski Van mreze
Administrator
Registrovan od:02.02.2009
Postovi:1,854


Predmet: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 Van mreze
Administrator
Registrovan od:02.02.2009
Postovi:1,854


Predmet: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.
PreuzmiIzvorni kôd (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.

PreuzmiIzvorni kôd (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
↑  ↓

#16 06.06.2017 10:31
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,644


Predmet:Re: Query od vise tabela
Evo moja pretraga.
Napravi Novu formu i na nju stavi 2 list boxa.
Prvi list neka se zove 'List0' a drugi neka sezove 'temp'.
U list0:
rowsource type neka bude value lista.
column count 2
column with 3;0
u list temp:
column count 28 ili manje po zelji

Napravi i jedno tekstualno polje koje ce se zvati 'uslov'.
I jos jedan komandni taster 'command2'

Evo kod:
PreuzmiIzvorni kôd (Visual Basic):
  1. Private Sub Command2_Click()
  2. Dim uslov, Imepolja As String
  3. Dim tip As Integer
  4. Dim SQl As String, SQlUslov As String
  5. Dim Itm, Ctl As Control
  6.  
  7.  
  8. uslov = Me.uslov
  9. If Format$(uslov) = "" Then GoTo Kraj
  10. SQl = "SELECT * FROM TblTemp "
  11. Set Ctl = Me.List0
  12. For Each Itm In Ctl.ItemsSelected
  13. Imepolja = Trim(Ctl.Column(0, Itm))
  14. tip = Trim(Ctl.Column(1, Itm))
  15. DodajUslov Imepolja, tip, uslov, SQlUslov
  16. Next Itm
  17. If SQlUslov <> "" Then
  18. SQl = SQl & " WHERE " & SQlUslov
  19. Else
  20. SQl = "SELECT * FROM tblTemp WHERE False<>False"
  21. End If
  22. Me.temp.RowSource = SQl
  23. Kraj:
  24. End Sub
  25.  
  26. Private Sub Form_Load()
  27. Dim Db As DAO.Database
  28. Dim tdf As DAO.TableDef
  29. Dim Fld As DAO.Field
  30. Dim tmp As String
  31.  
  32. Set Db = CurrentDb
  33. Set tdf = Db.TableDefs("tblTemp")
  34.  
  35. For Each Fld In tdf.Fields
  36. tmp = tmp & Fld.Name & ";" & Fld.Type & ";"
  37. Next
  38. tmp = Left(tmp, Len(tmp) - 1)
  39. Me.List0.RowSourceType = "Value List"
  40. Me.List0.RowSource = tmp
  41. End Sub
  42.  
  43. Sub DodajUslov(Imepolja As String, tip As Integer, uslov, SQlUslov As String)
  44. Dim Poz As Integer
  45.  
  46. If SQlUslov <> "" Then
  47. SQlUslov = SQlUslov & " OR "
  48. End If
  49.  
  50. Select Case tip
  51.  
  52. Case 1
  53. If uslov = Val(-1) Or uslov = Val(0) Then
  54. SQlUslov = SQlUslov & Imepolja & "=" & uslov
  55. Else
  56.     If SQlUslov <> "" Then
  57.     SQlUslov = Left(SQlUslov, Len(SQlUslov) - 4)
  58.     End If
  59. End If
  60. Case 4
  61. If IsNumeric(uslov) Then
  62. SQlUslov = SQlUslov & Imepolja & "=" & uslov
  63. Else
  64.     If SQlUslov <> "" Then
  65.     SQlUslov = Left(SQlUslov, Len(SQlUslov) - 4)
  66.     End If
  67. End If
  68. Case 8
  69. Poz = InStr(1, uslov, "-")
  70. If Poz > 0 Then
  71. On Error GoTo PRAZNO
  72.     SQlUslov = SQlUslov & "BETWEEN #" & Format(Left(uslov, Poz - 1), "dd-mm-yyyy") _
  73.     & "# AND #" & Format(Mid(uslov, Poz + 1), "dd-mm-yyyy") & "#"
  74. PRAZNO:
  75.     If SQlUslov <> "" Then
  76.     SQlUslov = Left(SQlUslov, Len(SQlUslov) - 4)
  77.     End If
  78.     Err.Clear
  79.     On Error GoTo 0
  80. Else
  81. Dim Dat As Date
  82.     On Error Resume Next
  83.     Dat = uslov
  84.     If Err.Number > 0 Then
  85.         If SQlUslov <> "" Then
  86.         SQlUslov = Left(SQlUslov, Len(SQlUslov) - 4)
  87.         End If
  88.     Err.Clear
  89.     On Error GoTo 0
  90.     Else
  91.     uslov = "#" & Format(uslov, "dd-mm-yyyy") & "#"
  92.     SQlUslov = SQlUslov & Imepolja & "=" & uslov
  93.     End If
  94. End If
  95. Case Is > 9
  96. SQlUslov = SQlUslov & Imepolja & " Like '*" & uslov & "*'"
  97. End Select
  98. End Sub

Trebalo bi malo istestirati.
Mozes dodati i u list0 neke druge nazive polja koji ce vidjeti korisnik.
Podrska samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#17 06.06.2017 16:45
Gjoreski Van mreze
Administrator
Registrovan od:02.02.2009
Postovi:1,854


Predmet:Re: Query od vise tabela
Uradio sam ovo i radi ali cu to testirati kad imam vise podatke koi nisu nekakvi gluposti kao sta sad imam u databazi
↑  ↓

#18 12.06.2017 22:10
dex Van mreze
Super Moderator
Registrovan od:23.02.2012
Postovi:625


Predmet:Re: Query od vise tabela
Uzasno komplikovano i sporo sa 3 tabele i malo podataka.
Kako li bi tek bilo sa 10 tvojih?
Otezavajuca okolnost je sto Access ne podrzava FULL OUTER JOIN, pa sam morao da pravim LEFT i RIGHT i onda ih spajam u UNION

Prilozi:
Informacije o tipu datoteke za:zip  Database1.zip
Preuzimanja:322
Velicina datoteke:18.82 KB

↑  ↓

Stranice (2):1,2


Sva vremena su GMT +01:00. Trenutno vrijeme: 5: 01 am.