Sorgu kriterlerini excelden belirlemek.

Katılım
7 Temmuz 2005
Mesajlar
70
Excel Vers. ve Dili
Office Xp - Türkçe
Merhaba arkadaşlar,

Excelde dış veri al yöntemiyle sql server'a bağlanıp verilerimi microsoft querry ile düzenleyip çekiyorum fakat kriterleri değiştirmek için özellikle tarih kriterlerini her seferinde query'nin içine girip değiştirmek zorunda kalıyorum şu kriterleri excelde bir hücrede belirlesem ve orda değiştirdiğimde sorgumda da değişse ya da bir user form üzerinde textboxların içine ilgili kriterleri girsem ve ordan aldırabilsem nasıl olur?
Bu konu benim için gerçekten çok önemli yardımlarını esirgemeyen üstadlarıma şimdiden çok teşekkür ederim.İyi çalışmalar dileklerimle...
 
Katılım
12 Nisan 2007
Mesajlar
170
Excel Vers. ve Dili
Office XP
Dış Veri araç çubuğu üzerindeki soldan 3.buton. Yani Sorgu Parametreleri butonuna tıklayın. Ekranda Query de oluşturduğunuz parametreleriniz görünecek. Her bir parametreye tıklayarak sağ taraftaki seçeneklerden "Aşağıdaki hücreden değeri al" kısmında değeri almasını istediğiniz excel hücresini belirtin. Alttaki "Hücre değeri değiştiğinde otomatik olarak yenile" yi işaretlerseniz artık query yi tamamen unutabilirsiniz.
 
Katılım
7 Temmuz 2005
Mesajlar
70
Excel Vers. ve Dili
Office Xp - Türkçe
Sn. Alibaskan vermiş olduğunuz cevap için çok teşekkür ederim fakat bir sorun var galiba benim dış veri al sekmeme tıkladığımda karşıma çıkan seçenekler sorgu düzenle ve veri aralığı özelliği parametreler alanı aktif değil yani tıklamam mümkün olmuyor.Ben nerde hata yapıyorm acaba?
 
Son düzenleme:
Katılım
12 Nisan 2007
Mesajlar
170
Excel Vers. ve Dili
Office XP
Query deki sorgu sonuçları excelde nerede ise o veriler üzerinde iken bu butonu arayın. eğer yine yoksa querydeki sorgunuzda parametre yok demektir. Örneğin seçmek istediğiniz parametre başlangıç ve bitiş tarihi ise query deki sorgunuz muhtemelen şu şekildedir.[Baş.Tar]='01.11.2008' ve [Bit.Tar]='30.11.2008' burayı sorguyu excele göndermeden şu şekilde değiştirip verileri excele verin. [Baş.Tar]=? ve [Bit.Tar]=?
Bu şekilde çözemezseniz Query deki sql cümlenizi gönderin üzerinde düzeltip göndereyim.
 
Katılım
7 Temmuz 2005
Mesajlar
70
Excel Vers. ve Dili
Office Xp - Türkçe
Query deki sorgu sonuçları excelde nerede ise o veriler üzerinde iken bu butonu arayın. eğer yine yoksa querydeki sorgunuzda parametre yok demektir. Örneğin seçmek istediğiniz parametre başlangıç ve bitiş tarihi ise query deki sorgunuz muhtemelen şu şekildedir.[Baş.Tar]='01.11.2008' ve [Bit.Tar]='30.11.2008' burayı sorguyu excele göndermeden şu şekilde değiştirip verileri excele verin. [Baş.Tar]=? ve [Bit.Tar]=?
Bu şekilde çözemezseniz Query deki sql cümlenizi gönderin üzerinde düzeltip göndereyim.

Ali bey benim sorgumda parametre yok galiba yada parametre tanımlamayı bilmiorum.Ben sorgumu göndereyim onun üzerinden bakalım eğer bu parametre tanımlamayı öğetirseniz çok minnettar kalırım gerçekten çok işime yarayacak bir bilgi bu benm için.Şu an sizin gösterdiğniz gibi sorgu içinde [Baş.Tar] diye yazınca geçersiz alan diye hata veriyor.
Çok teşekkürler tekrar..

