Konu Araçları | Konu Seçenekleri | Gösterim Stili
Tarih
21/05/2019 00:24
Konu Sahibi
magmar
Yorumlar
8
Okunma
288
Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 5
  • 4
  • 3
  • 2
  • 1

Derecelendirme: 0/5 - 0 oy
magmar

magmar

Üye
9989
 Belirtilmemiş
 7
 49
 02/10/2009
0
 Kahramanmaraş
 
 Ofis 2003
 Dün,01:13
Çözüldü 
arkadaşlar merhaba

öyle görünüyor ki bu sıralar sizi biraz fazla rahatsız edeceğim Img-grin

ekteki denemede, frmSiparis ve frmHambezSiparis isimli iki form var. her iki formda da Cari kısmına (frmSiparis = CariIDA, frmHamBezSiparis = DokumacıID) çift tıklayarak frmCariAra formunu açıp ilgili Cariyi hem arayıp hem seçmek istiyorum. frmSiparis formunda bu konu çalışıyor. ama ben frmSiparis formunda bu formu açtığımda Cari grubunun = 1 olmasını, HamBezSiparis formunda da CariGrubunun =10 olmasını istiyorum) 

ayrıca DokumacıID kısmında çift tıkladığımda da ilgili Cariyi getirmiyor. (frmCariAra formundaki Vba kodundan kaynaklı oldugunu biliyorum ama nasıl bir kod yazmam gerektiğini bilemedim Img-cray )

yardımcı olur musunuz?

teşekkürler


magmar, 02-10-2009 tarihinden beri AccessTr.neT üyesidir.

halily

halily

Uzman
65596
Ha....
 26
 1.155
 30/07/2014
209
 -
 
 Ofis 2019 64 Bit
 Bugün,11:45
her 2 formunda çift tıklama olayına argüman eklemeniz gerek
'openArg=argüman olarak gönderilen değer istediğinizi yazabilirsiniz amaç arama formunu hangi formun açtığını anlamak ama burada cari gruplar 1 ve 10 olduğu için 1 ve 10 kullanmanız daha uygun yoksa işi diğer taraflarda düzeltmek gerekiyor

Visual Basic Code
Private Sub cboCariIDA_DblClick(Cancel As Integer)
DoCmd.OpenForm "frmCariAra", , , , , , 1  'openArg=argüman olarak gönderilen değer
End Sub

Visual Basic Code
Private Sub cboDokumaciID_DblClick(Cancel As Integer)
DoCmd.OpenForm "frmCariAra", , , , , , 10
End Sub

liste kutusunun sorgu kaynağını aşağıdaki gibi düzeltmeniz gerek böylece gelen argümana göre aramayı 1 yada 10'a göre yapacak eğer arguman gelmemişse metin kutusu boşsa tüm kayıtları gösterecek
Like IIf(IsNull([Formlar]![frmCariAra]![TxtId]),"*",[Formlar]![frmCariAra]![TxtId]) 'boş ise like "*"

Visual Basic Code
SELECT tblCari.Cariidm, tblCari.CariUnvani, tblCari.CariGrubu
FROM tblCari
WHERE (((tblCari.CariUnvani) Like "*" & [Forms]![frmCariAra]![txtCariUnvaniAraGecici] & "*") AND ((tblCari.CariGrubu) Like IIf(IsNull([Formlar]![frmCariAra]![TxtId]),"*",[Formlar]![frmCariAra]![TxtId])))
ORDER BY tblCari.CariUnvani;

arama formuna ekleyeceğiniz bir metin kutusunu kriter olarak liste kutusunda kullanabilirsiniz
2 - sorun için de yine "openargs" metodunu kullanabilirsiniz

Visual Basic Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub lstCariAra_DblClick(Cancel As Integer)

If Me.TxtId = 1 Then 'Sipariş formundan gelen arguman=1
Forms!frmSiparis.SetFocus
Forms!frmSiparis!cboCariIDA = lstCariAra.Column(0)
DoCmd.Close acForm, "frmCariAra"

ElseIf Me.TxtId = 10 Then 'hambez formundan gelen arguman=10

Forms!frmHamBezSiparis.SetFocus
Forms!frmHamBezSiparis!cboDokumaciID = lstCariAra.Column(0)
DoCmd.Close acForm, "frmCariAra"
End If

End Sub



...........
magmar

magmar

Üye
9989
 Belirtilmemiş
 7
 49
 02/10/2009
0
 Kahramanmaraş
 
 Ofis 2003
 Dün,01:13
(21/05/2019 01:16)haliliyas Adlı Kullanıcıdan Alıntı: her 2 formunda çift tıklama olayına argüman eklemeniz gerek
'openArg=argüman olarak gönderilen değer istediğinizi yazabilirsiniz amaç arama formunu hangi formun açtığını anlamak ama burada cari gruplar 1 ve 10 olduğu için 1 ve 10 kullanmanız daha uygun yoksa işi diğer taraflarda düzeltmek gerekiyor

Visual Basic Code
Private Sub cboCariIDA_DblClick(Cancel As Integer)
DoCmd.OpenForm "frmCariAra", , , , , , 1  'openArg=argüman olarak gönderilen değer
End Sub

Visual Basic Code
Private Sub cboDokumaciID_DblClick(Cancel As Integer)
DoCmd.OpenForm "frmCariAra", , , , , , 10
End Sub

liste kutusunun sorgu kaynağını aşağıdaki gibi düzeltmeniz gerek böylece gelen argümana göre aramayı 1 yada 10'a göre yapacak eğer arguman gelmemişse metin kutusu boşsa tüm kayıtları gösterecek
Like IIf(IsNull([Formlar]![frmCariAra]![TxtId]),"*",[Formlar]![frmCariAra]![TxtId]) 'boş ise like "*"

