Merhaba iyi günler
Örnek bir çalışma ekledim. Yapmak istediğim 8 Adet Açılan Liste Kutum mevcut bu Açılan Liste Kutularının hepsinin satır kaynakları aynı. Herhangi bir Açılan Liste Kutusunda seçim yaptığımda bu seçtiğim kaydın diğer Açılan Liste Kutularında seçilmemesini istiyorum. IF ve or ile yapmaya çalıştım ancak olmadı. Çalışmamı inceleyip nasıl yapabileceğim hakkında ve nerede yanlış yaptığım konusunda yardımcı olabilirmisiniz. İyi forumlar.
Listeden Seçilen Bir Değerin Bir Daha Seçilememesi
Sorunu çözdüm
If Me.Açılan_Kutu1 = Açılan_Kutu2 Or Me.Açılan_Kutu1 = Açılan_Kutu3 Or Me.Açılan_Kutu1 = Açılan_Kutu4 Or Me.Açılan_Kutu1 = Me.Açılan_Kutu5 Or Me.Açılan_Kutu1 = Açılan_Kutu6 Or Me.Açılan_Kutu1 = Me.Açılan_Kutu7 Or Me.Açılan_Kutu1 = Me.Açılan_Kutu8 Then
MsgBox "Bu kayıt daha önce seçilmiş."
End If
End Sub
Diğer kutular içinde bu şekilde uygulandığında Açılan Liste Kutusunda Mükerrer seçim yapılamaz.
If Me.Açılan_Kutu1 = Açılan_Kutu2 Or Me.Açılan_Kutu1 = Açılan_Kutu3 Or Me.Açılan_Kutu1 = Açılan_Kutu4 Or Me.Açılan_Kutu1 = Me.Açılan_Kutu5 Or Me.Açılan_Kutu1 = Açılan_Kutu6 Or Me.Açılan_Kutu1 = Me.Açılan_Kutu7 Or Me.Açılan_Kutu1 = Me.Açılan_Kutu8 Then
MsgBox "Bu kayıt daha önce seçilmiş."
End If
End Sub
Diğer kutular içinde bu şekilde uygulandığında Açılan Liste Kutusunda Mükerrer seçim yapılamaz.
aşağıdaki kodları dener misiniz?
form yüklneme olayı
form yüklneme olayı
Private Sub Form_Load()
For x = 1 To 8
Controls("Açılan_Kutu" & x).OnGotFocus = "=Odaklan(" & x & ")"
Next x
End Sub
açılır kutu odaklanma olayıPublic Function Odaklan(ByRef ctl As Byte)
SqlX = "SELECT Tablo1.DENEME " & _
"FROM Tablo1 "
For x = 1 To 8
If ctl <> x Then Krtr = Krtr & IIf(Controls("Açılan_Kutu" & x) <> "", "','" & Controls("Açılan_Kutu" & x), "")
Next x
Krtr = Mid(Krtr, 3)
SqlX = SqlX & IIf(Krtr <> "", "WHERE ((Tablo1.DENEME) Not In (" & Krtr & "'));", ";")
Controls("Açılan_Kutu" & ctl).RowSource = SqlX
End Function
not: açılır kutular için yazdığınız diğer kodları silmelisiniz
(08/08/2021, 00:25)berduş yazdı: not: açılır kutular için yazdığınız diğer kodları silmelisiniz
Paylaştığınız örneğinizi inceledim hocam. Döngü yöntemi ile yapmak mantıklı olmuş gerçekten. Ben doğrudan 2. mesajımda belirttiğim gibi yaptım. Sizin yaptığınız şekil ise hem daha pratik hemde seçim yapılırken seçimin listeden çıkması ile karmaşıklığı önlemiş oluyor.
Ancak şöyle durumlarda ne kadar sağlıklı çalışır acaba diye düşündüm
1-Açılır_Kutu isminin sıralı verilmediği
2-Seçime ait ID bilgisinin metin kutusuna aktarımı sağlandığında doğru bir aktarım sağlar mı
bunlar ile ilgili çalışma yapmanıza gerek yok hocam fikrinizi belirtirseniz makbule geçer
Elinize sağlık teşekkür ederim.
Son Düzenleme: 08/08/2021, 00:50, Düzenleyen: lemoncher2.
(08/08/2021, 00:47)lemoncher2 yazdı: 1-Açılır_Kutu isminin sıralı verilmediğisıralı olması işlemi tabi ki kolaylaştırır ama açılır kutu isimlerini dizi içine alarak da kullanabilirsiniz
(08/08/2021, 00:47)lemoncher2 yazdı: 2-Seçime ait ID bilgisinin metin kutusuna aktarımı sağlandığında doğru bir aktarım sağlar mıkullanılan kod sadece kriteri etkiliyor diğerlerinde sorun çıkarmaz ama çalışmanız olmadan herhangi bir yöntem de öneremem
örnek çalışmanızı eklerken asıl çalışmanızla paralel yapıda olması yukardaki sorular nedeniyle çok önemli
Konuyu Okuyanlar: 2 Ziyaretçi