Skip to main content

AccessTr.neT


Listeden Seçilen Bir Değerin Bir Daha Seçilememesi

Listeden Seçilen Bir Değerin Bir Daha Seçilememesi

Çözüldü #1
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.
.rar Yeni Microsoft Access Database.rar (Dosya Boyutu: 25,54 KB | İndirme Sayısı: 2)
Cevapla
#2
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.
Cevapla
#3
aşağıdaki kodları dener misiniz?
form yüklneme olayı
Visual Basic Code
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ı
Visual Basic Code
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
.rar TekrarsızSıralıListe_hy.rar (Dosya Boyutu: 20,5 KB | İndirme Sayısı: 2)
Cevapla
#4
not: açılır kutular için yazdığınız diğer kodları silmelisiniz
Cevapla
#5
(08/08/2021 00:25)berduş Adlı Kullanıcıdan Alıntı: 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.
Cevapla
#6
(08/08/2021 00:47)lemoncher2 Adlı Kullanıcıdan Alıntı: 1-Açılır_Kutu isminin sıralı verilmediği
sı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 Adlı Kullanıcıdan Alıntı: 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
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task