[FORM] Formda 4 Alanda Filtreleme
#13
(17-10-2016, 00:42)feraz demiş ki: Malisef başarılı olamadaım.


.rar   FormAcilan.rar (Boyut: 35,77 KB / İndirilme: 107) inceleyiniz. Guncelleme tarihi 18.10.2016



  Alıntı
Bu mesajı beğenenler:
#14
Teşekkürler fakat ben öylr istemiyorum.
Ekteki dosyadaki comboboxlara Form dan gelecek sadece veriler.
Biraz dosyayı değiştirdim ve kod ekledim.Kodlar aşaıdaki gibi.


Bana sadece formdan gelecek comboboxa veriler.

Visual Basic
  1. Option Compare Database
  2. Private Sub acl_kitapcik_AfterUpdate()
  3. Call Kontrol
  4. End Sub
  5. Private Sub acl_sinavsalonu_AfterUpdate()
  6. If acl_sinavsalonu <> "" Then
  7. acl_sinifi.RowSource = "select distinct[sinifi] from ogrenci where [acl_sinavsalonu] = '" & acl_sinavsalonu & "'"
  8. Else
  9. acl_sinifi.RowSource = "select distinct[sinifi] from ogrenci"
  10. End If
  11. Me.Requery
  12. Call Kontrol
  13. End Sub
  14.  
  15. Private Sub acl_sinifi_AfterUpdate()
  16.  
  17. If acl_sinifi <> "" Then
  18. acl_subesi.RowSource = "select distinct[subesi] from ogrenci where [sinifi] = '" & acl_sinifi & "'"
  19. Else
  20. acl_subesi.RowSource = "select distinct[subesi] from ogrenci"
  21. End If
  22. Me.Requery
  23.  
  24. Call Kontrol
  25. End Sub
  26. Private Sub acl_subesi_AfterUpdate()
  27.  
  28. If acl_subesi <> "" Then
  29. acl_kitapcik.RowSource = "select distinct[kitapcik] from ogrenci where [subesi] = '" & acl_subesi & "'"
  30. Else
  31. acl_kitapcik.RowSource = "select distinct[kitapcik] from ogrenci"
  32. End If
  33. Me.Requery
  34. Call Kontrol
  35. End Sub
  36. Sub Kontrol()
  37. On Error GoTo HATA
  38. Dim Kontrol As Control, Suzgec As String
  39. Me.Filter = ""
  40. For Each Kontrol In Me.Controls
  41. If Kontrol.Tag = "BosDolu" And Not IsNull(Kontrol) Then Suzgec = Suzgec & "[" & Mid(Kontrol.Name, 5, Len(Kontrol.Name)) & "]='" & Kontrol & "' And "
  42. Next Kontrol
  43. Me.Filter = IIf(IsError(Mid(Suzgec, 1, Len(Suzgec) - 5)), "", Mid(Suzgec, 1, Len(Suzgec) - 5))
  44. Me.FilterOn = True
  45. Exit Sub
  46. HATA:
  47. Me.Filter = ""
  48. Me.FilterOn = True
  49. End Sub




Eklenti Dosyaları
.rar   Çoklu bağlantılı comboboxlar1.rar (Boyut: 31,64 KB / İndirilme: 68)



  Alıntı
Bu mesajı beğenenler:
#15
Belki tam anlatamamış olabilirim.
Mesela form açıluşında combo1 1.sütuna,combo2 2.ci sütuna göre combo3 3.cü sütuna göre olacak veriler.

Mesela combo2 yi seçip filtreleme yapınca formdaki filtrelenen veriler ilgili combo larda listelenecek.

Yani select xxx from tablaadı değilde select xxx Formadı gibi.
Yani accesin kendi filtresi gibi.



  Alıntı
Bu mesajı beğenenler:
#16
Sn feraz;

