karma kutuya göre toplama çıkarma

05/12/2016, 21:51

maras321

Arkadaşlar merhaba.Yapmış olduğum forma ve alt forma bir kaç işlem yapmakyatım.Üstformda bulunan alanın tamamı altformdada var.En fazla üç tanesinin verilerini altforma çekebildim.Diğerlerini çekemedim.Bunu nasıl yapa bilirim?
Ayrıca yina aynı formda bulunan karma kutuda Alış ı seçtiğim zaman 


Private Sub giris_AfterUpdate()
Me.tppips.Value = Me.tp.Value - Me.giris.Value
Me.stoppips.Value = Me.stop.Value - Me.giris.Value
End Sub


şeklinde hesaplama işimi görüyor.

Satışı seçtiğim zaman ise 


Private Sub giris_AfterUpdate()
Me.tppips.Value = Me.giris.Value - Me.tp.Value
Me.stoppips.Value = Me.giris.Value - Me.stop.Value
End Sub



bu şekilde işimi görüyor ama ben bunu yapamıyorum.Acaba bunu nasıl yapabilirim.Şimdiden çok teşekkürler.
05/12/2016, 22:35

ercansahin

f_altislem formunuzdaki alt ve üst alan bağlantılarını kaldırın. Sonra f_altislem formunun SQL'ini
SELECT t_altislem.idaltislem, t_altislem.tarih, t_altislem.adi, t_altislem.giris, t_altislem.tp, t_altislem.stop, t_altislem.cinsi, t_altislem.kademe, t_altislem.tppips, t_altislem.stoppips, t_altislem.alan1, t_altislem.alan2, t_altislem.alan3 FROM t_altislem WHERE (((t_altislem.cinsi)=[Formlar]![f_islem]![cinsi])); 

 ile değiştirin. Kontrol edin. 
İstediğiniz olayı tam olarak algılayamadım. Ancak mantıkta bir sorun hissettim. Ana tablonuz ile diğer tablonuz arsında bir ilişki kurmalı ve alanları bağlamalısınız. Bu şekilde formunuzda ve oluşturacağınız sorgularda verileri daha sağlıklı çağırabilirsiniz. Umarım doğru anlamışımdır.
05/12/2016, 22:44

maras321

Sayın ercan şahin cevap için teşekkürler ama dediğinizi yapacak kadar bilgim yok. Dediğinizi formun üzerinde yapmanız mümkünmü? yada nereye nasıl ekleyeceğim tam olarak söylerseniz kendim yapmaya calışayım.
06/12/2016, 00:03

maras321

formu bağlama işini halletim ercan bey çok saolun. yalnız şimdi diğer sorumu bi türlü halledemedim 

karma kutuda Alış ı seçtiğim zaman 

Private Sub giris_AfterUpdate()
Me.tppips.Value = Me.tp.Value - Me.giris.Value
Me.stoppips.Value = Me.stop.Value - Me.giris.Value
End Sub

şeklinde hesaplama işimi görüyor.

Satışı seçtiğim zaman ise 

Private Sub giris_AfterUpdate()
Me.tppips.Value = Me.giris.Value - Me.tp.Value
Me.stoppips.Value = Me.giris.Value - Me.stop.Value
End Sub


bu şekilde olması için ne yapmam lazım.
06/12/2016, 00:34

ercansahin

f_altislem formunun kod sayfasına;
Private Sub Form_Load()
If Forms!f_islem.cinsi = "ALIŞ" Then
Me.RecordSource = "SELECT t_altislem.idaltislem, t_altislem.tarih, t_altislem.adi, t_altislem.giris, t_altislem.tp, t_altislem.stop, t_altislem.cinsi, t_altislem.kademe, [stop]-[giris] AS stoppips, t_altislem.alan1, t_altislem.alan2, t_altislem.alan3, [tp]-[giris] AS tppips FROM t_altislem WHERE (((t_altislem.cinsi)=[Formlar]![f_islem]![cinsi]));"
Else
Me.RecordSource = "SELECT t_altislem.idaltislem, t_altislem.tarih, t_altislem.adi, t_altislem.giris, t_altislem.tp, t_altislem.stop, t_altislem.cinsi, t_altislem.kademe, [giris]-[stop] AS stoppips, t_altislem.alan1, t_altislem.alan2, t_altislem.alan3, [giris]-[tp] AS tppips FROM t_altislem WHERE (((t_altislem.cinsi)=[Formlar]![f_islem]![cinsi]));"
End If
End Sub

yazın ve Formun Yüklendiğinde özelliğini "Olay Yordamı" olarak seçin,

f_islem formunun kod sayfasına;
Private Sub cinsi_AfterUpdate()
Me.f_altislem.Requery
End Sub
 yazın. Sonrasında da f_islem formunun CİNSİ alanının Güncelleştirme Sonrasında özelliğini "Olay Yordamı" olarak seçin ve deneyin. Umarım olmuştur. Kolay gelsin. Sonucu bildirirseniz sevinirim.

Not: Belki bana kızıyorsunuzdur. Yapıp neden örneği eklemiyor diye. Ancak amacım bu işlemleri size yaptırmak.
06/12/2016, 03:07

maras321

ercan bey dediklerinizi harfiyen uyguladım.... satışı seçtiğimde isteğim oluyor fakat alışta tppips + çıkması gerekirken - çıkıyor.benim anladığım her defasında alışta satışta secilse ikisinide aynı formülden hesaplıyor.acaba benmi yanlış bişey yaptım?
defalarca deneme rağmen alış ve satışlarda her seferinde farklı sonuçlar çıktı.Bazen ALIŞ secildiğinde yapılması gerekeni doğru yapıyor.Bazen SATIŞ secildiğinde yapılası gerekeni doğru yapıyor.
sorun haloldu.

emeği gecen herkese çok teşekürler.
Kod:
If Forms!f_islem.cinsi = "SATIŞ" Then
   Me.RecordSource = "SELECT t_altislem.idaltislem, t_altislem.tarih, t_altislem.adi, t_altislem.giris, t_altislem.tp, t_altislem.stop, t_altislem.cinsi, t_altislem.kademe, [giris]-[stop] AS stoppips, t_altislem.alan1, t_altislem.alan2, t_altislem.alan3, [giris]-[tp] AS tppips FROM t_altislem WHERE (((t_altislem.cinsi)=[Formlar]![f_islem]![cinsi]));"
Else
   Me.RecordSource = "SELECT t_altislem.idaltislem, t_altislem.tarih, t_altislem.adi, t_altislem.giris, t_altislem.tp, t_altislem.stop, t_altislem.cinsi, t_altislem.kademe, [stop]-[giris] AS stoppips, t_altislem.alan1, t_altislem.alan2, t_altislem.alan3, [tp]-[giris] AS tppips FROM t_altislem WHERE (((t_altislem.cinsi)=[Formlar]![f_islem]![cinsi]));"
End If

örneği eklemeyi umutmuşum düzenlenmiş hali ektedir.Sorun cözülmüştür.