Visual Basic Code
SELECT tblCari.Cariidm, tblCari.CariUnvani, tblCari.CariGrubu
FROM tblCari
WHERE (((tblCari.CariUnvani) Like "*" & [Forms]![frmCariAra]![txtCariUnvaniAraGecici] & "*") AND ((tblCari.CariGrubu) Like IIf(IsNull([Formlar]![frmCariAra]![TxtId]),"*",[Formlar]![frmCariAra]![TxtId])))
ORDER BY tblCari.CariUnvani;

arama formuna ekleyeceğiniz bir metin kutusunu kriter olarak liste kutusunda kullanabilirsiniz
2 - sorun için de yine "openargs" metodunu kullanabilirsiniz

Visual Basic Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub lstCariAra_DblClick(Cancel As Integer)

If Me.TxtId = 1 Then 'Sipariş formundan gelen arguman=1
Forms!frmSiparis.SetFocus
Forms!frmSiparis!cboCariIDA = lstCariAra.Column(0)
DoCmd.Close acForm, "frmCariAra"

ElseIf Me.TxtId = 10 Then 'hambez formundan gelen arguman=10

Forms!frmHamBezSiparis.SetFocus
Forms!frmHamBezSiparis!cboDokumaciID = lstCariAra.Column(0)
DoCmd.Close acForm, "frmCariAra"
End If

End Sub


halil bey çok teşekkürler. gerçekten harika anlatmışsınız. yalnız burda anlamadığım, argümana göre getirdiğimiz formumuz filtreli olarak nasıl gelecek? yani bana sadece carigrubu 1 olanları ya da 10 olanları getirsin? nasıl yazmamız lazım


magmar, 02-10-2009 tarihinden beri AccessTr.neT üyesidir.

halily

halily

Uzman
65596
Ha....
 26
 1.155
 30/07/2014
209
 -
 
 Ofis 2019 64 Bit
 Bugün,11:45
formunuzun hangi alana göre gelmesini istiyorsanız kriteri ona göre ayarlamalısınız diyelim ki sipariş formunuzu "CariIDA "alanına göre çağıracaksınız ve "lstCariAra" alanı da size "CariIDA"yı veriyor ozaman form açma kodu aşağıdaki gibi bir şey olmalı

Visual Basic Code
DoCmd.OpenForm "frmsiparis", , , "[CariIDA]=" & lstCariAra



...........
magmar

magmar

Üye
9989
 Belirtilmemiş
 7
 49
 02/10/2009
0
 Kahramanmaraş
 
 Ofis 2003
 Dün,01:13
(21/05/2019 10:58)haliliyas Adlı Kullanıcıdan Alıntı: formunuzun hangi alana göre gelmesini istiyorsanız kriteri ona göre ayarlamalısınız diyelim ki sipariş formunuzu "CariIDA "alanına göre çağıracaksınız ve "lstCariAra" alanı da size "CariIDA"yı veriyor ozaman form açma kodu aşağıdaki gibi bir şey olmalı

Visual Basic Code
DoCmd.OpenForm "frmsiparis", , , "[CariIDA]=" & lstCariAra


halil bey çok özür dilerim ama anlamadım. bu kodda CariGrubu kısmını nasıl filtreliyor? yani sadece müşterileri, ya da sadece dokumacıları getirmesi gerektiğini nasıl algılıyor?


magmar, 02-10-2009 tarihinden beri AccessTr.neT üyesidir.

halily

halily

Uzman
65596
Ha....
 26
 1.155
 30/07/2014
209
 -
 
 Ofis 2019 64 Bit
 Bugün,11:45
afedersiniz yanlış anlamışım. "DoCmd.OpenForm "frmsiparis", , , "[CariIDA]=" & lstCariAra" kodu "cariGrubu" kısmı filtrelemek için değil.
bu kod arama formunda seçtiğiniz kaydı sipariş formunda açmak için.
"cariGrubu" filtrelemek için sorguyu değiştirip grup filtresini, arama formuna eklediğim, "TxtId" metin kutusu sağlıyor.
dikkat ederseniz "sipariş" yada "hambez" formları "arama" formunu açarken aşağıdaki kodu kullanıyor
"DoCmd.OpenForm "frmCariAra", , , , , , 1 yada 10". frmCariAra açılırken eğer 1 gelirse TxtId=1, 10 gelirse TxtId=10 yapıyor
liste kutusunun sorgu kaynağına da kriter olarak "TxtId" eklendiğinden filtreleme ona göre yapılıyor.
sormanızın sebebi hatalı çalışması mı?



...........

Konuyu Okuyanlar: 1 Ziyaretçi

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
Çözüldü Form Ortalama Ekran Çözünürlüğüne Göre cozum 3 93 31/05/2019, 17:31
Son Yorum: ozanakkaya
Çözüldü Raporda Sayfa Alt Bilgisi Liste Boyuna Göre Yapışık Olsun Yardım okumas 2 109 30/05/2019, 15:38
Son Yorum: okumas
Çözüldü Girilen Sipariş Miktarına Göre Makinanın Üretm Doluluğu gimbo25 7 254 14/05/2019, 14:10
Son Yorum: halily
Çözüldü Stok Bakiye Depoya Göre Seçilerek Arama ahmetbal 1 185 06/05/2019, 21:26
Son Yorum: C*e*l*o*y*c*e
Çözüldü Otomatik sayı yıllara göre vermesi Fatih34 16 783 06/04/2019, 22:34
Son Yorum: halily

Türkçe Çeviri: MCTR, Yazılım: MyBB, © 2002-2019 MyBB Group.