Altform da ilişkili combobox lar

Katılım
25 Mayıs 2008
Mesajlar
11
Excel Vers. ve Dili
2003
Merhaba, uzun süredir okulda verilen bir proje ile uğraşıyorum . VBA bilmiyorum fakat birşeyler yapabildim. Dosyayı yollamadan önce biraz açıklayacak olursam eğer: bilgisayar şirketi takip programı yapıyorum. Sipariş formuna sipariş_alt adında alt form oluşturdum. Sipariş_alt formunda 2 adet combobox ım var. Örneğin ilk comboboxtan anakartı seçtiğimde ikinci combobox ta anakart markalarının görünmesini istiyorum. Altform oluşturmadan bunu yapabildim (Form1 adlı formda) , fakat altform oluşturunca işler biraz karıştı.
VBA komutları bilmediğimden işin içinden çıkamadım. Ayrıca müşteri 2 adet anakart aldığında stoktan düşmek zorundayım. Hangi komutları kullanırım bilmiyorum. Formu araştırdım fakat yapamadım. Yardımcı olursanız sevinirim.
Not: Bu arada orders ve order details adındaki forumda yapmak istediğim şey var, tek farkı ilk combobox ı seçince ikincisinde tamamı geliyor.
 
Katılım
25 Mayıs 2008
Mesajlar
11
Excel Vers. ve Dili
2003
Projeyi teslim etmeme az zaman kaldı arkadaşlar, yardımcı olabilecek olan varsa sevinirim. Umarım yapan birileri çıkar :)
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Merhaba;

Alt formlarda sorgu ölçütleri de altforma göre düzenlenir. ProductId açılankutusnun satır kaynağını oluşturan sorguda ölçütü;

Kod:
[Forms]![Sipariş]![Sipariş_alt].[Form]![cmbcategory]
olarak değiştirmelisiniz. Bunu yapsanız da bu kez ilgili alanların denetimkaynağı "ilişkisiz" olduğu için ve form sürekli yapıda olduğu için tümü değişecektir. Bu bakımdan açılan kutuların denetim kaynaklarını seçiniz. Örneğin, "categoryId" açılan kutusunun denetim kaynağı "categoryId" olmalıdır. Diğer kutu da aynı şekilde yani ilgili ismiyle. Bunu da yaptıktan sonra ise birçok arkadaşın karşılaştığı en büyük sorunlardan biri çıkacak karşınıza ilk açılan kutudan hangi kategoriyi seçerseniz diğer açılan kutularda o kategori harici seçim varsa boşalacaktır.. Bunu da aşmanın en iyi ve basit yolu "productId" isimli açılan kutunun sorgusunu gruplandırmaktır.

Kod:
SELECT Products.ProductID, Products.ProductName, Products.CategoryID
FROM Products
GROUP BY Products.ProductID, Products.ProductName, Products.CategoryID
HAVING (((Products.CategoryID)=[Forms]![Sipariş]![Sipariş_alt].[Form]![cmbcategory]))
ORDER BY Products.ProductName;
 
Katılım
25 Mayıs 2008
Mesajlar
11
Excel Vers. ve Dili
2003
beab05 çok çok teşekkür ederim,sorun çözüldü. Gerçekten çok uzun süredir yapmaya uğraşıyorum bunu. VBA ve sql bilmiyorum, malesef hocamızın da pek bildiği söylenemez. Buraya kadar getirdim, sorun olan bir tek bu ORDERS formu. Bunu yaparsam gerisini halledeceğim.
beab05 bir yandan da anlamaya çalışıyorum. Gruplamak ne işe yarıyor? Üstteki kodu çözmüştüm önceden örnekte yazmayı unutmuşum.Bunun dışında şöyle birşey demiştim doğru değil mi?

Option Compare Database

Private Sub cmbcategory_AfterUpdate()
Me.cmbproduct.Requery
End Sub

Private Sub cmbproduct_AfterUpdate()
Me.Requery

End Sub

Eğer cevaplarsanız 1-2 sorum daha olacak. Şimdi toplama ve çıkarmayı bir şekilde yaptırabilirim. Ben ürünü seçtiğimde fiyatının PRICE kutusuna yazmasını ve ürün adedini yazdığımda da tablodaki stoktan düşmesini istiyorum. Kodu yazmasız bile hangi komutları kullanıcam söyler misiniz? Bir yandan da öğrenmeye çalışıyorum dediğim gibi.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Merhaba;