SELECT LG_009_01_CLFLINE.DATE_
FROM FUJI.dbo.LG_009_01_CLFLINE LG_009_01_CLFLINE
WHERE (LG_009_01_CLFLINE.DATE_>'05.01.2008')
 
Katılım
12 Nisan 2007
Mesajlar
170
Excel Vers. ve Dili
Office XP
Gönderdiğiniz sorguya göre Queryde Ölçüt Alanı kısmında DATE hemen altındaki değer kısmında >'05.01.2008' yazıyor. Değer kısmındaki yazıyı şu şekilde değiştiriniz. >[Tarihi Giriniz ?] Değişikliği yapıp alt satıra tıkladığınızda ekranda Tarihi Giriniz diye bir Inputbox çıkması lazım. Bu çıkarsa sorguyu excele gönderin. Excelde sorgu yenilediğinizde aynı inputbox yine çıkacak. O zaman önceki mesajımda bahsettiğim yöntemle bunu excel hücresine bağlayın.
 
Katılım
12 Nisan 2007
Mesajlar
170
Excel Vers. ve Dili
Office XP
Yukarıdaki bahsettiğim olayı ölçütten yapamazsanız Queryde SQL kodlarına girip DATE>'05.01.2008' yazan kısmı DATE>? yapın. Aynı sonuca ulaşırsınız.
 
Katılım
7 Temmuz 2005
Mesajlar
70
Excel Vers. ve Dili
Office Xp - Türkçe
Sayın Alibaskan size nasıl teşekkür edeceğimi bilemiorum bu gerçekten çok işime yarayacak,elinize,emeğinize sağlık.İyi akşamlar...
 
Katılım
12 Nisan 2007
Mesajlar
170
Excel Vers. ve Dili
Office XP
Rica ederim. İşinize yarayıp yaramadığı konusunda bilgi verir misiniz?
 
Katılım
7 Temmuz 2005
Mesajlar
70
Excel Vers. ve Dili
Office Xp - Türkçe
İşime fazlasıyla yaradı Allah razı olsun sizden sayenizde kurtuldum sorgunun içine girip tarih değiştirmekten.Çok teşekkürler,iyi çalışmalar...
 
Katılım
12 Nisan 2007
Mesajlar
170
Excel Vers. ve Dili
Office XP
Allah cümlemizden razı olsun. İşinize yaradığına sevindim. Bana bilgilerimi tazeleme fırsatı verdiğiniz için ben teşekkür ederim. İyi çalışmalar.
 

oburs

Altın Üye
Katılım
23 Mayıs 2005
Mesajlar
121
Excel Vers. ve Dili
Excel 2003
Excel 2007
Altın Üyelik Bitiş Tarihi
02.03.2026
Bilgi..

Herkese iyi çalışmalar..
acaba yaptığınız sorguyu forumda yayınlama imkanınız varmı dır. acaba...
yardımlarınız için teşekkü ederim..
 

oburs

Altın Üye
Katılım
23 Mayıs 2005
Mesajlar
121
Excel Vers. ve Dili
Excel 2003
Excel 2007
Altın Üyelik Bitiş Tarihi
02.03.2026
excelde nasıl alan tanımlayabilirim..

