ASMET67
Altın Üye
- Katılım
- 8 Haziran 2007
- Mesajlar
- 410
- Excel Vers. ve Dili
- Excel 2016
- Altın Üyelik Bitiş Tarihi
- 30-11-2027
Selam sql serverdan bilgi çekip gelen bilgiyi userformda Lisview nesnesine aktarmak için function varmı. Ben aşağıdaki acces için kullandığım kodu sql için çevirip deniyorum. Kod ile servere bağlanıyor. for ile dongü kurmak istediğimde a = Ksm.RecordCount sonucu -1 bir geliyor. aynı kayıt setini sayfaya CopyFromRecordset Ksm olarak yazdırmığında yazıyor.
Kayıt seti satır sayısını bağla nasıl alabilirim.
Kayıt seti satır sayısını bağla nasıl alabilirim.
Kod:
Sub LWDoldur(LWAdi As MSForms.Control, Baslik, Sorgu As Variant)
Dim Satir, Sutun As Long
Dim Bagm As ADODB.Connection
Dim Ksm As ADODB.Recordset
Dim strConn As String, stsql As String
Dim rst As ADODB.Recordset
Dim password As String
Dim user As String
Dim servername As String
Dim veritabani As String
Dim tablename As String
Dim sutsay, satsay As Long
Dim FROM As String
Dim Kullanici, Sifre As String
'On Error Resume Next
servername = "10.77.162.47"
user = "***"
password = "***"
Set Bagm = New ADODB.Connection
Set Ksm = New ADODB.Recordset
strConn = "PROVIDER=SQLOLEDB;"
strConn = strConn & "DATA SOURCE=" & server_ismi & ";INITIAL CATALOG=" & veritabani & ";"
strConn = strConn & "UID=" & user & ";PWD=" & password
Bagm.Open strConn
MsgBox Sorgu
With Ksm
On Error Resume Next
.ActiveConnection = Bagm
.Close
.Open Sorgu
Satir = Ksm(0)
.Close
.Open Sorgu
Sutun = Ksm.Fields.Count
a = Ksm.RecordCount
End With
On Error GoTo 0
Range("a1").CopyFromRecordset Ksm
LWAdi.ListItems.Clear
With LWAdi
Ksm.Close
Ksm.Open Sorgu, Bagm, 1, 3 '= Bagm.Execute(Sorgu)
If Not Ksm.EOF Then
No = 2
LWAdi.ListItems.Clear
For Satir = 0 To Ksm.RecordCount - 1
' stn = 5
On Error Resume Next
For Sutun = 0 To Ksm.Fields.Count - 1
If Sutun = 0 Then
' s1.Cells(no, "e").Value = KSm(sutun)
.ListItems.Add , , Ksm(Sutun)
Else
On Error Resume Next
' stn = stn + 1
' s1.Cells(no, stn).Value = KSm(sutun)
.ListItems(Satir + 1).SubItems(Sutun) = Ksm(Sutun)
' No = KSm(0)
End If
On Error GoTo 0
Next
' No = No + 1
Ksm.MoveNext
Next
End If
Bagm.Close
Set Ksm = Nothing
Set Bagm = Nothing
End With
End Sub