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
kodları boşuna istemedik herhalde :)

ne olduğunu tam olarak görmek için, illa biryerlere bağlanmak için değildi.
Lütfen yanlış anlamayın. Dosyayı eklemenin gereksiz olduğunu düşündüm çünkü neticede bağlantı makroları çalışmayacak vs. Ama ben yine de ekleyeyim. Bahsettiğim kod G2 hücresinde. Dosya, bağlantı makrosuyla programa bağlanıyor, daha sonra verileri güncelle butonuyla da verileri alıyoruz. Verileri alırken benim kullandığım tek kod o sql kodu yani. Bu arada en son yazdığınızı da denedim. Olmadı.

Sayın halit3, son hakkınızda size müjde vermek isterdim ama üzgünüm:)

Hakkınızı helal edin. Çok uğraştırdım sizi. Neyse ben biraz daha araştırayım. İnşallah çözüm bulursam paylaşırım.
Bu arada dosyanın sadece 1 sayfasını bile yükleyemedim 1 MB tan fazla olduğu için. O yüzden printini yolluyorum. Ne kadar faydası olabilir bilmiyorum:)
 

Ekli dosyalar

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,362
Excel Vers. ve Dili
Ofis 365 Türkçe
xl dosyası beklerken jpg ile karşılaştık :)

Konu benim için kapanmıştır. Sanırım anlaşamayacağız.
 
Katılım
14 Haziran 2011
Mesajlar
88
Excel Vers. ve Dili
Excel 2007, Türkçe
xl dosyası beklerken jpg ile karşılaştık :)

Konu benim için kapanmıştır. Sanırım anlaşamayacağız.
Sayın Necdet Yeşertener,
Dosyanın aslı 31.3 MB. Ben sadece 1 Sheet'ini yükleyeyim dedim, o da 1 MB'ı geçiyor. Onu da yüklemedi. Benim de yapabileceğim bir şey yok. Yoksa sorun benim sorunum, neden dosyayı görüp de bir çözüm üretmenizi istemeyeyim.
Neyse, şimdiye kdar harcadığınız vakit için teşekkür ederim.
İyi çalışmalar.
 

Necdet

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

Son bir çaba daha :)

Sanırım kodunuz G2 hücresindeydi G2:
Tarihi A1 hücresinden alıyor, onu siz kendinize göre uyarlayınız ve deneyiniz.

="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
14 Haziran 2011
Mesajlar
88
Excel Vers. ve Dili
Excel 2007, Türkçe
Merhaba,

Son bir çaba daha :)

Sanırım kodunuz G2 hücresindeydi G2:
Tarihi A1 hücresinden alıyor, onu siz kendinize göre uyarlayınız ve deneyiniz.

="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 "
Malesef bu da olmadı. Bu arada kod G2 hücresinde evet. Her defasında ben o kodun içine girerek tarihi değiştirmek istemediğim için, tarihi herhangi bir excel hücresine girip, kodun o veriyi o excel hücresinden almasını istiyordum. Çünkü bunu kullanacak çalışanın kafasının karışmaması gerek kodlarla. Ya bir excel hücresinden veya kod çalışacağı zaman çıkacak bir boxtan giriş yapabilseydim güzel olurdu. Çünkü raporun son kullanıcısı da haklı olarak bunu istiyor.
 

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
İşlemi doğru yaptığınızdan emin olmak için 16. mesajdaki kodu kendi kodunuza ekliyerek buraya eklermisiniz. çünkü tırnak işareti işlerinde bir karışıklık var gibi geliyor bana.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,362
Excel Vers. ve Dili
Ofis 365 Türkçe
Tarihi A1 hücresinden aldınız mı?

bu bir, ikincisi G2 hücresini kopyala özel yapıştır ile başka bir hücreye yapıştır ve sonucu inceleyin. doğrudan yazmış gibi görünüyor mu? olmadı diyorsunuz başka birşey demiyorsunuz.

Halit beyin dediği gibi tırnaklar burada başa bela.
 

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
ben bir örnek dosya ekliyorum buradaki düğmelere sırasıyla tıkla ve durumu değerlendir.

not :kod A1 hücresindeki tarih değerini alıyor.
 

Ekli dosyalar

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
.

Bu olur mu?

Kod:
Dim tarih As String 
tarih = worksheet("Sheet1").Range("G2").Value 

.....
   ......WHERE TBLMCEK.VADETRH < tarih


...
 
Katılım
17 Haziran 2006
Mesajlar
245
Excel Vers. ve Dili
Office 2010
English
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?

Kod:
SELECT SUM(TBLMCEK.TUTAR) FROM TBLMCEK INNER JOIN TBLBNKHESSABIT ON TBLBNKHESSABIT.NETHESKODU=TBLMCEK.SC_VERILENK WHERE TBLMCEK.VADETRH < '" & Sayfa1.Range("S14") & "' AND TBLMCEK.SC_SONDUR="B" AND TBLBNKHESSABIT.ACIKLAMA="INGBANK TEMİNAT ÇEKLERİ" GROUP BY TBLBNKHESSABIT.ACIKLAMA
Deneyin bakalım.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,339
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Hücredeki tarih formatı uygun olmayabilir. Tarih kısıtlaması şu iki şekilde yazılabilir:

Hücrede tarih SQL server formatında ise, yani YYYY-GG-AA
Tarih, tek tırnak içine alınacaktır.
Kod:
- [B]WHERE TBLMCEK.VADETRH < '" & Range("G2").Value & "' And ...[/B]
- Hücredeki tarih Türkiye standardında ise, yani GG.AA.YYYY
Bunu ya SQL server formatına çevirip yukarıdaki gibi yazarsınız yada, tarihi sayıya çevirerek yazarsınız. Sayıya çevirerek aşağıdaki gibi olacaktır. Burada tarih sayı olarak karşılaştırılcağı için tek tırnak kullanılmaz.

Kod:
- [B]WHERE TBLMCEK.VADETRH < " & Cdbl(Cdate(Range("G2").Value)) & " And[/B] ...
 
Katılım
14 Haziran 2011
Mesajlar
88
Excel Vers. ve Dili
Excel 2007, Türkçe
Arkadaşlar günaydın,
Sabah ilk işim önerilen her şeyi denemek oldu. Ama malesef yine bir sonuca ulaşamadım. Ekteki hata mesajını alıyorum hep.
Tırnak işaretlerine dikkat etmediğim kafanıza takılıyor gibi ama emin olun her kombinasyonu deniyorum. Önce sizin verdiğinizi olduğu gibi deniyorum. Daha sonra bir tırnağı siliyorum. Hiç tırnak olmadan deniyorum. Aklınıza gelecek her kombinasyonda deniyorum. Fakat her seferinde ekteki hata mesajı tekrarlanıyor.
Şunu tekrar söylemek istiyorum. Rapordaki verileri getiren sql sorgusu, G2 hücresinde yer almaktadır, tarih değil. Tarih, sabit bir kısıt olarak bu kodun içinde yer alıyor ama benim istediğim koda girip değiştirmek yerine benim tarih girebileceğim bir hücre olsun, mesela A1 hücresi. Ben A1 deki tarihi değiştireyim, G2 deki kod da tarih kısıtını A2 ye göre güncellesin. Sadece sql kodunu değiştirmek yetmiyor sanırım. Visual basice girip bazı tanımlar yapmak gerekiyor. Bazı arkadaşlar da onlarla ilgili kod vermişler "Dim as string" gibi. Ben bunu visual basice girip bu formülün kullanıldığı sayfaya yapıştırdım ama compile error veriyor. Yanlış yere mi koyuyorum acaba. Nereye koymam gerekir sizce?
 

Ekli dosyalar

Erkan Akayay

Altın Üye
Katılım
8 Aralık 2006
Mesajlar
405
Excel Vers. ve Dili
Ofis 365 TR 64 Bit
Altın Üyelik Bitiş Tarihi
21-11-2028
SQL formatı neyse onu vermek lazım. CONVERT(DATETIME,'" & Range("G2").value & "',103) ya da 101 iş görebilir.
 
Son düzenleme:
Katılım
17 Haziran 2006
Mesajlar
245
Excel Vers. ve Dili
Office 2010
English
Eklediğiniz resim ile verdiğim kod arasında bir ilişki göremedim ben.
Tarih'i hangi hücreden alacaksanız, o hücre ismini verdiğim kodda yazmanız yeterlidir.
O şekilde de olur, Erkan bey'in verdiği şekilde de..
Aksi olmaması gibi bir durum söz konusu olamaz.
Başka bir yerlerde hata yapıyorsunuz demektir.
 
Katılım
14 Haziran 2011
Mesajlar
88
Excel Vers. ve Dili
Excel 2007, Türkçe
Eklediğiniz resim ile verdiğim kod arasında bir ilişki göremedim ben.
Tarih'i hangi hücreden alacaksanız, o hücre ismini verdiğim kodda yazmanız yeterlidir.
O şekilde de olur, Erkan bey'in verdiği şekilde de..
Aksi olmaması gibi bir durum söz konusu olamaz.
Başka bir yerlerde hata yapıyorsunuz demektir.
Başka bir yerde hata yapmadığımı düşünüyorum, çünkü kodda tarihin yer aldığı yeri değiştirince bu hata oluyor. Normal olarak tarih yazarsam sorun çıkmıyor. Eklediğim hata mesajı sizin kodu yazınca çıkan olmayabilir. Ama hepsinde aynı hata çıktığı için örnek olarak bir tanesini ekledim.
 
Katılım
17 Haziran 2006
Mesajlar
245
Excel Vers. ve Dili
Office 2010
English
Benim eklediğim mesaja göre hazırladığınız kodu buraya ekler misiniz?
 

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,

G2 hücresindeki ifadeyi kullandığınız makro kodunu foruma eklermisiniz.
 

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,

Ekte bir örnek dosya hazırladım. Dosya içinde gerekli açıklamaları yaptım. Denermisiniz.
 

Ekli dosyalar

Üst