Alttaki kodu kaldırın
Kod:
Private Sub cmbproduct_AfterUpdate()
Me.Requery
End Sub
Fiyat kısmının ilgili ürüne göre gelmesini ister "DLookUp" fonksiyonu ile isterseniz ürün açılan kutunuzun fiyat sütununu fiyat alanına yazdırarak yapabilirsiniz. 2. yolu seçerseniz açılan kutudan sütun ayarları yapıp fiyatı da seçmelisiniz. Açılan kutu ( product olan) güncelleştirme sonrasına alttaki gibidir..

Kod:
me.[fiyat alanım]=me.açılankutuismi.column (x) ' x kaçıncı sütün olduğudur. İlk sütun 0 dır.
 
Katılım
25 Mayıs 2008
Mesajlar
11
Excel Vers. ve Dili
2003
Düzeltti arkadaşlar 2 kere yazmışım yanlışlıkla.
 
Son düzenleme:
Katılım
25 Mayıs 2008
Mesajlar
11
Excel Vers. ve Dili
2003
beab05 çok çok teşekkür ederim. 2.yöntemi kullanarak hallettim. Son bir şey kaldı zahmet olmazsa ona da bir bakar mısın?
Orders_sub formundan quantity girildiğinde products tablosundaki unit in stock tan düşecek.Yine kodları yazarsan eğer ben uğraşırım.
Son bir sorum olacak şimdi ürünleri satarken ilk başta müşterinin ismini ve bilgilerini customers formundan giriyorum.Daha sonra orders formundan müşteri ismini comboboxtan seçiyorum. Bunun yerine direk textbox ta müşterinin ismi yazılıp aynı isim customers tablosundaki isme yazılabilir mi? Nası yapabilirim?

Yardımın için çok teşekkür ediyorum tekrardan.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Öncelikle isim karmaşası yaşıyorum. Keşke mevcut bir uygulama yerine en baştan kenidiniz, kendi verdiğiniz isimlerle çalışsaydınız. Anladığım kadarıyla cevap vereyim;
Çıkılan miktarın stoktan düşmesini bir sorgu yardımıyla yapabilirsiniz. Sorgunuzda ilgili tabloları bulundurun mesela kategoriler, ürünler gibi. Bu tablolardan oluşturduğunuz sorguda ilgili alanlar olmalı ve yine kalan gibi işlem yapacağınız alanlar olmalı.

Son sorunuzu ise anlamadım??
 
Katılım
25 Mayıs 2008
Mesajlar
11
Excel Vers. ve Dili
2003
Hocam şölye açıklayım ilkini.
tablo--> products , field--> units in stock
tablo--> orders details , field--> quantity (aynı zamanda bu orders_sub isimli form)

Orders_sub formunda da müşteri almak istediği miktarı(quantity) girecek ve girdiği miktar products tablosundaki units in stock fieldından düşecek. Sorgu oluşturmayı biliyorum ama nası düşecek onu bilmiyorum, yani VBA bilmiyorum malesef.
 
Katılım
25 Mayıs 2008
Mesajlar
11
Excel Vers. ve Dili
2003
Aslında bunlar hemen hemen kendi verdiğim isimlerdi, ama temelde Northwind den alıyor, çünkü dediğim gibi 0 dan başlayıp yapmak için örnek birşeyler olması gerekiyordu elimde.
2.sorumda ise şunu demek istiyorum. Satış yaparken müşterinin adını soyadını kendim gireceğim(orders formunda), ve bu girdiğim ad soyad customers tablosundaki ad soyada da işlenecek aynen. Bu yapılabilir mi?
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Buna benzer birçok sorgu örneği var siz ilgili tablolardan bir sorgu oluşturun ve yeni bir alana örneğin;
kalan: stok-quantity yapmanız yeterli...
2. sorunuz için; aynı ismi 2 defa giriyorsanız bunda bir yanlışlık var demektir. Tablo tasarımlarınızı ve ilişkileri gözden geçirin. Doğru bi tasarımla zaten istediğiniz alanları ilgili heryerde gösterebilir ya da giriş yapabilirsiniz..
Demek istediğim 2 tabloya eklenmesi gereksiz ve yanlıştır ama ilgili alanları ilişkilendirirseniz zaten diğer tabloyu da kapsayacaktır o isim..
 
Katılım
25 Mayıs 2008
Mesajlar
11
Excel Vers. ve Dili
2003
beab05 çok teşekkür ederim, şimdi deneyeceğim.
 
Üst