Arkadaşlar merhaba , sql'den exceldeki hücre içeriğine göre veri çeken bir Makro var, ancak bu kodda şöyle bir hata tespit ettim; kod sayı içeren hücrelere göre sorgu yapabiliyor ancak eğer hücre değeri sayı değil de yazı içeriyorsa, kod hata veriyor. L2,M2 ve N2 'deki hücre değerleri birer sayıdır. O2'deki hücre değeri ise bir söz dizisidir. (Euro Dizel yazıyor.)
Kod aşağıdadır.
Saygılar.
Kod aşağıdadır.
Saygılar.
Kod:
Dim alan As Range
Set alan = ActiveWorkbook.Sheets("Sayfa3").Range("a1:z20000")
Sheets("Sayfa3").Select
alan.ClearContents
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=OTOSRV;Description=OTOSRV;UID=sa;;APP=Microsoft Office 2003;WSID=MURAT-PC;DATABASE=TRIGONDATAMERKEZ;Network=DBMSSOCN" _
, Destination:=Range("A1"))
.CommandText = Array( _
"SELECT Cari.Miktari, Cari.Satis, Cari.YakitStr, Cari.ay, Cari.yil, Cari.BolgeId" & Chr(13) & "" & Chr(10) & "FROM TRIGONDATAMERKEZ.dbo.Cari Cari" & Chr(13) & "" & Chr(10) & "WHERE (Cari.ay=" & Sheets("Sayfa1").Range("M2").Value & ") AND (Cari.yil=" & Sheets("Sayfa1").Range("L2").Value & ") AND (Cari.YakitStr=" & Sheets("Sayfa1").Range("O2").Value & ") AND (Cari.BolgeId=" & Sheets("Sayfa1").Range("n2").Value & " )" _
)
.Name = "OTOSRV kaynağından sorgula"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
MsgBox "Tamamdır", vbInformation, "M U R A T H."
End With
End Sub