Vba da sql problemi hakkında

Katılım
12 Kasım 2022
Mesajlar
17
Excel Vers. ve Dili
Exel 2013 Türkçe
Altın Üyelik Bitiş Tarihi
14-11-2023
SQLStr = "select distinct tbStokFiyati.sFiyatTipi , (select tbFiyatTipi.sAciklama from tbFiyatTipi where " & _
" tbFiyatTipi.sFiyatTipi = tbStokFiyati.sFiyatTipi) , '' , '' , '' , tbStokFiyati.lFiyat ," & _
"(select tbFiyatTipi.nAst from tbFiyatTipi where tbFiyatTipi.sFiyatTipi = tbStokFiyati.sFiyatTipi) From tbStokFiyati, tbFiyatTipi, " & _
"tbStok where tbStokFiyati.nStokID = tbStok.nStokID and tbStokFiyati.sFiyatTipi = tbFiyatTipi.sFiyatTipi and tbStok.sKodu IN ('" & Sheets("Sayfa2").Range("E15") & "') " & _
" and tbFiyatTipi.sAciklama='PEŞİN SATIŞ' order by tbStokFiyati.sFiyatTipi "

Ekteki sql sorgusunda ödeme türü ne göre ve stok koduna göre fiyat bilgisi getiriyorum . Fakat Excel de tekbir hücredeki stoknumarasına göre fiyatı alabiliyorum. Tüm colondaki stok numaralarına göre nasıl alabilirim . Örneğin Sheets("Sayfa2").Range("E15") dediğimde 1 stok numarasına 1 değer geliyor . Sheets("Sayfa2").Range("E") gibi tüm colonu yazınca hata veriyor. Colondaki stok kodlarına göre fiyat bilgilerinin sırasıyla gelmesini nasıl sağlarım
 

omerfarukzorlu

Altın Üye
Katılım
11 Eylül 2012
Mesajlar
150
Excel Vers. ve Dili
Microsoft Office Personal 2010
Versiyon: 14.0.7015.1000 (32 bit)
Dil: Japonca
Altın Üyelik Bitiş Tarihi
06-06-2028
SQL sorgunuzda, Excel'in hücre değerlerini doğrudan kullanmaya çalışıyorsunuz. Ancak, Excel'in bir dizi hücreyi (bir sütunu) SQL sorgusuna direkt olarak geçirmesi benim bildigim kadariyla mümkün değil. Dolayısıyla, SQL sorgunuzun çalışabilmesi için, Excel'deki her bir stok numarası için ayrı bir sorgu çalıştırmanız veya tüm stok numaralarını tek bir sorguda IN operatörü ile belirtmeniz gerekecektir.
 
Katılım
12 Kasım 2022
Mesajlar
17
Excel Vers. ve Dili
Exel 2013 Türkçe
Altın Üyelik Bitiş Tarihi
14-11-2023
Teşekkur ederim sorunu çözdüm fakat başka bir problemim var

For j = 1 To 4
For i = 1 To son

If Sheets("Sayfa1").Range("E" & i).Value <> "" Then

SQLStr = "select distinct tbStokFiyati.sFiyatTipi , (select tbFiyatTipi.sAciklama from tbFiyatTipi where " & _
" tbFiyatTipi.sFiyatTipi = tbStokFiyati.sFiyatTipi) ,tbStok.sKodu ,tbStokFiyati.dteFiyatTespitTarihi, tbStokFiyati.lFiyat ," & _
"(select tbFiyatTipi.nAst from tbFiyatTipi where tbFiyatTipi.sFiyatTipi = tbStokFiyati.sFiyatTipi) From tbStokFiyati, tbFiyatTipi, " & _
"tbStok where tbStokFiyati.nStokID = tbStok.nStokID and tbStokFiyati.sFiyatTipi = tbFiyatTipi.sFiyatTipi and tbStok.sKodu ='" & Sheets("Sayfa1").Range("E" & i).Value & " ' " & _
" and tbFiyatTipi.sFiyatTipi='" & Sheets("Sayfa2").Range("A" & j).Value & " ' order by tbStokFiyati.dteFiyatTespitTarihi "


Else
Exit Sub
End If

Set Cn = New ADODB.Connection
Cn.Open "Driver={SQL Server};Server=" & Server_Name & ";Database=" & Database_Name & _
";Uid=" & User_ID & ";Pwd=" & Password & ";"
rs.Open SQLStr, Cn, adOpenStatic

'Worksheets("SE").Range("A" & i).ClearContents

Worksheets("SE").Range("A" & i).CopyFromRecordset rs

rs.Close
Next
Next


Cn.Close


Set rs = Nothing

Set Cn = Nothing
End Sub

Böyle bir sorgum var
Worksheets("SE").Range("A" & i).CopyFromRecordset rs bu sorgu sonucunu sürekli üstüne yazıyor. Sorgu sonucunu alt alta yazmasını nasıl saglarım

For j = 1 To 4
For i = 1 To son Bir koşulda fiyat tipleri 2 koşulda stok numaraları var. Mesela Peşin fiyat için stok numaralarına göre fiyatları getiriyor Daha sonra tüm stok numaraları için 12 taksitli fiyatları getiriyor fakat altına yazmıyor üstüne yazıyor. Recordset de tutulan değerleri dizi ye mi atıp yazdırmalıyım
 
Üst