iyi çalışmalar...
aşağıdaki sorguya nasıl A1=[tarih_1] ve A2=[tarih_2] alanlarını bağlayabilirim..
(yani aşağıdaki sorgu a1 ve a2'de bulunan tarihler arasındaki verilere göre sonuçları versin..)
yardımcı olmanız dileğiyle..
teşekkürler.


-------------------------------------------------------------------------------------
SELECT dbo.LG_311_CLCARD.CODE AS [CH.KODU], dbo.LG_311_CLCARD.DEFINITION_ AS ÜNVANI,
SUM(dbo.LG_311_01_STLINE.AMOUNT * dbo.LG_311_01_STLINE.OUTCOST) AS MALİYET, SUM(DISTINCT dbo.LG_311_01_STLINE.LINENET)
- SUM(dbo.LG_311_01_STLINE.AMOUNT * dbo.LG_311_01_STLINE.OUTCOST) AS KAR, dbo.LG_311_01_INVOICE.FICHENO AS [FATURA NR],
dbo.LG_311_01_INVOICE.DATE_ AS [FATURA TARİHİ], dbo.LG_311_01_STFICHE.FICHENO AS [İRS.NR.],
dbo.LG_311_01_STFICHE.DATE_ AS [İRS.TARİHİ], dbo.LG_311_ITEMS.CODE AS [MALZEME KODU],
dbo.LG_311_ITEMS.NAME AS [MALZEME AÇIKLAMASI], dbo.LG_311_ITEMS.STGRPCODE AS [GRUP KODU],
dbo.LG_311_ITEMS.SPECODE AS DURUMU, dbo.LG_311_01_STLINE.LINENET AS TUTAR, dbo.LG_311_01_INVOICE.TRCODE AS [FATURA TÜRÜ],
dbo.LG_311_ITEMS.CYPHCODE AS GRUP, dbo.LG_311_01_INVOICE.CAPIBLOCK_CREADEDDATE AS [FTR.OLUŞTURMA TARİHİ],
dbo.LG_311_01_STLINE.AMOUNT
FROM dbo.LG_311_01_STFICHE INNER JOIN
dbo.LG_311_CLCARD ON dbo.LG_311_01_STFICHE.CLIENTREF = dbo.LG_311_CLCARD.LOGICALREF INNER JOIN
dbo.LG_311_01_STLINE INNER JOIN
dbo.LG_311_01_INVOICE ON dbo.LG_311_01_STLINE.INVOICEREF = dbo.LG_311_01_INVOICE.LOGICALREF ON
dbo.LG_311_01_STFICHE.LOGICALREF = dbo.LG_311_01_STLINE.STFICHEREF INNER JOIN
dbo.LG_311_ITEMS ON dbo.LG_311_01_STLINE.STOCKREF = dbo.LG_311_ITEMS.LOGICALREF
WHERE (dbo.LG_311_01_INVOICE.CANCELLED = 0) AND (dbo.LG_311_01_STLINE.LINETYPE = 0) AND (dbo.LG_311_ITEMS.CYPHCODE = 'GG')
GROUP BY dbo.LG_311_CLCARD.CODE, dbo.LG_311_CLCARD.DEFINITION_, dbo.LG_311_01_INVOICE.FICHENO, dbo.LG_311_01_INVOICE.DATE_,
dbo.LG_311_01_STFICHE.FICHENO, dbo.LG_311_01_STFICHE.DATE_, dbo.LG_311_ITEMS.CODE, dbo.LG_311_ITEMS.NAME,
dbo.LG_311_ITEMS.STGRPCODE, dbo.LG_311_ITEMS.SPECODE, dbo.LG_311_01_STLINE.LINENET, dbo.LG_311_01_INVOICE.TRCODE,
dbo.LG_311_ITEMS.CYPHCODE, dbo.LG_311_01_INVOICE.CAPIBLOCK_CREADEDDATE, dbo.LG_311_01_STLINE.AMOUNT
HAVING (dbo.LG_311_01_INVOICE.TRCODE = 8) OR
(dbo.LG_311_01_INVOICE.TRCODE = 3)
-------------------------------------------------------------------------------------
 
Katılım
12 Nisan 2007
Mesajlar
170
Excel Vers. ve Dili
Office XP
Sorunuzu başka bir kapanmış konunun altına değil de yeni soru olarak sorarsanız daha doğru olur. Sorunuzda belirttiğiniz Tarih_1 ve Tarih_2 kriterleri sorgunuzun Where kısmında olması lazım. Sorgunuzda böyle bir parametre yok iken olmayan parametreyi de excelde tanımlayamazsınız.
 
Katılım
5 Temmuz 2006
Mesajlar
14
Excel Vers. ve Dili
Office 2007 Small business
Altın Üyelik Bitiş Tarihi
09-09-2023
Yukarıdaki bahsettiğim olayı ölçütten yapamazsanız Queryde SQL kodlarına girip DATE>'05.01.2008' yazan kısmı DATE>? yapın. Aynı sonuca ulaşırsınız.
Sayın alibaskan sorgu içerisinde gerek ölçüt alanlarına gerek sql cümleme hiçbir şekilde ? ifadesini ekleyemedim. Sorgu görüntülenemiyor.

Bendeki sql cümlesinde birden fazla kriter mevcut bu sebepten olabilirmi?
 
Katılım
19 Aralık 2008
Mesajlar
5
Excel Vers. ve Dili
office 2003
Dış veri al yöntemi ile excel'den query'e parametre gönderilebiliyoy, peki özet tablodan query'e parametre gönderilebiliyor mu? (excelde herhangi bir hücreye parametre girilerek veya texbox içine parametreyi girerek yahuttta özel bir makro yaparak bu iş yapılabiliyormu?
yardımlarınız için şimdiden teşekkür ederim.
 
Katılım
29 Haziran 2005
Mesajlar
158
Excel Vers. ve Dili
MS Office Professional Plus 2013 64 Bit -Eng
MSSQL 2012 R2 64 Bit
Alınan Sipariş Karlılık Analizi

Bu konuda kullanılan kod Logo'da Satır bazında karlılık analizi olarak adlandırılabilir...

Harika bir kod ;

Bende bu Fatura ve COST sonrasında alınabilecek bu raporun satış aşamasından dhaa önce ki sipariş aşamasında bir önceki gün COST değerlerine bakarak Sipariş Karlılık analizi sorgusunu hazırladım...

sorgu birazdaha sadeleştirilir ise ; SQL kodunu VBA koduna daha kolay çevirebileceğim...

Benim amacım bir USER form içerisinde sadece sipariş numarasını girerek bir karlılık analizi yapmak....

ilgili sql kodu aşağıdaki gibi ;

Kod:
SELECT     SIPFIS.DATE_ AS Tarih, SIPFIS.TIME_ AS Saat, SIPFIS.FICHENO AS Sipariş_No, STOK.PRODUCERCODE AS Barkodu, STOK.CODE AS [Stok Kodu], 
                      STOK.NAME AS [Stok Adı], SIPSATIR.AMOUNT AS Miktar, SIPSATIR.PRICE AS [Brüt.Br.Fiyat], SIPSATIR.TOTAL AS [Brüt.Tutar], 
                      SIPSATIR.VATMATRAH AS [Net Tutar],
                          (SELECT     TOP 1 OUTCOST
                            FROM          LG_086_01_STLINE
                            WHERE      STOCKREF = STOK.LOGICALREF AND (TRCODE = 51 OR
                                                   (TRCODE = 8)) AND LPRODSTAT = 0 AND LINETYPE = 0 AND OUTCOST <> 0
                            ORDER BY DATE_ DESC) AS BrMaliyet, SIPSATIR.AMOUNT *
                          (SELECT     TOP 1 OUTCOST
                            FROM          LG_086_01_STLINE
                            WHERE      STOCKREF = STOK.LOGICALREF AND (TRCODE = 51 OR
                                                   (TRCODE = 8)) AND LPRODSTAT = 0 AND LINETYPE = 0 AND OUTCOST <> 0
                            ORDER BY DATE_ DESC) AS [Toplam Maliyet], SIPSATIR.VATMATRAH - SIPSATIR.AMOUNT *
                          (SELECT     TOP 1 OUTCOST
                            FROM          LG_086_01_STLINE
                            WHERE      STOCKREF = STOK.LOGICALREF AND (TRCODE = 51 OR
                                                   (TRCODE = 8)) AND LPRODSTAT = 0 AND LINETYPE = 0 AND OUTCOST <> 0
                            ORDER BY DATE_ DESC) AS NETKAR
FROM         LG_086_ITEMS STOK INNER JOIN
                      LG_086_01_ORFLINE SIPSATIR ON STOK.LOGICALREF = SIPSATIR.STOCKREF INNER JOIN
                      LG_086_01_ORFICHE SIPFIS ON SIPSATIR.ORDFICHEREF = SIPFIS.LOGICALREF
WHERE     (SIPFIS.FICHENO = '00059704')
 
Son düzenleme:
Katılım
14 Temmuz 2016
Mesajlar
2
Excel Vers. ve Dili
excel 2010 tr
bu başlığı kapatmışsınız ama benimde böyle bir sorunum var banada yardımcı olabilirmisiniz. beni,m sorgum aşağıdaki gibi:

SELECT
T0.DocDate AS Tarih,
T0.CardCode AS [Cari Kodu],
T0.CardName AS [Cari Açıklaması],
T1.ItemCode AS [Stok Kodu],
T1.LineTotal AS [Satır Toplamı],
dbo_OCRD.U_A2B_POL_BPCLS2 AS [Plasiyer Kodu]

FROM dbo_OINV AS T0 INNER JOIN dbo.INV1 AS T1 WITH (NOLOCK) ON T0.DocEntry = T1.DocEntry INNER JOIN dbo_OCRD ON T0.CardCode = dbo_OCRD.CardCode

WHERE
(T0.CANCELED = 'N') AND
(T0.DocType = 'I') AND
(T0.CardCode LIKE N'1%') AND
(T0.DocDate BETWEEN CONVERT(DATETIME, '2016-01-01 00:00:00', 102) AND CONVERT(DATETIME, '2016-06-30 00:00:00', 102)) AND (dbo_OCRD.U_A2B_POL_BPCLS3 = N'100') AND
(NOT (dbo_OCRD.U_A2B_POL_BPCLS2 = N'00')) AND
(NOT (T1.ItemCode LIKE N'S118P%')) AND
(NOT (T1.ItemCode LIKE N'S118N%'))
 
Katılım
14 Temmuz 2016
Mesajlar
2
Excel Vers. ve Dili
excel 2010 tr
bu başlığı kapatmışsınız ama benimde böyle bir sorunum var banada yardımcı olabilirmisiniz. beni,m sorgum aşağıdaki gibi:

SELECT
T0.DocDate AS Tarih,
T0.CardCode AS [Cari Kodu],
T0.CardName AS [Cari Açıklaması],
T1.ItemCode AS [Stok Kodu],
T1.LineTotal AS [Satır Toplamı],
dbo_OCRD.U_A2B_POL_BPCLS2 AS [Plasiyer Kodu]

FROM dbo_OINV AS T0 INNER JOIN dbo.INV1 AS T1 WITH (NOLOCK) ON T0.DocEntry = T1.DocEntry INNER JOIN dbo_OCRD ON T0.CardCode = dbo_OCRD.CardCode

WHERE
(T0.CANCELED = 'N') AND
(T0.DocType = 'I') AND
(T0.CardCode LIKE N'1%') AND
(T0.DocDate BETWEEN CONVERT(DATETIME, '2016-01-01 00:00:00', 102) AND CONVERT(DATETIME, '2016-06-30 00:00:00', 102)) AND (dbo_OCRD.U_A2B_POL_BPCLS3 = N'100') AND
(NOT (dbo_OCRD.U_A2B_POL_BPCLS2 = N'00')) AND
(NOT (T1.ItemCode LIKE N'S118P%')) AND
(NOT (T1.ItemCode LIKE N'S118N%'))

Benim istediğim tarihi excelde bir hücreye girmek ve tarihe göre filtreleme yapıp veri çekmek
 
Üst