recordset ile yapıldı o nedenle ms ActiveX Data Objects library eklendi
Dim Sql As String
Dim ADO_RS As ADODB.Recordset
Dim ADO_CN As ADODB.Connection
SQL = "SELECT [VERi$].[F1], [VERi$].[F2], [VERi$].[F5], [VERi$].[F3], [VERi$].[F4],1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 " & _
"FROM (([VERi$] LEFT JOIN [KONTROL$D2] ON [VERi$].[F6] = [KONTROL$D2].[F1]) " & _
"LEFT JOIN [KONTROL$E2:E] ON [VERi$].[F5] = [KONTROL$E2:E].[F1]) " & _
"LEFT JOIN [KONTROL$F2:F] ON [VERi$].[F2] = [KONTROL$F2:F].[F1] " & _
"where ([VERi$].[F1] Is Not Null) and (([KONTROL$D2].[F1]) Is Null) and (([KONTROL$E2:e].[F1]) Is Null) and (([KONTROL$F2:F].[F1]) Is Null) "
Set ADO_RS = New ADODB.Recordset
Set ADO_CN = New ADODB.Connection
'sonStr = ws.Range("A" & Rows.Count).End(3).Row + 1
ADO_CN.ConnectionString = "provider=Microsoft.ACE.OLEDB.12.0;data source=" & ThisWorkbook.FullName & _
";extended properties=""excel 12.0;hdr=no;IMEX=1"""
ADO_CN.Open
ADO_RS.Open SQL, ADO_CN, 3, 1
'
SonStr = Worksheets(Me.ComboBox1.Value).Cells(Worksheets(Me.ComboBox1.Value).Rows.Count, 2).End(xlUp).Row + 1
Worksheets(Me.ComboBox1.Value).Range("A7:AI" & SonStr).UnMerge
Worksheets(Me.ComboBox1.Value).Range("A7:AI" & SonStr).ClearContents
' Eğer Hiç Kayıt Yoksa
If ADO_RS.RecordCount = 0 Then
MsgBox "Kayıt Bulunamadı.", vbCritical, "Veri Yok"
GoTo skipfile:
End If
ADO_RS.MoveLast
ADO_RS.MoveFirst
ADO_RS.MoveNext
Worksheets(Me.ComboBox1.Value).Range("A7").CopyFromRecordset ADO_RS
skipfile:
ADO_RS.Close
ADO_CN.Close
Set ADO_RS = Nothing
Set ADO_CN = Nothing
sonuçlar doğru ise imza ve toplam kodları da sonradan eklenebilir