Sql kodundaki tarih kısıtını excel hücresinden alma

Katılım
14 Haziran 2011
Mesajlar
88
Excel Vers. ve Dili
Excel 2007, Türkçe
Benim eklediğim mesaja göre hazırladığınız kodu buraya ekler misiniz?
Tarihin INGBANK adlı sheette A1 hücresine yazıldığı varsayılmıştır.

SELECT SUM(TBLMCEK.TUTAR) FROM TBLMCEK INNER JOIN TBLBNKHESSABIT ON TBLBNKHESSABIT.NETHESKODU=TBLMCEK.SC_VERILENK WHERE TBLMCEK.VADETRH < '" & INGBANK.Range("A1") & "' AND TBLMCEK.SC_SONDUR="B" AND TBLBNKHESSABIT.ACIKLAMA="INGBANK TEMİNAT ÇEKLERİ" GROUP BY TBLBNKHESSABIT.ACIKLAMA

Bu kodu G2 hücresine yazınca alınan hata mesajı da ektedir.
 

Ekli dosyalar

Katılım
14 Haziran 2011
Mesajlar
88
Excel Vers. ve Dili
Excel 2007, Türkçe
Merhaba,

G2 hücresindeki ifadeyi kullandığınız makro kodunu foruma eklermisiniz.
Merhaba,
Makronun kodu aşağıdaki gibidir. Kod yazma bilgim olmadığı için bu makroyu makro kaydıyla yapmıştım. Normalde G2 hücresinin içine gelip enter'a bastığınızda kod çalışıyor. Ama ben bu yol uzun diye bu yolun makro kaydını yaptım. Programın verdiği kod da aşağıdadır.
Kodu da kısaca açıklayayım. Daha önce de dediğim gibi G2 hücresindeki sql kodu, veritabanından "NETSIS_DATA" formülünü kullanarak INGBANK adlı sheette G6 hücresinden başlamak ve en fazla 10 kayıt olmak üzere verileri X11 adlı veritabanından getiriyor.

Sub ÇekleriGetirING()
'
' ÇekleriGetirING Makro
'

