makro ile sql sorgusu

Katılım
3 Mayıs 2006
Mesajlar
28
Selam Arkadaşlar Formda aradım bulumadım. Yardım edebileceğinizi düşündüm.

ben Veri - Dış Veri Al - Yeni SQL Server bağlantısı ile manuel olarak serverimizde bulunan SQL serverden aşağıdaki gibi bilgilerimi alabiliyorum.
BAĞLANTI:

Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=ETA_PABINS_2010;Data Source=pab;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=AHMET;Use Encryption for Data=False;Tag with column collation when possible=False
KOMUT TÜRÜ : SQL

KOMUT :

SELECT CSNKART.CSKVADETAR AS [VADE TARİHİ], CSNKART.CSKPORTFOYNO AS [PORTFÖY NO], CSNKART.CSKSONVERADI AS [ÇIKIŞ KART ADI],
CSNKART.CSKACIK1 AS AÇIKLAMA, BANKHESAP.BANHESADI AS [BANKA ADI], CSNKART.CSKBANCEKNO AS [BANKA ÇEK NO],
CSNKART.CSKTUTAR AS TUTARI, CSKSONHARPOZKOD AS "ÇEKİN DURUMU"
FROM CSNKART INNER JOIN
BANKHESAP ON CSNKART.CSKBANHESBANKOD = BANKHESAP.BANHESBANKOD
WHERE (CSNKART.CSKVADETAR BETWEEN CONVERT(DATETIME, '10/11/2010', 103) AND CONVERT(DATETIME, '22/11/2010', 103)) AND
(CSNKART.CSKBANCEKNO <> '')
ORDER BY CSNKART.CSKVADETAR

Bu komutlarla bilgilerim isteğim gibi geliyor.

Benim Yapmak istediğim sayfaya ekleyeceğim bir buton ile bana hangi tarihler arasında alacağımı soracak ve ona göre bu bilgileri getirebilmesi gerekiyor.

Sanırım daha önce bu kadar açıklayıcı olmamıştım.
Yardımlarınız için Teşekkürler



Arkadaşlar merhaba,

Ekteki dosyada dış veri al ile iki tarih arası istediğim bilgileri SQL den getirtiriyorum. ancak benim istediğim iki tarihi excel de iki hücreye kullanıcı yazsın

Örnek :

A1= "01/10/2010"
A2= "10/10/2010" , gibi.

Daha sonra bir butona basarak "çekleri dök" diyebileyim. Bunu nasıl yaparız. Dosya SQL bağlantısı da var. Yardımlarınızı bekliyorum.
 

Ekli dosyalar

Son düzenleme:
Katılım
3 Mayıs 2006
Mesajlar
28
Excelde VBA ile sorgu nasıl çalışır DIŞ VERİ AL olmadan

Excelde VBA ile sorgu nasıl çalışır DIŞ VERİ AL olmadan

Arkadaşlar merhaba,

Ekteki dosyada dış veri al ile iki tarih arası istediğim bilgileri SQL den getirtiriyorum. ancak benim istediğim iki tarihi excel de iki hücreye kullanıcı yazsın

Örnek :

A1= "01/10/2010"
A2= "10/10/2010" , gibi.

Daha sonra bir butona basarak "çekleri dök" diyebileyim. Bunu nasıl yaparız. Dosya SQL bağlantısı da var. Yardımlarınızı bekliyorum.
 

sbayyigit

Altın Üye
Katılım
11 Aralık 2004
Mesajlar
419
Excel Vers. ve Dili
Ms Office Pro Plus 2019
Altın Üyelik Bitiş Tarihi
23-02-2026
sanırım bu şekilde sorunun çözülür..Ayrıca dosya ekte

Sub aktar()
Set s1 = Sheets("sayfa1")
Set s2 = Sheets("sayfa2")
a = s1.[a65536].End(3).Row
ilk = s1.Range("a1").Value
son = s1.Range("b1").Value

For sut1 = 1 To 8
s2.Cells(1, sut1).Value = s1.Cells(2, sut1).Value
Next sut1

For sat = 3 To a

