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

magmar

Üye
9989
 Belirtilmemiş
 7
 49
 02/10/2009
0
 Kahramanmaraş
 
 Ofis 2003
 26/07/2019,12:10
Çö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.

berduş

berduş

Uzman
65596
ha....
 29
 1.399
 30/07/2014
218
 -
 
 Ofis 2019 64 Bit
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
 26/07/2019,12:10
(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.

berduş

berduş

Uzman
65596
ha....
 29
 1.399
 30/07/2014
218
 -
 
 Ofis 2019 64 Bit
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
 26/07/2019,12:10
(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.

berduş

berduş

Uzman
65596
ha....
 29
 1.399
 30/07/2014
218
 -
 
 Ofis 2019 64 Bit
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ü Forma Bağlı Form Kayıt Sorunu dioxi 7 227 16/08/2019, 06:55
Son Yorum: dioxi
Çözüldü Listeden Seçilenleri Alt Forma Ekleme irfans 11 406 05/08/2019, 11:27
Son Yorum: berduş
Çözüldü Otomatik Resim Ekleme yakanic 14 327 02/08/2019, 21:16
Son Yorum: berduş
Çözüldü Dlookup'ta Birde Kritere Göre Seçim okumas 5 184 30/07/2019, 14:17
Son Yorum: berduş
Çözüldü Sorgudaki Ölçüte Göre Grafik Oluşturma wertyu 4 175 28/07/2019, 09:28
Son Yorum: wertyu

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