Form VBA'sin da ki kodlari asagida ki prosedurler ile degistirebilirsiniz.
Visual Basic
  1. Dim Gordum(3) As String
  2. Sub Kontrol()
  3. On Error GoTo HATA
  4. Dim Kontrol As Control, Suzgec, Sutun As String, SrgHzr As Variant, Sw As Long
  5. SrgHzr = Array("sinavsalonu", "sinifi", "subesi", "kitapcik")
  6. For Each Kontrol In Me.Controls
  7. If Kontrol.Properties("ControlType") = 111 Then
  8. If Kontrol.Tag = "BosDolu" And Len(Me.Controls(Kontrol.Name)) > 0 Then Suzgec = Suzgec & "[" & Mid(Kontrol.Name, 5, Len(Kontrol.Name)) & "]='" & Nz(Kontrol, "") & "' And "
  9. End If
  10. Next Kontrol
  11. Dim AlanBosKnt As String
  12. If Len(Suzgec) = 0 Then AlanBosKnt = "" Else AlanBosKnt = IIf(IsError(Mid(Suzgec, 1, Len(Suzgec) - 5)), "", Mid(Suzgec, 1, Len(Suzgec) - 5))
  13. For Sw = 0 To 3
  14. If Me.Controls("acl_" & SrgHzr(Sw)).Properties("ControlType") = 111 And Sw <= 3 Then
  15. Me.Controls("acl_" & SrgHzr(Sw)).RowSource = "select distinct[" & SrgHzr(Sw) & "] from ogrenci Where Not IsNull([" & SrgHzr(Sw) & "])" & IIf(Len(AlanBosKnt) > 0, " And " & AlanBosKnt, Null) & " Order By " & SrgHzr(Sw)
  16. Me.Controls("acl_" & SrgHzr(Sw)).Requery
  17. Me.Controls("acl_" & SrgHzr(Sw)).Enabled = IIf(Me.Controls("acl_" & SrgHzr(Sw)).ListCount >= 1, True, False)
  18. Gordum(Sw) = Mid(Me.Controls("acl_" & SrgHzr(Sw)).RowSource, 1, InStr(1, Me.Controls("acl_" & SrgHzr(Sw)).RowSource, "Where") - 1)
  19. End If
  20. Next Sw
  21. If AlanBosKnt <> "" Then
  22. Me.Filter = IIf(IsError(Mid(Suzgec, 1, Len(Suzgec) - 5)), "", Mid(Suzgec, 1, Len(Suzgec) - 5))
  23. Else
  24. Me.Filter = ""
  25. End If
  26. Me.FilterOn = True
  27. Exit Sub
  28. HATA:
  29. Me.Filter = ""
  30. Me.FilterOn = True
  31. End Sub



Temiz adinda bir buton olusturup, asagida ki kodu tasiyin.

Visual Basic
  1. Private Sub Temiz_Click()
  2. Dim i As Long
  3. For Each KontrolX In Me.Controls
  4. If KontrolX.Tag = "BosDolu" Then
  5. If Gordum(i) = "" Then Gordum(i) = "select distinct[" & Mid(KontrolX.Name, 5, Len(KontrolX.Name)) & "] from ogrenci Where Not IsNull([" & Mid(KontrolX.Name, 5, Len(KontrolX.Name)) & "])"
  6. If KontrolX.Properties("ControlType") = 111 And i <= 3 Then Me.Controls(KontrolX.Name).RowSource = Gordum(i)
  7. Me.Controls(KontrolX.Name).Requery
  8. Me.Controls(KontrolX.Name).Enabled = IIf(Me.Controls(KontrolX.Name).ListCount >= 1, True, False)
  9. Me.Controls(KontrolX.Name) = ""
  10. i = i + 1
  11. End If
  12. Next KontrolX
  13. Me.Filter = ""
  14. Me.FilterOn = True
  15. End Sub





  Alıntı
Bu mesajı beğenenler:
#17
Sezgin Bey,

İstediğim gibi olmuş.Fakat filtreleme işlemi sadece en baştaki combobox seçilirse devreye giriyor.
Diğerleriyle başlayınca filtreleme olmuyor malisef.

Eğer çok şey istememiş olursam bu sorunuda halledebilir misiniz?

Sygılar.



  Alıntı
Bu mesajı beğenenler:
#18
(17-10-2016, 15:47)feraz demiş ki: Filtreleme işlemi sadece en baştaki combobox seçilirse devreye giriyor.
Diğerleriyle başlayınca filtreleme olmuyor.

Mesaj 16 guncelledim.



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  [FORM] Seçili Tarihe Göre Filtreleme husem 3 333 25-09-2025, 00:25
Son Mesaj: halily
  [TABLO] Iki Tabloda Tarih Alanlarını ,tek Alanda Altalta Getirme Access Ziyaretçisi 9 757 24-07-2025, 23:58
Son Mesaj: Access Ziyaretçisi
  Form üzerinde Ikili Filtreleme osmangezin@gmail.com 1 328 19-06-2025, 00:01
Son Mesaj: dsezgin
  Aynı Günleri Filtreleme Satir 7 666 30-04-2025, 09:33
Son Mesaj: Satir
access-sql-9 [SORGU] Tabloda Geçen Iki Alanda Ortak Kelime Var Ise Istenilen Alana Işaret Koymak sevincili 5 480 20-09-2024, 01:09
Son Mesaj: dsezgin
  Filtreleme evren89 2 344 04-07-2024, 15:58
Son Mesaj: evren89
  [FORM] Teslim Tarihi Alanına Göre Süzme, Filtreleme programmer67 14 1.118 09-05-2024, 23:27
Son Mesaj: programmer67
  [TABLO] Formu Tabloda Filtreleme soss 2 490 27-03-2024, 20:04
Son Mesaj: soss

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi