Microsoft Query'de tarihi excelden okutmak.

Katılım
7 Temmuz 2005
Mesajlar
70
Excel Vers. ve Dili
Office Xp - Türkçe
Merhaba aşağıda yazdığım kodlarda tarih formatı düzgün çalışmadığından sonuç alamıyorum,tecrübeli arkadaşlarımın ve üstadlarımızın yardımına ihtiyacımız var ilgilenenlere şimdiden teşekkürler.


"SELECT LG_009_01_INVOICE.DATE_, LG_009_01_INVOICE.GRPCODE, LG_009_01_INVOICE.TRCODE, LG_009_01_INVOICE.NETTOTAL, LG_009_01_INVOICE.TOTALVAT, LG_009_CLCARD.CODE, LG_009_CLCARD.DEFINITION_, (LG_009_01_I" _
, _
"NVOICE.NETTOTAL-LG_009_01_INVOICE.TOTALVAT) AS 'SONUC'" & Chr(13) & "" & Chr(10) & "FROM FUJI.dbo.LG_009_01_INVOICE LG_009_01_INVOICE, FUJI.dbo.LG_009_CLCARD LG_009_CLCARD" & Chr(13) & "" & Chr(10) & "WHERE LG_009_CLCARD.LOGICALREF = LG_009_01_INVOICE.CLIE" _
, _
"NTREF AND ((LG_009_01_INVOICE.TRCODE Between 1 And 4) AND (LG_009_CLCARD.CODE Like '320%') AND (LG_009_01_INVOICE.DATE_ Between " + Format(Sheets("Sayfa1").Range("G1"), "yyyy-mm-dd") + " And " + Format(Sheets("Sayfa1").Range("G2"), "yyyy-mm-dd") + "))" & Chr(13) & "" & Chr(10) & "ORDER BY LG" _
, "_009_01_INVOICE.DATE_")
.Refresh BackgroundQuery:=False
 

Rafet

Altın Üye
Katılım
24 Mart 2005
Mesajlar
230
Excel Vers. ve Dili
Ofice 2010 - Türkçe
Altın Üyelik Bitiş Tarihi
01-12-2025
Kod:
tarih_bas = Format(Sheets("Sayfa1").Range("G1"), "yyyy-mm-dd")
tarih_bit = Format(Sheets("Sayfa1").Range("G2"), "yyyy-mm-dd")
bu şekilde isimlendirip. Cümlenin içinde.

Kod:
LG_009_01_INVOICE.DATE_ Between  " & tarih_bas & " And " & tarih_bit & "

olarak kullanırsan senin için kodları okumak daha kolay olur.


kısaca + yerine & kullanarak yapman gerekiyordu.
 

Rafet

Altın Üye
Katılım
24 Mart 2005
Mesajlar
230
Excel Vers. ve Dili
Ofice 2010 - Türkçe
Altın Üyelik Bitiş Tarihi
01-12-2025
Hıım.
Bir şey daha. Range("G1") yerine ad verilmiş bir hüçrre kullan daha sonra bir hüçre silip eklendiğinde bütün kodları değiştirmek gerekiyor. Kazığını yedim bilirim. :).
G1 Hüsresine "Baslangic_Tarihi" adını veririsin yada herhangi bir isim Sonra
Range("Baslangic_Tarihi") bu şekilde kullanırsın.

" & Chr(13) & "" & Chr(10) & " bu kodların kodların arasındaki anlamıda satır bitimi
enter lanmış gibi düşüne bilirsin.
 
Katılım
7 Temmuz 2005
Mesajlar
70
Excel Vers. ve Dili
Office Xp - Türkçe
Çok teşekkürler cevabınız için gerçekten benim için çok önemli bir konu bu,eğer bunu çalıştırabilirsem bir çok yerde işime yarayacak.Dediklerinizi yaptım bu seferde YSD(Yapılandırılmış Sorgu Dili)Hatası almaya başladım ve hata satırı olarakta
.Refresh BackgroundQuery:=False satırını gösteriyor.
Acaba parantez yada noktalı virgüllerde mi bi hata yapıyorum?
Bir ilgilenirseniz çok minnettar kalacağım.Teşekkürler.

