• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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
 
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.
 
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.
 
Ç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
 
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
 
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.
 
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
 
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
 
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
 
SQL Server versiyonu nedir? 2000-2005 ?
 
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
 
Geri
Üst