Skip to main content

AccessTr.neT


Sql İle İlişkili Combobox Oluşturma

Sql İle İlişkili Combobox Oluşturma

Çözüldü #1
Merhaba Arkadaşlar,

Genel olarak başarmaya çalıştığım şey birden çok tablo yaratmadan Sql tanımlamalarıyla Vba kullanarak çok ilişkili comboboxlar oluşturmak. 

Aşağıdaki kodu yazdım ama case kısmında göreceğiniz  "me.cbmodel" kısmını bir türlü doğru şekilde tanımlayamadığım için çalışmıyor. EK'te örneğin kendisini bulabilirsiniz. 

Tam olarak yapmak istediğim; "SecimUrunX" formunda Kullanıcı Model olarak Ex1, Ex1A veya diğer herhangi bir modeli seçtiğinde buna bağlı renk seçimini benim tanımladığım kurala göre seçim yapabilsin.

Bunu renk için çalıştırabilirsem, aynı yapıyı daha karmaşık bir şekilde genelline uygulayabileyim. Şimdiden teşekkür ederim.

Private Sub cbModel_afterupdate()

   Select Case True
   
   Case Me.cbModel = "SELECT tbl_UrunXKodlama.ID, tbl_UrunXKodlama.[1-Model], tbl_UrunXKodlama.[1-Model Kod] " _
                    & "FROM tbl_UrunXKodlama " _
                    & "WHERE (tbl_UrunxKodlama.ID = 1)"


    SQLrenk = "SELECT tbl_UrunXKodlama.ID, tbl_UrunXKodlama.[2-Renk], tbl_UrunXKodlama.[2-Renk Kod] " _
    & "FROM tbl_UrunXKodlama " _
    & "WHERE (tbl_UrunxKodlama.ID Between 3 And 5);"

    Me.cbRenk.RowSource = SQLrenk

    Me.cbRenk.Requery
    
    cbRenk.Value = strText

   Case Me.cbModel = "SELECT tbl_UrunXKodlama.ID, tbl_UrunXKodlama.[1-Model], tbl_UrunXKodlama.[1-Model Kod] " _
                    & "FROM tbl_UrunXKodlama " _
                    & "WHERE (tbl_UrunxKodlama.ID = 2 OR tbl_UrunxKodlama.ID = 4)"


    SQLrenk = "SELECT tbl_UrunXKodlama.ID, tbl_UrunXKodlama.[2-Renk], tbl_UrunXKodlama.[2-Renk Kod] " _
    & "FROM tbl_UrunXKodlama " _
    & "WHERE (tbl_UrunxKodlama.ID Between 3 And 4);"

    Me.cbRenk.RowSource = SQLrenk

    Me.cbRenk.Requery
    
    cbRenk.Value = strText

   Case Me.cbModel = "SELECT tbl_UrunXKodlama.ID, tbl_UrunXKodlama.[1-Model], tbl_UrunXKodlama.[1-Model Kod] " _
                    & "FROM tbl_UrunXKodlama " _
                    & "WHERE (tbl_UrunxKodlama.ID = 5)"


    SQLrenk = "SELECT tbl_UrunXKodlama.ID, tbl_UrunXKodlama.[2-Renk], tbl_UrunXKodlama.[2-Renk Kod] " _
    & "FROM tbl_UrunXKodlama " _
    & "WHERE (tbl_UrunxKodlama.ID Between 2 And 6);"

    Me.cbRenk.RowSource = SQLrenk

    Me.cbRenk.Requery
    
    cbRenk.Value = strText
    End Select

    End Sub
.zip Ornek V1.zip (Dosya Boyutu: 487,49 KB | İndirme Sayısı: 7)
Cevapla
#2
Merhaba; örneğinize kısada olsa bir göz atma fırsatım oldu. Örneğinizde kural hataları ve yapı hataları mevcut, müsait olduğumda daha ayrıntılı yazacağım.
POWER 'un Çekirgesi :=)
ozguryasin, 23-09-2009 tarihinden beri AccessTr.neT AİLESİ üyesidir.
Access'i Profesyonel Şekilde Öğrenmek İçin https://www.accesstr.net Ailesi Yeter. alkis