tarih_bas = Format(Sheets("Sayfa1").Range("G1"), "yyyy-mm-dd")
tarih_bit = Format(Sheets("Sayfa1").Range("G2"), "yyyy-mm-dd")
With Sheets("Sayfa1").Range("FATURA_DETAY").QueryTable
.Connection = _
"ODBC;DRIVER=SQL Server;SERVER=LOGOSERVER;UID=emrahgurses;APP=Microsoft Office XP;WSID=MUHASEBE;DATABASE=FUJI;Trusted_Connection=Yes"
.CommandText = Array( _
"SELECT LG_009_01_INVOICE.DATE_, LG_009_01_INVOICE.GRPCODE, LG_009_01_INVOICE.TRCODE, LG_009_01_INVOICE.NETTOTAL, LG_009_01_INVOICE.TOTALVAT, LG_009_CLCARD.CODE, LG_009_CLCARD.DEFINITION_, (LG_009_01_I" _
, _
"NVOICE.NETTOTAL-LG_009_01_INVOICE.TOTALVAT) AS 'SONUC' FROM FUJI.dbo.LG_009_01_INVOICE LG_009_01_INVOICE, FUJI.dbo.LG_009_CLCARD LG_009_CLCARD WHERE LG_009_CLCARD.LOGICALREF = LG_009_01_INVOICE.CLIE" _
, _
"NTREF AND ((LG_009_01_INVOICE.TRCODE Between 1 And 4) AND (LG_009_CLCARD.CODE Like '320%') AND (LG_009_01_INVOICE.DATE_ Between " & tarih_bas & " And " & tarih_bit & " ORDER BY LG" _
, "_009_01_INVOICE.DATE_")
.Refresh BackgroundQuery:=False
 

beyrek1972

Altın Üye
Katılım
11 Mart 2008
Mesajlar
166
Excel Vers. ve Dili
xp
Altın Üyelik Bitiş Tarihi
13-03-2029
Microsoft Query

Merhab saygı değer arkadaşım
Microsoft Query' ye nerden girldiğini ve nasıl çalıştırıldığıyla ilgili yüzeysel olarak bilgi verirmisiniz
şimiden teşekkür derim
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,349
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Merhab saygı değer arkadaşım
Microsoft Query' ye nerden girldiğini ve nasıl çalıştırıldığıyla ilgili yüzeysel olarak bilgi verirmisiniz
şimiden teşekkür derim

Veri > Dış veri al özelliğini kullanabileceğiniz gibi, doğrudan "C:\Program Files\Microsoft Office\OFFICE11\MSQRY.EXE" uygulamasını çalıştırıp "Dosya" menusunden bağlanabilirsiniz.
 

beyrek1972

Altın Üye
Katılım
11 Mart 2008
Mesajlar
166
Excel Vers. ve Dili
xp
Altın Üyelik Bitiş Tarihi
13-03-2029
Merhaba

Merhaba göstermiş olduğunuz yakın ilgi ve alakadan dolayı çok teşekkür ederim.Benim sorunum galiba (ODBC) deki ayarları yapamadığımdan kaynaklanıyor.SQL SERVERİN içinde bulunan kullandığımız bazı programlar var ve mantık olarak anladığıma göre serverden yani ODBC den bu Proğramları eklemek veya tanıtmak gerekiyor. bunu yapmıyorum ve aşağıdaki hata yı veriyor.tekar teşkkür eder çalışmalarınızda başarılar dilerim hoşca kalın.










SQLState:28000
SQL SERVER hatası:18456
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,349
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
SQL Server ODBC, win. içinde standart mevcuttur. cn.open kısmındaki ilgili yerleri doldurup test eder misiniz?

Kod:
Sub Test()
Dim cn As Object

On Error Resume Next
Set cn = CreateObject("ADODB.Connection")

cn.Open _
"Driver={SQL Server};Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword"

cn.Close

If Err.Number <> 0 Then MsgBox Err.Number & Chr(13) & Err.Description
End Sub
ya da;

Kod:
Sub Test2()
Dim cn As Object

On Error Resume Next
Set cn = CreateObject("ADODB.Connection")

cn.Open _
"Driver={SQL Server};Server=myServerAddress;Database=myDataBase;Trusted_Connection=Yes"

cn.Close

If Err.Number <> 0 Then MsgBox Err.Number & Chr(13) & Err.Description
End Sub
 

beyrek1972

Altın Üye
Katılım
11 Mart 2008
Mesajlar
166
Excel Vers. ve Dili
xp
Altın Üyelik Bitiş Tarihi
13-03-2029
Merhaba

Merhaba, değerli kardeşim kusura bakmayın sizinde kafanızı ağrıtıyorum.
Verdiğiniz kodaları makroya yazarak baktım ve aşağıdaki mesajı verdi

NESNE KAPALI OLDUĞUNDAN İŞLEME İZİN VERİLEMEZ
3704
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,349
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
SQL Server versiyonu nedir? 2000-2005 ?
 

beyrek1972

Altın Üye
Katılım
11 Mart 2008
Mesajlar
166
Excel Vers. ve Dili
xp
Altın Üyelik Bitiş Tarihi
13-03-2029
sizi çok uğraştrıdım kusura bakmayın
versiyonu 2005
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,349
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Deneyin.
Kod:
Sub Test()
Dim cn As Object

On Error Resume Next
Set cn = CreateObject("ADODB.Connection")

cn.Open _
"Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;"

cn.Close

If Err.Number <> 0 Then
    MsgBox Err.Number & Chr(13) & Err.Description
Else
    MsgBox "Ba&#287;lant&#305; ba&#351;ar&#305;l&#305;.", vbInformation
End If
End Sub
 
Üst