Set RecYkTcNo = New ADODB.Recordset, If .RecordCount > 0 Then ve Spreadsheet1

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Kod:
Private Sub ComboBox85_Change()
On Error Resume Next
Call DegiskenTani
Dim i As Integer, SQLStr As String
Spreadsheet1.Rows("2:" & [a65536].End(3).Row).Interior.ColorIndex = xlNone
Spreadsheet1.Rows("2:" & [a65536].End(3).Row).Font.Bold = False
Spreadsheet1.Rows("2:" & [a65536].End(3).Row).Font.ColorIndex = 0
If ComboBox85.Value = "" Then Exit Sub
Set RecTcNo = New ADODB.Recordset
    basliklar = "TCK_NO, ADI, SOYADI,ILKSOYADI, BABAADI, ANNEADI,"
    basliklar = basliklar & "DOGUM_Y, DOGUM_T, MD_HAL, CNS,"
    basliklar = basliklar & "SIG_NO"
    sayfaadi = "[DATA$]"
    sorgu = "TCK_NO = " & ComboBox85.Value
        SQLStr = "SELECT " & basliklar & " FROM " & sayfaadi & " WHERE " & sorgu
    With RecTcNo
            .Open SQLStr, bagTCKMLK, adOpenKeyset, adLockOptimistic
            .MoveFirst
            ComboBox86.Value = .Fields("ADI")
            TextBox3.Value = .Fields("SOYADI")
            TextBox15.Value = .Fields("ILKSOYADI")
            TextBox4.Value = .Fields("BABAADI")
            TextBox5.Value = .Fields("ANNEADI")
            TextBox6.Value = .Fields("DOGUM_Y")
            TextBox7.Value = .Fields("DOGUM_T")
            TextBox16.Value = .Fields("SIG_NO")
            If .Fields("CNS") = "Erkek" Then
                OptionButton1.Value = 1
            ElseIf .Fields("CNS") = "Kadın" Then
                OptionButton2.Value = 1
            Else
                OptionButton1.Value = 0: OptionButton2.Value = 0
            End If
    If CBool(.State And adStateOpen) = True Then .Close
    End With
Set RecTcNo = Nothing

Set RecYkTcNo = New ADODB.Recordset
    basliklar = "TCK_NO, AD_SOYAD, YK_DRC, YKN_TCK_NO, YKN_AD_SOYAD, YKN_CNS, YKN_DOGUM_Y, YKN_DOGUM_T"
    sayfaadi = "[DATA$]"
    sorgu = "TCK_NO = " & ComboBox85.Value
        SQLStr = "SELECT " & basliklar & " FROM " & sayfaadi & " WHERE " & sorgu

    With RecYkTcNo
            .Open SQLStr, bagYKN, adOpenKeyset, adLockOptimistic
        If .RecordCount > 0 Then
            Spreadsheet1.Range("a1:f100").ClearContents
            Spreadsheet1.Cells(1, 1) = "YK_DRC"
            Spreadsheet1.Cells(1, 2) = "YKN_TCK_NO"
            Spreadsheet1.Cells(1, 3) = "YKN_AD_SOYAD"
            Spreadsheet1.Cells(1, 4) = "YKN_CNS"
            Spreadsheet1.Cells(1, 5) = "YKN_DOGUM_Y"
            Spreadsheet1.Cells(1, 6) = "YKN_DOGUM_T"
            Spreadsheet1.Columns(1).ColumnWidth = 6
            Spreadsheet1.Columns(2).ColumnWidth = 15
            Spreadsheet1.Columns(3).ColumnWidth = 20
            Spreadsheet1.Columns(4).ColumnWidth = 6
            Spreadsheet1.Columns(5).ColumnWidth = 20
            Spreadsheet1.Columns(6).ColumnWidth = 15
            sat = 1
            .MoveFirst
[B]                For i = 1 To .RecordCount
                    Spreadsheet1.Cells(sat + i, 1).Value = .Fields("YK_DRC")
                    Spreadsheet1.Cells(sat + i, 2).Value = .Fields("YKN_TCK_NO")
                    Spreadsheet1.Cells(sat + i, 3).Value = .Fields("YKN_AD_SOYAD")
                    Spreadsheet1.Cells(sat + i, 4).Value = .Fields("YKN_CNS")
                    Spreadsheet1.Cells(sat + i, 5).Value = .Fields("YKN_DOGUM_Y")
                    Spreadsheet1.Cells(sat + i, 6).Value = .Fields("YKN_DOGUM_T")
                   .MoveNext
                Next i[/B]            .MoveFirst
        End If
        If CBool(.State And adStateOpen) = True Then .Close
    End With
Set RecYTcNo = Nothing
End Sub
Arkadaşlar yukarıdaki kodlar ile birden fazla kayıtları spreadsheet getiridim yalnız

şöyle bir sorun var iki tane kayıt varsa spread shetteki iki kayıtta aynı
kayıtnoyu yazmak mümkün değilmi
adı (i) gibi
 
Üst