"Invalid Column Name" hatası

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
Merhaba Arkadaşlar

Yapmak istediğim şu: makroda benim verdiğim değişkenleri kullanarak (başlama tarihi, bitiş tarihi, ürün kodu) SQL serverden veri almak istiyorum. K1=Başlangıç tarihi K2=Bitiş tarihi ve M1=Ürün kodu.Aşağıdaki kodda işaretli yerde (çift parantez içinde olan ((""ÜRÜN KODU""= " & Range("M1").Value & ) "Invalid Column Name" hatası veriyor, neyi yanlış yapıyorum acaba, bir fikri olan var mı?

Sub Verialma()
'
' Makro1 Makro
' Makro CKucukay tarafından 11.09.2006 tarihinde kaydedildi.
'

'
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=server-06;UID=ckucukay;APP=Microsoft Office XP;WSID=CKUCUKAY;DATABASE=SQL9000_SERVER_2006_1;Tr usted_Connection=Yes" _
, Destination:=Range("A2"))
.CommandText = "SELECT HATA_ANALIZI_VIEW.TARİH, HATA_ANALIZI_VIEW.""ÜRÜN KODU"", HATA_ANALIZI_VIEW.""OPERASYON ADI"", HATA_ANALIZI_VIEW.""ÜRETİLEN MİKTAR"", Ayar, Ayar_neden, Ekis, Ekis_neden, Hurda, Hurda_neden FROM SQL9000_SERVER_2006_1.dbo.HATA_ANALIZI_VIEW WHERE TARİH>=" & Range("K1").Value & " And TARİH<= " & Range("K2").Value & " And ((""ÜRÜN KODU""= " & Range("M1").Value & ))" ORDER BY TARİH"
.Name = "server-06 kaynağından sorgula"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=True
End With
End Sub
 
Katılım
8 Temmuz 2004
Mesajlar
254
Excel Vers. ve Dili
office 2007-mssql 2008 R2
Selam,

Kolon isimlerinizi kontrol edin. Benim ilk olarak gördüğüm SQL'de türkçe karakter kullandığınız. Ayrıca kolon isimlerinde boşluk ve türkçe karakter kullanmak isterseniz lütfen [](köşeli parantez kullanın). Hata buralardan kaynaklanıyor olabilir. Yazdığınız select cümlesini direk SQL içinde çalıştırmayı deneyin. Eğer orda çalıştırabiliyorsanız sonra excelin içine yazın.

Aşağıdaki kodları da bu söylediğim şekilde uygulamak istersek şöyle bir şey olması gerek diye düşünüyorum.(Kolon isimlerinizin doğru olduğunu varsayıyorum;

dim kriter1 as string
dim kriter2 as string
dim kriter3 as string
kriter1=Range("K1").Value
kriter2= Range("K2").Value
kriter3= Range("m1").Value

With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=server-06;UID=ckucukay;APP=Microsoft Office XP;WSID=CKUCUKAY;DATABASE=SQL9000_SERVER_2006_1;Tr usted_Connection=Yes" _
, Destination:=Range("A2"))
.CommandText = "SELECT HATA_ANALIZI_VIEW.[TARİH], HATA_ANALIZI_VIEW.[ÜRÜN KODU], HATA_ANALIZI_VIEW.[OPERASYON ADI], HATA_ANALIZI_VIEW.[ÜRETİLEN MİKTAR], Ayar, Ayar_neden, Ekis, Ekis_neden, Hurda, Hurda_neden FROM SQL9000_SERVER_2006_1.dbo.HATA_ANALIZI_VIEW WHERE [TARİH]>='" + kriter1 + "' And [TARİH]<= '" + kriter2+ "' And [ÜRÜN KODU]= '" + kriter3 + "' ORDER BY [TARİH]"
.Name = "server-06 kaynağından sorgula"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlOverwriteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=True
End With
End Sub
 

ockucukay

Altın Üye
Katılım
29 Aralık 2005
Mesajlar
862
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
Dostum m&#252;kemmelsin! Art&#305;k daha h&#305;zl&#305; veri &#231;ekebiliyorum, &#231;ok te&#351;ekk&#252;rler...
 
Üst