'
Range(G2").Select
ActiveCell.FormulaR1C1 = _
"=NETSIS_DATA(""INGBANK"",""G6"",10,INGBANK!RC[1],""X11"")"
Range("G3").Select
End Sub
 
Katılım
14 Haziran 2011
Mesajlar
88
Excel Vers. ve Dili
Excel 2007, Türkçe
Arkadaşlar, http://www.excel.web.tr/archive/index.php/t-4617.html linkinde aynen benim yaşadığım sorunu anlatmış birisi. Çözüm de bulmuşlar bir userform ve tektbox ile. Denedim ama beceremedim sanırım, hata verdi. Bir userform ve text box ekleyip tarihi de orda belirttiği gibi '" & cdate(userform1.textbox1) & "' olarak koduma ekledim. Diyez işaretiyle de denedim. Sizce nerde yanlış yapıyorum acaba?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,207
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

#40 Nolu mesajıma eklediğim dosyadaki işlemleri denediniz mi?
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,362
Excel Vers. ve Dili
Ofis 365 Türkçe
Arkadaşımızın ne yaptığını bilmeden afaki yanıtlar veriyoruz.

Dosyayı da kodları da inatla eklemiyor ki bir bütün olarak inceleyelim.

sql de değişkenlerin çift tırnak içinde mi verildiğini sordum evet yanıtını aldım, oysa internette incelediğim sql komutlarında değişkenler tek tırnak içinde veriliyormuş.

Ayrıca komutun bir hücreye yazıldığını bilmem kaç mesaj sonra öğrendik.

Yani kimse boşuna uğraşmasın bu haliyle bu soru çözülmez, çünkü arkadaşın ne yaptığnı bilmiyoruz, kodların ne olduğnu bilmiyoruz.

Gereksiz yere o kadar kişi uğraşıyor.
Konuyu kilitlemek gerek aslında.
 
Katılım
14 Haziran 2011
Mesajlar
88
Excel Vers. ve Dili
Excel 2007, Türkçe
Merhaba,

#40 Nolu mesajıma eklediğim dosyadaki işlemleri denediniz mi?
Merhaba,
Evet, açıklamanızı okudum. Aslında orada dediğiniz gibi bir boşluk yok zaten. G2 hücresinde bir excel formülü yok, o yüzden = ile başlamıyor. sql sorgusu var, o da tırnak içinde yer almadığı için bahsettiğiniz boşluk yok orda aslında.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,207
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Benim eklemiş olduğum dosyadaki G2 hücresindeki formülü kendi dosyanıza kopyalayın. Tarih A1 hücresinden alınmaktadır. Gerekiyorsa formül içinde hücre adresini değiştirin ve deneyin bakalım olumlu sonuç alacakmısınız.
 
Katılım
14 Haziran 2011
Mesajlar
88
Excel Vers. ve Dili
Excel 2007, Türkçe
Merhaba,

Benim eklemiş olduğum dosyadaki G2 hücresindeki formülü kendi dosyanıza kopyalayın. Tarih A1 hücresinden alınmaktadır. Gerekiyorsa formül içinde hücre adresini değiştirin ve deneyin bakalım olumlu sonuç alacakmısınız.
Sizin kodunuzu ekleyince de yine aynı hata mesajı çıktı Korhan Bey. Hata mesajı ektedir.
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,207
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Peki G2 hücresine formül şeklindemi uyguladınız. Yani ifadenin başına "=" sembolünü eklediniz mi?
 
Katılım
14 Haziran 2011
Mesajlar
88
Excel Vers. ve Dili
Excel 2007, Türkçe
Hayır, "=" koymadım. Çünkü orası öyle çalışmıyor. Orda sadece kod yer alıyor. Hani makro kodlarını sormuştunuz ya. Formül orda. Kod çok uzun olduğu için zaten o formülün içine yazılmamış da ayrı bir hücreye yazılmış ve ordan çağrılmış formüle.
Aslında benim derdim tam olarak #43 nolu mesajda belirttiğim linkteki gibi. Ordaki kodu deniyorum ama userform ve textbox sorun çıkarıyor bana. Onların içine bir kod yazacak mıyım, bilemedim.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,207
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Lütfen aşağıdaki formülü G2 hücresine uygulayıp denermisiniz. Kırmızı hücre adresini kendi dosyanızdaki tarih hücresine göre değiştirmeyi unutmayın.

Kod:
="SELECT SUM(TBLMCEK.TUTAR) FROM TBLMCEK INNER JOIN TBLBNKHESSABIT ON TBLBNKHESSABIT.NETHESKODU=TBLMCEK.SC_VERILENK WHERE TBLMCEK.VADETRH < """ & METNEÇEVİR([COLOR=red]A1[/COLOR];"gg.aa.yyyy") & """ AND TBLMCEK.SC_SONDUR=""B"" AND TBLBNKHESSABIT.ACIKLAMA=""INGBANK TEMİNAT ÇEKLERİ"" GROUP BY TBLBNKHESSABIT.ACIKLAMA"
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,788
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Şu ana kadar 51 mesaj olmuş 2034 kere ziyaret edilmiş sonuç hala yok örnek dosya olmadan bu iş olmaz, yukarıdaki mesajlardada istenileni yapmamış olduğundan sonuç çözümsüz gibi gözüküyor.
 
Katılım
14 Haziran 2011
Mesajlar
88
Excel Vers. ve Dili
Excel 2007, Türkçe
Korhan Bey, son formülünüzü de denedim fakat yine aynı hata mesajı çıktı.

Görüyorum ki ilk mesajlarımda yaptığım açıklamalar dikkate alınmıyor. Dosyanın aslının 31 MB olduğunu belirttim. Ayrıca deneme yapılabilmesi için programa giriş yapılması gerektiğinden dosyanın eklenmesinin bir anlamı da olmayacağını belirttim.

Bundan sonra kendi aramalarımla bir sonuca ulaşmaya çalışacağım. Şimdiye kadar uğraşıp vakit harcayan herkese teşekkürlerimi sunarım. Yönetici arkadaşlardan ricam, konuyu kilitleyebilirler.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,788
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Merhaba,
Elimizde "SELECT SUM(TBLMCEK.TUTAR) FROM TBLMCEK INNER JOIN TBLBNKHESSABIT ON TBLBNKHESSABIT.NETHESKODU=TBLMCEK.SC_VERILENK WHERE TBLMCEK.VADETRH < "05.01.2011" AND TBLMCEK.SC_SONDUR="B" AND TBLBNKHESSABIT.ACIKLAMA="INGBANK TEMİNAT ÇEKLERİ" GROUP BY TBLBNKHESSABIT.ACIKLAMA " şeklinde bir sql sorgusu var. Bu sorgudaki "05.01.2011" tarihini, her defasında girip kodun içinden düzeltmek yerine; kodun bu tarihi, tarihin girileceği bir excel hücresinden veya bir inputboxtan almasını nasıl sağlayabiliriz?
Bu kodun başında ve sonunda olaylar yokmu sub makro() .end sub gibi
ayrıca siz bu sorguyu bilgisayarınızdaki bir veriden mi yoksa internettenmi sorguyu yapıyorsunuz.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,362
Excel Vers. ve Dili
Ofis 365 Türkçe
Aslında G2 aşağıdaki gibi olmalı.

Tabi tarihi A1 hücresinden alıyor, ama bu da olmadı diyecektir kesin :)

="SELECT SUM(TBLMCEK.TUTAR) FROM TBLMCEK INNER JOIN TBLBNKHESSABIT ON TBLBNKHESSABIT.NETHESKODU=TBLMCEK.SC_VERILENK WHERE TBLMCEK.VADETRH < '" & METNEÇEVİR(A1;"GG.AA.YYYY") & "' AND TBLMCEK.SC_SONDUR='B' AND TBLBNKHESSABIT.ACIKLAMA='INGBANK TEMİNAT ÇEKLERİ' GROUP BY TBLBNKHESSABIT.ACIKLAMA "
 
Katılım
18 Nisan 2007
Mesajlar
2,053
Excel Vers. ve Dili
Access 2019
Erp bağlantıyı G2 hücresindeki değişken sql deyiminini kullarak yaptığı için muhtemelen bu öneri de çözüm olmayacaktır.. Yani o hücre formul içermemeli..

Harici bir olay kullanarak G2 nin değeri değiştirilirse çözüme ulaşılır.. Mantık bence -Necdet Beyin önerisinden hareketle- bu yapıda kurulmalı..:

Misal bir buton vb. nesnenin olayına bu yapı uygulanabşlir..:
Range("G2") ="SELECT SUM(TBLMCEK.TUTAR) FROM TBLMCEK INNER JOIN TBLBNKHESSABIT ON TBLBNKHESSABIT.NETHESKODU=TBLMCEK.SC_VERILENK WHERE TBLMCEK.VADETRH < '" & METNEÇEVİR(A1;"GG.AA.YYYY") & "' AND TBLMCEK.SC_SONDUR='B' AND TBLBNKHESSABIT.ACIKLAMA='INGBANK TEMİNAT ÇEKLERİ' GROUP BY TBLBNKHESSABIT.ACIKLAMA "

A1 de 30.01.2011 varsa bu olay sonrası G2 bu değeri taşımalı..:

SELECT SUM(TBLMCEK.TUTAR) FROM TBLMCEK INNER JOIN TBLBNKHESSABIT ON TBLBNKHESSABIT.NETHESKODU=TBLMCEK.SC_VERILENK WHERE TBLMCEK.VADETRH < "30.01.2011" AND TBLMCEK.SC_SONDUR="B" AND TBLBNKHESSABIT.ACIKLAMA="INGBANK TEMİNAT ÇEKLERİ" GROUP BY TBLBNKHESSABIT.ACIKLAMA
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,362
Excel Vers. ve Dili
Ofis 365 Türkçe
Sayın Taruz,

Hepsini düşündüm fakat kodları görmediğimiz için biz sadece öneriyoruz bunu da arkadaşımızın becerisine bırakıyoruz sonuç : hüsran

Oysa dosyayı ya da en azından kodları görsek belki G2 hücresine doğrudan sql ifadesini yazdırırız ya da kodlarda G2 nin değerini kullanacağımız şekilde kodları değiştirirdik.

Fakat soruyu soran arkadaşımız ısrarla bundan kaçınıyor ve aynı zamanda da önerileri yapamıyor.

Aldık başımıza belayı bakalım ne kadar sürecek buradaki yanıtlar :)
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,788
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Herhalde veri al yöntemiyle veri/dış veri al/veri al yöntemiyle Microsoft Query nesnesi üzerinden veri almaya çalışıyor buradaki formülü içinde düzenliyorum ama sayfanın herhangibir yerindeki hücreyi değişken olarak kabul etmiyor yada ben yapamıyorum.
ekli iki adet resmi ekliyorum.
 

Ekli dosyalar

Katılım
17 Haziran 2006
Mesajlar
245
Excel Vers. ve Dili
Office 2010
English
@ Kuzey yolcu,

Sayfa adınız mı INGBANK yoksa kodlar kısmındaki ad mı?
Benim verdiğim örnekte direk kod penceresindeki sayfa adı kullanılmıştır.
Eğer kod penceresinde görünen sayfa adı INGBANK ise, olmaması için bir neden yok.
Yok, sayfanın ismi INGBANK ise, o zaman kodu, Worksheet("INGBANK").Range... şeklinde güncelleyin lütfen!
 
Üst