If s1.Range("a" & sat).Value >= ilk And s1.Cells(sat, 1).Value <= son Then
For sut = 1 To 8
s2.Cells(sat - 1, sut).Value = s1.Cells(sat, sut).Value
Next sut
s2.Select

End If
Next sat

End Sub
 

Ekli dosyalar

Katılım
3 Mayıs 2006
Mesajlar
28
Bir sefer oluyor ancak hep aynı tarihte veriyor ikinci sefer yada başka tarihleri yazdığımda çalışmıyor
 

sbayyigit

Altın Üye
Katılım
11 Aralık 2004
Mesajlar
419
Excel Vers. ve Dili
Ms Office Pro Plus 2019
Altın Üyelik Bitiş Tarihi
23-02-2026
Bir sefer oluyor ancak hep aynı tarihte veriyor ikinci sefer yada başka tarihleri yazdığımda çalışmıyor
bir de böyle denermisiniz
Sub aktar()
Set s1 = Sheets("sayfa1")
Set s2 = Sheets("sayfa2")
a = s1.[a65536].End(3).Row
ilk = s1.Range("a1").Value
son = s1.Range("b1").Value
s2.Select
Rows("1:200").Select
Selection.ClearContents


g = 2
For sut1 = 1 To 8
s2.Cells(1, sut1).Value = s1.Cells(2, sut1).Value
Next sut1

For sat = 3 To a

If s1.Range("a" & sat).Value >= ilk And s1.Cells(sat, 1).Value <= son Then
For sut = 1 To 8

s2.Cells(g, sut).Value = s1.Cells(sat, sut).Value

Next sut
g = g + 1
s2.Select

End If
Next sat

End Sub
 
Katılım
3 Mayıs 2006
Mesajlar
28
Olmadı

bir de böyle denermisiniz
Sub aktar()
Set s1 = Sheets("sayfa1")
Set s2 = Sheets("sayfa2")
a = s1.[a65536].End(3).Row
ilk = s1.Range("a1").Value
son = s1.Range("b1").Value
s2.Select
Rows("1:200").Select
Selection.ClearContents


g = 2
For sut1 = 1 To 8
s2.Cells(1, sut1).Value = s1.Cells(2, sut1).Value
Next sut1

For sat = 3 To a

If s1.Range("a" & sat).Value >= ilk And s1.Cells(sat, 1).Value <= son Then
For sut = 1 To 8

s2.Cells(g, sut).Value = s1.Cells(sat, sut).Value

Next sut
g = g + 1
s2.Select

End If
Next sat

End Sub
Yalnız bir sorun var. SQL sorgusu nerede. Sorguyu ben alıyorum data istediğim tarih değil yazdığım tarihi getiriyor sonra da sizin makronuzda istediğim tarihi yazıyorum ama nasıl gelecek ki sorgu başka burası başka
 

sbayyigit

Altın Üye
Katılım
11 Aralık 2004
Mesajlar
419
Excel Vers. ve Dili
Ms Office Pro Plus 2019
Altın Üyelik Bitiş Tarihi
23-02-2026
Yalnız bir sorun var. SQL sorgusu nerede. Sorguyu ben alıyorum data istediğim tarih değil yazdığım tarihi getiriyor sonra da sizin makronuzda istediğim tarihi yazıyorum ama nasıl gelecek ki sorgu başka burası başka
SQL nizin nerde olduğunu bilmiyorum. benim yaptığım sizin sayfa1 nizdeki verilerden belirtilen tarih aralığındaki satırları sayfa2 ye göndermek. ve kodlar çalışıyor defalarca test ettim.Aktarım için en son gönderidim kodları modül1 içindeki kodlar ile teğiştirmeniz gerekiyor.
kolay gelsin
 
Katılım
3 Mayıs 2006
Mesajlar
28
Teşekkürler

Evet bende o şekilde anlamıştım zaten. Teşekkür ederim de ben ekli dosyalarda DIŞ VERİ AL bölümünde SQL sorgu bilgileri mevcut. Benim istediğimi galiba yanlış aktardım. Ben DIŞ VERİ AL olmadan makro ile sql den bilgiyi almak istiyorum. Anlatabildim mi acaba?
 
Üst