İlişkili Combobox - Resim Çağırma

1 2 3
24/08/2017, 14:20

tsots

Merhaba,

Yapmaya çalıştığım bir projem var. Daha önceden bunu excelde yapmıştım. Lakin benzer olsada çalışma tarzı biraz farklı olduğu için bunu accesse aktaramadım. Acces ile ilgili temel eğitim ve Vba ile ilgili 100 dersi izledim ve örnekleri inceledim. Lakin istediğim konuyu bulamadım. Olayı elimden geldiğince yalın anlatmaya çalışacağım. 

Tüm verileri önden ben gireceğim. Kullanıcı sadece bunları seçim yaparak elde edeceği raporu kullanacak. Tamamen hayal ürünü bir şablon hazırlamaya çalıştım. Bu örnekte elimizde 3 adet ürün var. Bu ürünlerde sunulan opsiyonların seçimine göre kendine ait bir sipariş kodu ve ilgili görselleri raporda görebiliyor. 

Çözmeye çalıştığım 3 tane konu var. 
        1 - Bu kadar komplex bir combobox nasıl oluşturabilirim. 
        2 - Kodlamayı seçilen kriterlere göre nasıl oluşturacağım. 
        3 - Resmi bu kriterlere göre nasıl çağıracağım ilgili forum ve rapora

Aşağıda detayları yazdım.

- Urun kodlamaları hakkında;
-- Kodlama Urun tipine göre X ürünü için "UX-", Y ürünü için "UY-" ve Z ürünü için "UZ-" şeklinde başlıyor. Sonrası "UrunX Kodlama" tablosundaki kriter ve karşılığı sayı veya harflerin birleşimiyle devam ediyor. Son kısımda ise ürüne göre (x,y veya z)  ilgili progresifte yer alan koda - ile progresif numarasını bağlanması ile oluşuyor.  Örnek vermek gerekirse x ürünü için Kod "UX-A0503B-00", z ürünü içni kod "UZ-E3350D-S01"
-- Progressive kısmı Urun X için  Malzeme ve Koruma opsiyonuna göre iki haneden oluşmaktadır. Urun Y ve Z için Malzeme ve Koruma opsiyonuna ilave olarak boy opsiyonuyla birlikte bir üç haneli bir progresif oluşmaktadır. 

Resim Çağırma;
 -- FmUrun kısmında ve raporda, SecinUrun formlarından hangisi kullanıldıysa bun kriterlerden iki tanesi için ilgili görsel ilgili yerine geliyor. (FmUrun kısmında ilgili kritelerin üzerine tiketlerini koydum).  Tabi seçilen her kriter bilgisi Formuda ve raporda görülecek ayrıca. Bunların için ayrıca labelı sonradan ekleyebilirim diye örneğe hepisini koymadım. 
-- Şimdi comboboxdan bunu yapmak kolay diyebilirsiniz. Lakin şöyle bir örnekleme yapayım.
------Mesela Urun x den bahsedecek olursak, Model Ex1 için sadece Kırmızı ve turuncu renk mümkün ve kırmızı için güç olarak 30HP ve 100 HP iken turuncu için 3 Hp ile 10 Hp mümkün, sonraki L için ise kırmızıda 50 70 100 ve turuncu için 100, 150, 200 mümkün. diğer değişkenlerde birbirine bağlı olarak çok farklı kombinasyonlarda çoğalıyor. yaklaşık 20 faklı opsiyon var her bir ürün için yaklaşık 15-20 ürün var. Gerçek versiyon için düzenli bir tablo yaratmam çok olası değil o yüzden. Kullanıcı herhangi bir özellikten yola çıkarak diğer opsiyonları seçebilmeli. Yani her iki taraflı bir filitreleme yaratmam gerekiyor. her seçimde diğer tüm comboboxlar kendini ona göre yenileyecek.

Bunları nasıl yapabileceğim konusunda bana yol göstermenizi rica ediyorum. Excel görsel olarak yeterli olmadığı ve Access daha kolay ve hafif olduğu için kullanmak istiyorum. Şimdiden herkese teşekkür ederim.

Not1: Exceldeki çalışmamda tüm comboboxları kod ile yarattığımdan döngü kurmak kolaydı. ilgili data sheetinden istediğim noktaları atayarak sağlayabiliyordum. 

Not2: Resim çağırma olayını excelde tüm ilgili görselleri bir sheet içine gömüyor ve atadığım isimler ile aşağıdaki modül yardımıyla çağırıyordum. Belki işinize yarar diye aşağıda paylaşıyorum.

Sub GetPicture3(MyShape As String)
 
 Dim MyChart As Chart
 
 Dim TempFile As String
 
 If resimsayac = 1 Then Exit Sub
 
 TempFile = "Temp.jpg"
 
 Sheets("Pictures").Shapes(MyShape).CopyPicture xlScreen, xlBitmap
 
 Set MyChart = ActiveSheet.ChartObjects.Add(1, 1, 60, 69).Chart
 
 With MyChart
     
     .Paste
     
     .Export TempFile
     
     .Parent.Delete
 
 End With
 
 Image3.Picture = LoadPicture(TempFile)
 
 Kill TempFile
 
 Set MyChart = Nothing

