SQL sorgusu tarih değişkeni

Katılım
29 Kasım 2008
Mesajlar
215
Excel Vers. ve Dili
excel 2003 türkçe
Değerli Arkadaşlar ;

Veritabanından Dış Veri Al yöntemi SQL sorgusu ile aşağıda belirttiğim kodla Genel stok hareket föyünü excele aktarmaktayım.Sizlerden ricam kırmızı olarak belirtilen tarihlerin sayfa içindeki herhangi bir hücreden yada açılan bir userform aracılığı ile seçilebilmesi ve sorgunun seçilen tarihe göre excele veri getirmesi olacaktır.Bu arada Parametreler kısmı sürekli pasif çıkıyor bu konudaki fikrinizide almak isterim.

Yardımlarınızı bekliyorum.
Saygılar.
SELECT *FROM dbo.fn_GenelStokHareketFoyu('20050101', '20050420', 0, ',2,')
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,344
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Merhaba,

Parametrenin pasif çıkması, dış veri sorgusunun grafik olarak gösteriminden (join) veya ODBC ile çekilmemesinden olabilir. MSQuery ile çekerseniz ölçüt kısmına [] yazıp sorgulayın. Sonrasında değiştirmek için aktif olacaktır.

Makro kullanacaksanız, bir hücreye 01.01.2005 yazın ve hücre biçimini de 'yyyymmgg' şeklinde tek tırnak dahil şeklinde ayarlayın. Hücre referensını da örneğin:
Kod:
"select from dbo.fn_GenelStokHareketFoyu(" & Range("P1").Text & "," & Range("R1").Text & ", 0, ',2,')"
yazarsınız.
 
Katılım
29 Kasım 2008
Mesajlar
215
Excel Vers. ve Dili
excel 2003 türkçe
Zeki Bey Merhaba ;

Sorguda bir değişiklik yapmıştım ve şu halde idi ;

Kod:
Select msg_S_1091,msg_S_0416,msg_S_0089,msg_S_0094,[msg_S_0164\T],msg_S_0166,msg_S_0201,msg_S_0097 FROM dbo.fn_GenelStokHareketFoyu('20130701','20130702',0,N'') WHERE msg_S_0094 LIKE 'ÇIKIŞ%' and msg_S_0097 LIKE 'Normal%' ORDER BY msg_S_0089
Sizin vermiş olduğunuz kodu ekledim ve şu şekilde oldu.

Kod:
Select msg_S_1091,msg_S_0416,msg_S_0089,msg_S_0094,[msg_S_0164\T],msg_S_0166,msg_S_0201,msg_S_0097 FROM dbo.fn_GenelStokHareketFoyu(" & Range("FF1").Text & "," & Range("FG1").Text & ", 0, ',N,') WHERE msg_S_0094 LIKE 'ÇIKIŞ%' and msg_S_0097 LIKE 'Normal%' ORDER BY msg_S_0089
Select ile seçmiş olduğum sütunlar geliyor ama içi boş olarak geliyor sadece sütun msg noları var.
 

Ekli dosyalar

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,344
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Merhaba,

Bu şekilde de kısaltabilirsiniz.

Kod:
Sub re_fresh()
    Dim SQL As String
    
    SQL = _
    "Select msg_S_1091,msg_S_0416,msg_S_0089,msg_S_0094,[msg_S_0164\T],msg_S_0166,msg_S_0201,msg_S_0097 " & _
    "FROM dbo.fn_GenelStokHareketFoyu(" & Range("FF1").Text & "," & Range("FG1").Text & ", 0, ',N,') " & _
    "WHERE msg_S_0094 LIKE 'ÇIKIŞ%' and msg_S_0097 LIKE 'Normal%' ORDER BY msg_S_0089"
    
    With Sayfa1.QueryTables(1)
        .CommandText = SQL
        .Refresh BackgroundQuery:=False
    End With
End Sub
 
Katılım
29 Kasım 2008
Mesajlar
215
Excel Vers. ve Dili
excel 2003 türkçe
Tekrardan Merhaba Zeki Bey ;


Kod:
Sub re_fresh()
    Dim SQL As String
    
    SQL = _
    "Select msg_S_1091,msg_S_0416,msg_S_0089,msg_S_0094,[msg_S_0164\T],msg_S_0166,msg_S_0201,msg_S_0097 " & _
    "FROM dbo.fn_GenelStokHareketFoyu(" & Range("FF1").Text & "," & Range("FG1").Text & ", 0,') " & _
    "WHERE msg_S_0094 LIKE 'ÇIKIŞ%' and msg_S_0097 LIKE 'Normal%' ORDER BY msg_S_0089"
    
    With Sayfa1.QueryTables(1)
        .CommandText = SQL
        .Refresh BackgroundQuery:=False
    End With
End Sub
şu şekilde bir hata veriyor (unclosed quotation mark after the character string ' ORDER BY msg_S_0089'.)
 

Necdet

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

sql değişkenini bir hücreye yazdırınız. Hatayı bulmak daha kolay oluyor.

Aldığnız mesajda da büyük olasılıkla metin bilgisini tek tırnak içine almadığınız şeklinde.
 
Katılım
29 Kasım 2008
Mesajlar
215
Excel Vers. ve Dili
excel 2003 türkçe
Kodu şu şekilde düzeltince verileri çekebildim.
Yardımlarınız için teşekkür ederim.
Saygılar.

Kod:
Sub re_fresh()
    Dim SQL As String
    
    SQL = _
    "Select msg_S_1091,msg_S_0416,msg_S_0089,msg_S_0094,[msg_S_0164\T],msg_S_0166,msg_S_0201,msg_S_0097 " & _
    "FROM dbo.fn_GenelStokHareketFoyu(" & Range("FF1").Text & "," & Range("FG1").Text & ",0,'') " & _
    "WHERE msg_S_0094 LIKE 'ÇIKIŞ%' and msg_S_0097 LIKE 'Normal%' ORDER BY msg_S_0089"
    
    With Sayfa1.QueryTables(1)
        .CommandText = SQL
        .Refresh BackgroundQuery:=False
    End With
End Sub
 
Üst