ERP Nedir? | Türkiye'nin ERP Forum Platformu Ana Sayfa
Forum Anasayfa Forum Anasayfa > ERP Genel > ERP Excel Entegrasyonları
  Aktif Konular Aktif Konular RSS - Sql sorgusunda tarih kisitini Excel'den getirme
  SSS SSS  Forumu Ara   Etkinlikler   Kayıt Ol Kayıt Ol  Giriş Giriş

ERP Nedir? Enterprise Resource Planning nasıl çalışır? İş süreçleri ile ilgili tüm soru ve cevapları ERPNe.org'da.

Ülkemizde hızla gelişmekte olan ERP yazılım sektörümüzün, Yerli ve Yabancı ERP işlemlerinin tanıtımı ve kullanıcılarının buluşma noktası olması hedefiyle kurulan sitemize hoş geldiniz.

Ülkemizdeki Ne.org konseptinde bir ilk olarak yayın hayatına başlayan ERPNe.org, Kurumsal Kaynak Planlaması yazılımlarını kullananların bilgi kaynağı/Portal olmak amacı ile kurulmuştur.

Genellikle yurt dışında büyük üreticiler tarafından geliştirilen SQL, Delphi, ASP, CSharp gibi teknolojilerin anlatıldığı sitelerin kullandıkları (WhatisSQL, WhatisASP) (Ülkemizde Netsis Nedir, Mikro Nedir, SAP Nedir yada Logo Nedir gibi kullanıcı sorularına) Ne ve nedir konseptinde yeni bir açılım olmasını da hedefleyen ERPNe.ORG' un, ülkemizin uluslararası ERP sektörü içinde hak ettiği yeri almasında ve ERP ürünlerini kullananların bir araya gelerek Yerli ERP'nin gelişmesine katkı sağlayacakları önemli bir kilometre taşı olacağı düşüncesindeyiz.


Sql sorgusunda tarih kisitini Excel'den getirme

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj Tersinden sırala
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
Rafet Açılır Kutu İzle
Üye
Üye
Simge

Kayıt Tarihi: 27 Ocak 2007
Durum: Aktif Değil
Puanlar: 0
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Rafet Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: Sql sorgusunda tarih kisitini Excel'den getirme
    Gönderim Zamanı: 23 Mart 2012 Saat 10:33
Zamaninda hepimizin ugrastigi bir sey.

Kisitlari Hücereden verecekseniz.  Hücrenin Konumunu kullanmak yerine hüçreye ad verin.
Daha kullanisli oalcaktir.

tarih = format(Range("A1") ,"yyyy-mm-dd")

yerine

A1 hüçresine ad vererek mesala "sayfaadi_tarih1" yapin.
daha sonra bu hüçreyi kesip koyaladiginizda üstüne altina hüçre eklediginizde ad verdini z hüçrede yaptiginiz isleme göre yer degistirecek.