End Sub"
25/08/2017, 08:56

alpeki99

Okumak istedim ancak yarıda koptum. Önce sanal olarak anlatmışsınız. Halbuki ideal olanı örnek çalışmanızı ekleyip X tablosundaki verileri Y formunda Z isimli comboboxta T işlemini yaptığımda M sonucunu elde etmek istiyorum. Şeklinde adım adım örneklendirmeniz iyi olur. İşinizi siz biliyorsunuz bizler bilmiyoruz bundna dolayı ilkokul çocuğuna anlatır gibi sade ve adım adım yazarsanız daha iyi yardım alacaksınızdır.
25/08/2017, 10:55

tsots

(25/08/2017, 08:56)alpeki99 yazdı: Okumak istedim ancak yarıda koptum. Önce sanal olarak anlatmışsınız. Halbuki ideal olanı örnek çalışmanızı ekleyip X tablosundaki verileri Y formunda Z isimli comboboxta T işlemini yaptığımda M sonucunu elde etmek istiyorum. Şeklinde adım adım örneklendirmeniz iyi olur. İşinizi siz biliyorsunuz bizler bilmiyoruz bundna dolayı ilkokul çocuğuna anlatır gibi sade ve adım adım yazarsanız daha iyi yardım alacaksınızdır.

Her şeyden önce göstermiş olduğun ilgi sonrasın da uyarın için teşekkür ederim. Söylediğinizde tamamen haklısınız.
Örnek olarak hazırladığım dökümanı zaten paylaşmıştım. 

Örneğe baktığımızda "UrunX Kodlama" tablosunda "SecimUrunX" formundaki seçim kriterlerini ve bunların ürünün kodunu oluşturmada kullanacağımız kod karşılıklarını görüyorsunuz.

İlk yapmaya çalıştığım şey, "UrunX Kodlama" ve "Progressive UrunX" tablolarını kullanarak, "SecimUrunX" formunda seçim yaptırmak. 

Lakin kullanıcı herhangi bir seçim kriterinden başlayabilir ve bu seçimine göre diğer tüm parametreler değişebilir. Ayrıca Her opsiyon bir değeri için geçerli değil.

Örnek vermek gerekirse "SecimUrun X" formunda seçim yapmaya başladığımızı düşünelim. 

Model olarak Ex1 seçtiğimizde Renk comboboxından  sadece Kırmızı ve turuncu seçebilmeliyim. Seçime devam edersek

eğer güç combobox'ında, renk combobox'ında kırmızı renk seçiliyse (Model Ex1 aynı kalmak koşulu ile) 30Hp ve 100 Hp seçelebiliyor olmalı, 
Yine güç kombo boxı için kullanıcı bu defa renk comboboxında turuncu seçtiyse 3Hp ve 10Hp değerlerini seçebilmeli sadece (Model Ex1 aynı kalması koşulu ile)

Bu şekilde diğer tüm comboboxlar birbiriyle ilintili olarak farklı seçenekler sunarak devam ediyor. 

Bunlara ilave olarak kullanıcı güç kısmından seçime başlayarak hangi Modellerin  veya diğer seçeneklerin mevcut olduğunu görebilmeli.

Bunu daha önce excelde Vba kullanarak her combobox için mantığını kendim yazarak halletmiştim. Burada bunu nasıl yapabileceğim konusunda bana yol göstermenizi rica  ediyorum.

İkinci yapmaya çalıştığım nokta ise; Yapılan seçim sonrasında karşısına sipariş edilecek kodun belirlenmesi.

Bunun için Yeni X urünün örnek alırsak;

"UrunX Kodlama" tablosuna baktığımızda, "secimUrunx" forumunda yer alan her bir seçim kriteri için tanımlanmış bir açıklama ve karşılığında yer alan kod kısmını görebilirsiniz. Mesela; Ex1 modelinin kod karşılığı "A", kırmınızın ki "0" gibi. 
"Progressive UrunX" Tablosuna baktığımızda ise iki kriterin bir kod karşılığı olduğunu görüyoruz. Mesela; Mazelem için "Paslanmaz" ve Koruma opsiyonu "Var" olarak seçildiyse kod karşılığı "S0" dır. 

Kodlama ise şu mantıkla bir araya geliyor. 

Kod = "UX-"&"Model Kod"&"Renk Kod"&"Güç Kod"&"L boy Kod"&"Pozisyon Kod"&"Lisan Kod "&"Malzeme Kod"&"Koruma Kod"&"-"&"Progressive UrunX Kod"

Yine excelden örnek vermem gerekirse vba'da basit bir vlookup ile data sheetinden comboxbox değerine göre toplatıyordum. Burada tabloların çalışma prensibi biraz farklı yada daha çok başında olduğumdan bilmiyorum. Bu kodlamayı nasıl sağlayabilirim?

