AŞAĞIDAKİ KODTA NE YAPMAM LAZIM?

Katılım
28 Ağustos 2004
Mesajlar
48
Excel Vers. ve Dili
Microsoft Excel 2007 - Türkçe
Altın Üyelik Bitiş Tarihi
02.08.2019
AÞAÐIDAKÝ KODTA NE YAPMAM LAZIM?

Private Sub CommandButton1_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim satir As Long
Dim yol As String
yol = ActiveWorkbook.Path
Set db = OpenDatabase(yol & "\KASA.xls", False, False, "Excel 8.0")
Set rs = db.OpenRecordset("SELECT KASA, SUM(GBORÇ), SUM(GALACAK) FROM `DATA` GROUP BY KASA")
With rs
.MoveLast
satir = .RecordCount
.MoveFirst
End With
'Gelen Verileri A1 hücresine yazdırmak istiyorum
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
End Sub[/i]
 
Katılım
2 Mart 2005
Mesajlar
225
Excel Vers. ve Dili
2003
2007
2010
Sanırım bu şekilde olacak ancak denemedim!
[vb:1:5ef8613849]
Private Sub CommandButton1_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim satir As Long
Dim yol As String
yol = ActiveWorkbook.Path
Set db = OpenDatabase(yol & "\KASA.xls", False, False, "Excel 8.0")
Set rs = db.OpenRecordset("SELECT KASA, SUM(GBORÇ), SUM(GALACAK) FROM `DATA` GROUP BY KASA")
With rs
.MoveLast
satir = .RecordCount

for = i to satir
ThisWorkbook.Sheets(ActiveSheet.Name).Cells(satir, 1) = .Fields(1)
Next i

.MoveFirst
End With

'Gelen Verileri A1 hücresine yazdırmak istiyorum

rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
End Sub
[/vb:1:5ef8613849]
 
Katılım
7 Temmuz 2004
Mesajlar
1,141
döngü bölümü asagidaki sekilde olursa
[vb:1:97e4c1c6e0]For = i To satir
ThisWorkbook.Sheets(ActiveSheet.Name).Cells(satir, 1) = .Fields(0)
ThisWorkbook.Sheets(ActiveSheet.Name).Cells(satir, 2) = .Fields(1)
ThisWorkbook.Sheets(ActiveSheet.Name).Cells(satir, 3) = .Fields(2)
Next i[/vb:1:97e4c1c6e0]

Daha uygun olur. Çünkü sorgudan 3 alan dönüyor.
 
Katılım
28 Ağustos 2004
Mesajlar
48
Excel Vers. ve Dili
Microsoft Excel 2007 - Türkçe
Altın Üyelik Bitiş Tarihi
02.08.2019
Olmadı

Söylendiği üzere kodları şöyle ekledim ( For i = 1 to satır ) ekledim, ancak gelen verilerden en son kaydı sayfaya ekledi. Þöyle ki, gelen değer

EUR 100 250
USD 100 100
YTL 100 200

olması gerekirken, sayfaya gelen değer "YTL 100 200" olarak gelmiştir.
 
Katılım
7 Temmuz 2004
Mesajlar
1,141
[vb:1:bf21aa4434]Private Sub CommandButton1_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim satir As Long
Dim yol As String
yol = ActiveWorkbook.Path
Set db = OpenDatabase(yol & "\KASA.xls", False, False, "Excel 8.0")
Set rs = db.OpenRecordset("SELECT KASA, SUM(GBORÇ), SUM(GALACAK) FROM `DATA` GROUP BY KASA")
With rs
.MoveLast
satir = .RecordCount
.Movefirst
For = i To satir

ThisWorkbook.Sheets(ActiveSheet.Name).Cells(satir, 1) = .Fields(0)
ThisWorkbook.Sheets(ActiveSheet.Name).Cells(satir, 2) = .Fields(1)
ThisWorkbook.Sheets(ActiveSheet.Name).Cells(satir, 3) = .Fields(2)
.movenext
Next i


End With

'Gelen Verileri A1 hücresine yazdırmak istiyorum

rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
End Sub[/vb:1:bf21aa4434]


Not: Lütfen soru basligini konuya uygun olarak degistirebilir misiniz?
 
Katılım
28 Ağustos 2004
Mesajlar
48
Excel Vers. ve Dili
Microsoft Excel 2007 - Türkçe
Altın Üyelik Bitiş Tarihi
02.08.2019
Yine Olmadı

Yanlız göndermiş olduğunuz kodta "For = i To satir" komutunu bilgisayar kabul etmiyor bende o kodu "For i = 1 To satir" diyerek kabul ettiriyorum, acaba benmi yanlış yapıyorum?
 
Katılım
7 Temmuz 2004
Mesajlar
1,141
:mrgreen:

Sizin yaptiginiz zaten dogrusu.

Ben bir üstteki kodu kopyalayip üzerinde degisiklik yaptigim, ve denemedigim icin gözümden kacmis.
 
Katılım
28 Ağustos 2004
Mesajlar
48
Excel Vers. ve Dili
Microsoft Excel 2007 - Türkçe
Altın Üyelik Bitiş Tarihi
02.08.2019
Tamamdır

Kodtaki son değişiklik ile oldu ".Cells(satir," değil ".Cells(i," yazarak sonuca ulaştım.

For i = 1 To satir
ThisWorkbook.Sheets(ActiveSheet.Name).Cells(i, 1) = .Fields(0)
ThisWorkbook.Sheets(ActiveSheet.Name).Cells(i, 2) = .Fields(1)
ThisWorkbook.Sheets(ActiveSheet.Name).Cells(i, 3) = .Fields(2)
.MoveNext
Next i

Teşekkür ; Bu siteyi yapana, sitede insanlara hiç bir karşılık beklemeden yardımcı olana, her insanın giderdiği problem kadar Rabbimin o kişilerin sevap hanesine sevap yazması dileğiyle,

Peygamber Efendimizin bir hadisi ile yazımı bitirmek istiyorum
"İnsanların Hayırlısı, İnsanlara Faydalı Olandır"

"Rabbim Sizi, Bizi Tüm Ümmeti Muhammedi Kulluk Görevini Tam Yapanlardan Eylesin"

AMİN

Allah'a Emanet Olun
 
Üst