kodlamada
tarih1 = format(Range("sayfaadi_tarih1")
tarih2 = format(Range("sayfaadi_tarih2")



view = "SELECT * FROM TBLSTHAR WHERE TARIH BETWEEN '" & sayfaadi_tarih1 & "' and  '" & sayfaadi_tarih2 & "'  "

gibi kullanirsaniz .

kod yazim daha okunakli, kullanisli gelistirmeye elverisli olacaktir.

Saygilar.



Yukarı Dön
kuzey_yolcu Açılır Kutu İzle
Yeni Üye
Yeni Üye
Simge

Kayıt Tarihi: 12 Eylül 2011
Durum: Aktif Değil
Puanlar: 4
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı kuzey_yolcu Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 09 Mart 2012 Saat 17:48
Mehmet Bey, simdi gördüm de bakiye sayfasinda degil tarih. Orasi kafanizi karistirmasin. Benim amacim bunu yapmanin yolunu ögrenmek ve baska yerlerde kullanmak. ilk mesajimda da belirttigim gibi aslinda bu raporda degil de baska raporlarda çok ihtiyacim oluyor. Ögrenebilirsem, onlara uygulayacagim bu yöntemi. Gönderdiginize bakacagim. Sayin Conari, sizin örneginizi de inceleyecegim.
Tesekkür ederim ilgilendiginiz için. Insallah sonuca ulasip geri bildirimde bulunacagim.
Sistem, çözümdür.
Sistem sonuçları üretir, insanlar sistemi yönetir.
Yukarı Dön
Conari Açılır Kutu İzle
Kidemli Üye
Kidemli Üye
Simge

Kayıt Tarihi: 04 Mayıs 2007
Konum: YSTANBUL
Durum: Aktif Değil
Puanlar: 3513
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Conari Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 09 Mart 2012 Saat 17:27
Netsisden vazgeçemiyorum. Beni engelliyor..
Yukarı Dön
mbaykan Açılır Kutu İzle
Kidemli Üye
Kidemli Üye
Simge

Kayıt Tarihi: 06 Nisan 2007
Konum: izmir
Durum: Aktif Değil
Puanlar: 1181
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı mbaykan Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 09 Mart 2012 Saat 17:26
gönderdiginiz tabloda Tarih girilen yer BAKIYE isimli sayfada buna göre makronunda
bu sayfada yazilmasi gerekir küçük bir degisklikle

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$2" Then
 Sheets("SAYIM").Range("B2").Value = Replace(Sheets("SAYIM").Range("D2").Value, "<trh>", Format(Range("BAKIYE!B2").Value, "mm/dd/yyyy"))
 
End If
End Sub


Mehmet Baykan
Yukarı Dön
kuzey_yolcu Açılır Kutu İzle
Yeni Üye
Yeni Üye
Simge

Kayıt Tarihi: 12 Eylül 2011
Durum: Aktif Değil
Puanlar: 4
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı kuzey_yolcu Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 09 Mart 2012 Saat 16:51
Mehmet Bey, kusura bakmayin yapamadim. Rica etsem, asagida yükledigim dosyada söylediginiz degisiklikleri yapabilir misiniz?
mail adresim:yolcu_6@yahoo.com.tr
Yapmaya çalistiginiz seyi anladim ama B2 ye yazacagim sorguda tarih yerine ne yazacagim? Yazdiklarimda hata veriyor.
 
Sistem, çözümdür.
Sistem sonuçları üretir, insanlar sistemi yönetir.
Yukarı Dön
kuzey_yolcu Açılır Kutu İzle
Yeni Üye
Yeni Üye
Simge

Kayıt Tarihi: 12 Eylül 2011
Durum: Aktif Değil
Puanlar: 4
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı kuzey_yolcu Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 09 Mart 2012 Saat 16:17
Sayin Conari, makro var dosyada. Verileri güncellerken makro kullaniyorum. Güvenlik ayarlarinda bir problem çikmaz da. Neyse ben bir deneyeyim tekrar Mehmet Bey'in dedigini.
Sistem, çözümdür.
Sistem sonuçları üretir, insanlar sistemi yönetir.
Yukarı Dön
Conari Açılır Kutu İzle
Kidemli Üye
Kidemli Üye
Simge

Kayıt Tarihi: 04 Mayıs 2007
Konum: YSTANBUL
Durum: Aktif Değil
Puanlar: 3513
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Conari Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 09 Mart 2012 Saat 15:59
@Mbaykan,
Excelde makro güvenlik ayarlari yapilmamissa macro çalismayacaktir.


Düzenleyen Conari - 09 Mart 2012 Saat 15:59
Netsisden vazgeçemiyorum. Beni engelliyor..
Yukarı Dön
mbaykan Açılır Kutu İzle
Kidemli Üye
Kidemli Üye
Simge

Kayıt Tarihi: 06 Nisan 2007
Konum: izmir
Durum: Aktif Değil
Puanlar: 1181
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı mbaykan Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 09 Mart 2012 Saat 15:56
mesaji güncelledim
sizin rapor sayfasinda istediginiz gibi C2'de tarih D2'de ise (B2'deki) Sorgu metninin bir benzeri olmali (tarih yerine <trh> koyun)
makro yazimi ise tarif ettigim gibi Sayfanin ismi üzerinde sag klik ve Kod görüntüle
ile sonra makroyu Sub  ..  End Sub dahil kopyalayin
tablonuza dönün ve C2'yi degistirin
B2'de de degistigini görmelisiniz



Düzenleyen mbaykan - 09 Mart 2012 Saat 16:02
Mehmet Baykan
Yukarı Dön
Conari Açılır Kutu İzle
Kidemli Üye
Kidemli Üye
Simge

Kayıt Tarihi: 04 Mayıs 2007
Konum: YSTANBUL
Durum: Aktif Değil
Puanlar: 3513
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Conari Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 09 Mart 2012 Saat 15:51
Dosyayi yükleyin.
 
Bu gibi islemleri bende Macro ve ek hücreler ile yapiyorum. Yoksa sorguyu extendde yönetmek zor. hücre degisikliginde çalismaya baslar extend.
Netsisden vazgeçemiyorum. Beni engelliyor..
Yukarı Dön
kuzey_yolcu Açılır Kutu İzle
Yeni Üye
Yeni Üye
Simge

Kayıt Tarihi: 12 Eylül 2011
Durum: Aktif Değil
Puanlar: 4
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı kuzey_yolcu Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 09 Mart 2012 Saat 15:46
Mehmet Bey, kusura bakmayin da baya karisti benim tarafimda isler. Formül A'da, sql B'de, tarih C'de, tarihi degistirecek formül D'de. Bir de makro. Neyi nereye ne sekilde koyacagimi sasirdim Ermm
Sistem, çözümdür.
Sistem sonuçları üretir, insanlar sistemi yönetir.
Yukarı Dön
mbaykan Açılır Kutu İzle
Kidemli Üye
Kidemli Üye
Simge

Kayıt Tarihi: 06 Nisan 2007
Konum: izmir
Durum: Aktif Değil
Puanlar: 1181
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı mbaykan Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 09 Mart 2012 Saat 15:21
B2 hücresindeki bilginin aynisini D2'ye kopyalayin "aa/gg/yyy" yazan yere "<trh>"
yazin

SELECT SAYIMOTR.TARIH, STSABIT.GRUP_KODU, SAYIMOTR.STOK_KODU, SAYIMOTR.STOK_ADI, SAYIMOTR.MIKTAR from SAYIMOTR INNER JOIN STSABIT ON SAYIMOTR.STOK_KODU=STSABIT.STOK_KODU WHERE SAYIMOTR.TARIH=”<trh>” AND SAYIMOTR.DEPO_KODU=1

yukaridaki içerik D2'de olacak

Sayfa  isminin üzerine sag klik yapip Kod Görüntüle komutundan sonra
asagidaki makroyu yazin

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$C$2" Then
 Range("B2").Value = Replace(Range("D2").Value, "<trh>", Format(Range("c2").Value, "mm/dd/yyyy"))
 
End If

End Sub





Düzenleyen mbaykan - 09 Mart 2012 Saat 15:53
Mehmet Baykan
Yukarı Dön
kuzey_yolcu Açılır Kutu İzle
Yeni Üye
Yeni Üye
Simge

Kayıt Tarihi: 12 Eylül 2011
Durum: Aktif Değil
Puanlar: 4
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı kuzey_yolcu Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 09 Mart 2012 Saat 15:10
Dediginizi tam olarak anlayamadim da ben zaten su sekilde de denedim:
 
=NETSIS_DATA("SAYIM";"A5";32767;"SELECT SAYIMOTR.TARIH, STSABIT.GRUP_KODU, SAYIMOTR.STOK_KODU, SAYIMOTR.STOK_ADI, SAYIMOTR.MIKTAR from SAYIMOTR INNER JOIN STSABIT ON SAYIMOTR.STOK_KODU=STSABIT.STOK_KODU WHERE SAYIMOTR.TARIH="sizinönerdikleriniz" AND SAYIMOTR.DEPO_KODU=1";"X12")
 
Yani B2 hücresini isin içine hiç katmadan direk formüle yazdim. Tarih yerine de sizin önerdiginiz birkaç farkli sekilde denedim. Kimisinde hata verdi, kimisinde de hata vermedi ama hiç veri gelmedi, o tarihte veri olmasina ve önceki sql kodumla veri gelmesine ragmen.
 
Olmadi maalesef. Extend kullaniyor olsaydiniz dosyayi yollayacaktim ama kullanmadiginizi söylemistiniz.
 
Aslinda dediginiz gibi B2yi degistiren bir makro yapabilsem o da olurdu. Daha önce denemistim ama bu sefer de visual basic'te makro hatalarini geçememistim.


Düzenleyen kuzey_yolcu - 09 Mart 2012 Saat 15:13
Sistem, çözümdür.
Sistem sonuçları üretir, insanlar sistemi yönetir.
Yukarı Dön
mbaykan Açılır Kutu İzle
Kidemli Üye
Kidemli Üye
Simge

Kayıt Tarihi: 06 Nisan 2007
Konum: izmir
Durum: Aktif Değil
Puanlar: 1181
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı mbaykan Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 09 Mart 2012 Saat 13:56
A2 hücresindeki SAYIM!B2 yerine B2&METNEÇEVIR(C2;"""aa/gg/yyyy""")&D2
Yazip sorgunuzu iki parçaya bölün
deneyin Disapprove

not Çifttirnak isareti problem olurmu bilmiyorum? DAMGA(34) fonksiyonunu kullanin

formüllediginiz gibi bir makro yazip C2'ye deger girdikten sonra bunu hesaplayip B2'ye yazan. O zaman B2'ye = ile baslamazsiniz


Düzenleyen mbaykan - 09 Mart 2012 Saat 15:01
Mehmet Baykan
Yukarı Dön
kuzey_yolcu Açılır Kutu İzle
Yeni Üye
Yeni Üye
Simge

Kayıt Tarihi: 12 Eylül 2011
Durum: Aktif Değil
Puanlar: 4
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı kuzey_yolcu Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 09 Mart 2012 Saat 10:48
Merhaba,
Yalniz söyle bir sey var. Ilk mesajimda belirttigim gibi formül A2 hücresinde. A2 hücresi = ile basliyor, NETSIS_DATA fonksiyonu orda yani. B2 hücresinde ise sadece sql sorgusu var ve = ile baslamiyor. Yukarida yazdiklarinizi da denedim ama hata verdi.
Sistem, çözümdür.
Sistem sonuçları üretir, insanlar sistemi yönetir.
Yukarı Dön
mbaykan Açılır Kutu İzle
Kidemli Üye
Kidemli Üye
Simge

Kayıt Tarihi: 06 Nisan 2007
Konum: izmir
Durum: Aktif Değil
Puanlar: 1181
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı mbaykan Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 09 Mart 2012 Saat 10:27
B2 hücresi
="SELECT SAYIMOTR.TARIH, STSABIT.GRUP_KODU, SAYIMOTR.STOK_KODU, SAYIMOTR.STOK_ADI, SAYIMOTR.MIKTAR from SAYIMOTR INNER JOIN STSABIT ON SAYIMOTR.STOK_KODU=STSABIT.STOK_KODU WHERE SAYIMOTR.TARIH="""&D2&""" AND SAYIMOTR.DEPO_KODU=1"

D2 hücresi
=METNEÇEVIR(C2;"aa/gg/yyyy")  ya da =TEXT(C2;"mm/dd/yyyy")

ile C2 ye girdiginiz tarihi degisken yapar

D2'yi kullanmayacaksaniz formülü &METNEÇEVIR(C2;"aa/gg/yyyy")& seklinde yazarsiniz

kolay gelsin



Düzenleyen mbaykan - 09 Mart 2012 Saat 10:29
Mehmet Baykan
Yukarı Dön
kuzey_yolcu Açılır Kutu İzle
Yeni Üye
Yeni Üye
Simge

Kayıt Tarihi: 12 Eylül 2011
Durum: Aktif Değil
Puanlar: 4
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı kuzey_yolcu Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 09 Mart 2012 Saat 09:40
Merhaba arkadaslar,
Extend'de NETSIS_DATA fonksiyonunu kullanarak verileri getiriyorum.
A2 hücresinde
 =NETSIS_DATA("SAYIM";"A5";32767;SAYIM!B2;"X12")
fonksiyonu yer aliyor.
B2 hücresinde de SQL sorgusu var. Mesela asagidaki sorgu 15.02.2012 tarihli sayimi getiriyor. 

SELECT SAYIMOTR.TARIH, STSABIT.GRUP_KODU, SAYIMOTR.STOK_KODU, SAYIMOTR.STOK_ADI, SAYIMOTR.MIKTAR from SAYIMOTR INNER JOIN STSABIT ON SAYIMOTR.STOK_KODU=STSABIT.STOK_KODU WHERE SAYIMOTR.TARIH=”02.15.2012” AND SAYIMOTR.DEPO_KODU=1

Bu rapor için degil ama baska raporlar için tarih kisitini sürekli degistirmem gerekebiliyor. Tarihi, bu hücreye (B2) girip tarih kismini bulup degistirmek yerine bir excel hücresine girmek istiyorum, örnegin C2 olsun. Ben C2'ye 20.02.2012 girdigimde, B2 hücresindeki sorgudaki tarih kisiti degissin, fonksiyon ona göre verileri getirsin. Bir textbox ile de olabilir, excel hücresi de olabilir, farketmez.

& Cells(2, "C").Value &   

& CDate(Cells(2, "C").Value) &

" & Cdbl(CDate(Cells(2, "C").Value) & "

gibi çözümler önerildi ama ise yaramadi. Hep hata verdi. Baska nasil yapabiliriz?


Düzenleyen kuzey_yolcu - 09 Mart 2012 Saat 09:46
Sistem, çözümdür.
Sistem sonuçları üretir, insanlar sistemi yönetir.
Yukarı Dön
 Yanıt Yaz Yanıt Yaz
  Konu Paylaş   

Forum Atla Forum İzinleri Açılır Kutu İzle

Forum Software by Web Wiz Forums® version 11.10
Copyright ©2001-2017 Web Wiz Ltd.

Bu Sayfa 0,328 Saniyede Yüklendi.