Üçüncü ve son olarak yapmaya çalıştığım şey ise; Tüm bu seçimleri "SecimUrunX" formunda tamamladıktan sonra "FmUrun" formunda Görsel olarak seçiminin son halini, ilgili resimlerini, kodunu vs. gibi bilgilerin tümünü görmesi ve ardından rapor sayfasında ön izleme yapıp çıktı alması veya geri dönerek uygun bulmadığı noktaları revize etmesi. Bunuda yine bir örnekle açıklmaya çalışayım. 

Kullanıcı "Secim UrunX" ekranından seçimi yapıp "Urunu Gor" tuşuyla "FmUrun" formunu açtığında 2 adet bazen 3 adet ilgili resmin bu forumda görünmesi gerekiyor. 

Örnek olarak "FmUrun" formuna Model ve Güç ile ilgili iki adet "image" oluşturdum boş olarak. 
Bunlardan üzerine "Model numarası" etiketi eklediğim görsel "Model" ve "Renk" opsiyonun seçim kriterlerine göre ekrana gelirken,

"Güç numarası" etiketinin altında kalan "image" sadece yapılan güç seçimine bağlı olarak gelmeli. 

Resmin üzerinde yazı olması gerektiği için sitede bulduğum bir modülü kullanıyorum, farklı bir şekilde koymayı başaramadım. Farklı ve kolay bir yolu varsa paylaşırsanız sevinirim.

Not:  Bu görsel resimleri dışarıdan bir dosyadan çağırmak sıkıntıya sebep olduğundan Access dosyasının kendi içinde olması gerekiyor. Eğer dosya çalışmasını çok yavaşlatacağını düşünüyorsanız dışarıdan da çağrılabilir. Excel tecrübeme istinaden excelde çok etkilemediğini söyleyebilirim. Ama Access de herşey başka olabilir tabiki (:

İlgilenen herkese şimdiden teşekkür ederim.

İstediğim bu saydıklarımı nasıl yapabileceğim konusunda bana yol göstermeniz. Eksik kalan/anlaşılmayan bir taraf var ise lütfen bana yazın.
25/08/2017, 11:22

ozanakkaya

Merhaba, önce ilk yapmaya çalıştığınız şeyden başlayalım. Diğer hususlar için yeni konu açın.

(25/08/2017, 10:55)tsots yazdı: Model olarak Ex1 seçtiğimizde Renk comboboxından  sadece Kırmızı ve turuncu seçebilmeliyim.

Açılan kutudan seçim yaptığınızda, hangi renklerin olacağının belirlenmesi için tanımlama göremedim.
Yani Ex1'i seçtiğinizde seçime kriter olması için renk, güç vs. tablosu olması gerekiyor ki açılan kutuya kod ile tanım oluşturalım. Ex1'i seçtiğinde mor rengin görünmemesi gerektiğini uygulamaya nasıl anlatacağız?
25/08/2017, 11:50

tsots

(25/08/2017, 11:22)ozanakkaya yazdı: Merhaba, önce ilk yapmaya çalıştığınız şeyden başlayalım. Diğer hususlar için yeni konu açın.

(25/08/2017, 10:55)tsots yazdı: Model olarak Ex1 seçtiğimizde Renk comboboxından  sadece Kırmızı ve turuncu seçebilmeliyim.

Açılan kutudan seçim yaptığınızda, hangi renklerin olacağının belirlenmesi için tanımlama göremedim.
Yani Ex1'i seçtiğinizde seçime kriter olması için renk, güç vs. tablosu olması gerekiyor ki açılan kutuya kod ile tanım oluşturalım. Ex1'i seçtiğinde mor rengin görünmemesi gerektiğini uygulamaya nasıl anlatacağız?

Merhaba,

Zaten sorun benim adıma orada başlıyor. Gerçeğinde bu çok kalabalık bir yapı. Yaklaşık her birinde en az 20 kriter ve 15 kadar ürünü içeren baya büyük yapı. Her bir ürünün kriteri için tablo yaratmak çok büyük bir sıkıntı olacak diye düşündüğüm için tabloları yönetebilmek adına hepsini tek tabloda toparladım. Ayrıca bölsem bile her farklı seçin kriteri için ayrı bir tablo veya query mi tanımlamak gerekecek noktasında kayboldum.

Sizce nasıl olması gerekir böyle bir yapı için? Ona göre yeni bir örmek hazırlamaya çalışayım?
25/08/2017, 12:16

ozanakkaya

Merhaba, 
Anlatımınız ile tablonuz aynı mı? 
tek tabloda topladım şeklinde belirttiğiniz tablo "UrunX Kodlama" isimli tablo ise, Ex1 için Kırmızı renk mevcut, ancak turuncu renk için "Ax3" verisi var.

Ex1 için 30Hp ve 100 Hp şeklinde belirtmişsiniz ancak tabloda Ex1 için 1Hp yazıyor.
1 2 3