Site Kurallarını sorularınızın hızlı cevaplanması için kesinlikle okuyunuz.
Cevapla
#3
Şöyle bir ilave yapmam sanırım daha anlaşılır kılacak. Bu çalışma klasik tarzda olsaydı model, renk, guc vs tüm secenekler için ayrı bir tablo yapıp bunlara ayrı birer ID vermek (model_id, renk_id vs. gibi) gerekiyordu.  Örnekte geçerli tüm kriterleri tek tabloda topladım. Çoklu tablolar yerine tek bir tablo üzerinden (bu örnekte bu tablo "tbl_UrunXKodlama") bu işlemi yapmaya çalışıyorum.  Yani ID numarası komple satır için geçerli değil. Bu sebeple Sql kullanarak yazmaya çalışıyorum. Kısaca "tbl_UrunXKodlama" tablosundaki verilerin seçim ile hiç bir mantıksal bağıntısı yok. Bunu yazacağım döngü belirleyecek. Ayrıca görebildiğim kadarıyla hiç bir forumda bahsettiğim şekilde denenmemiş. 

Bunun nedeni gerçek uygulamada seçim kriterinin çok fazla olması. Ve seçimlerin sırasıyla birbirine bağımlı olmamasıdır. Yani model sadece renk seçeneğini etkilemiyor. Örnek verirsem gücüde değişiyor. Kullanıcı seçime modelden başlamak zorunda değil herhangi birinden başlayıp kendisini öncelik verdiği opsiyona göre nasıl etkileyeceğini görebilmeli. 
Program tamamlandığında 20-25 milyar arası bir olasılığı gerçekleştiriyor olacak.
Cevapla
#4
Sayın tsots. Benim yaptığım tüm projeler bu tarz uygulamalar üzerine. Sizin örneğinizi öğlen inceleme fırsatı buldum. Örneğiniz 1 tabloda 7-8 alan ile sorunsuz tutulabiliyor. Burada önemli olan yapıyı kurmak, mantığı iyi oturtmak. Örneğinize göre incelediğim kadarı ile aklımda mantığı kurdum. Dediğim gibi 1 tablo 7-8 alan en fazla. Tüm örneğinizin ihtiyacını karşılıyor. İsterseniz 10 tane 20 tane daha kriter koyun fark etmez. Eve gidince müsait olduğumda bir bakacağım
POWER 'un Çekirgesi :=)
ozguryasin, 23-09-2009 tarihinden beri AccessTr.neT AİLESİ üyesidir.
Access'i Profesyonel Şekilde Öğrenmek İçin https://www.accesstr.net Ailesi Yeter. alkis


Site Kurallarını sorularınızın hızlı cevaplanması için kesinlikle okuyunuz.
Cevapla
#5
(06/09/2017, 14:13)ozguryasin yazdı: Sayın tsots. Benim yaptığım tüm projeler bu tarz uygulamalar üzerine. Sizin örneğinizi öğlen inceleme fırsatı buldum. Örneğiniz 1 tabloda 7-8 alan ile sorunsuz tutulabiliyor. Burada önemli olan yapıyı kurmak, mantığı iyi oturtmak. Örneğinize göre incelediğim kadarı ile aklımda mantığı kurdum. Dediğim gibi 1 tablo 7-8 alan en fazla. Tüm örneğinizin ihtiyacını karşılıyor. İsterseniz 10 tane 20 tane daha kriter koyun fark etmez. Eve gidince müsait olduğumda bir bakacağım

+rep  Süper sabırsızlıkla bekliyorum.  Şimdiden teşekkür ederim.
Cevapla
#6
Sayın tsots; konu içeriğini örnekleyerek atabilirmisiniz.? Kriterler üründe neler olacak tarzında bildirirseniz iyi olur.
POWER 'un Çekirgesi :=)
ozguryasin, 23-09-2009 tarihinden beri AccessTr.neT AİLESİ üyesidir.
Access'i Profesyonel Şekilde Öğrenmek İçin https://www.accesstr.net Ailesi Yeter. alkis


Site Kurallarını sorularınızın hızlı cevaplanması için kesinlikle okuyunuz.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task