- Katılım
- 20 Ocak 2005
- Mesajlar
- 526
- Excel Vers. ve Dili
- Excel 2007 Türkçe
- Altın Üyelik Bitiş Tarihi
- 01-01-2024
Ctrlv dosyam var. Report.xls dosyasından nasıl veri alırım. Sitemizde bulduğum kod "Subscript out of range" hatası verdi. Nasıl yapabilirim? Ek dosya örnek, Kod aşağıda.
***************************************
Option Explicit
Sub Verileri_Aktar()
Dim Dosya As String, S1 As Worksheet, Baglanti As Object
Dim Sorgu As String, Kayit_Seti As Object, X As Integer, Zaman As Double
Dosya = "C:\Users\murat.topal\Downloads\Report.xls"
Zaman = Timer
If Dir(Dosya) <> "" Then
Set Baglanti = CreateObject("AdoDb.Connection")
Set Kayit_Seti = CreateObject("AdoDb.Recordset")
Set S1 = Sheets("Rapor")
S1.Cells.ClearContents
If Dosya <> ThisWorkbook.FullName Then
Baglanti.Open "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" & _
Dosya & ";Extended Properties=""Excel 12.0;Hdr=Yes"""
Sorgu = "Select * From [Veriler$]"
Kayit_Seti.Open Sorgu, Baglanti, 1, 1
If Kayit_Seti.RecordCount > 0 Then
S1.Range("A1").CopyFromRecordset Kayit_Seti
For X = 0 To Kayit_Seti.Fields.Count - 1
S1.Cells(1, X + 1) = Kayit_Seti.Fields(X).Name
Next
S1.Columns.AutoFit
End If
If Kayit_Seti.State <> 0 Then Kayit_Seti.Close
If Baglanti.State <> 0 Then Baglanti.Close
End If
Set Kayit_Seti = Nothing
Set Baglanti = Nothing
Set S1 = Nothing
MsgBox "Veri aktarımı tamamlanmıştır." & Chr(10) & Chr(10) & _
"İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
Else
MsgBox "Veri alınacak dosya bulunamadı!", vbCritical
End If
End Sub
***************************************
Option Explicit
Sub Verileri_Aktar()
Dim Dosya As String, S1 As Worksheet, Baglanti As Object
Dim Sorgu As String, Kayit_Seti As Object, X As Integer, Zaman As Double
Dosya = "C:\Users\murat.topal\Downloads\Report.xls"
Zaman = Timer
If Dir(Dosya) <> "" Then
Set Baglanti = CreateObject("AdoDb.Connection")
Set Kayit_Seti = CreateObject("AdoDb.Recordset")
Set S1 = Sheets("Rapor")
S1.Cells.ClearContents
If Dosya <> ThisWorkbook.FullName Then
Baglanti.Open "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" & _
Dosya & ";Extended Properties=""Excel 12.0;Hdr=Yes"""
Sorgu = "Select * From [Veriler$]"
Kayit_Seti.Open Sorgu, Baglanti, 1, 1
If Kayit_Seti.RecordCount > 0 Then
S1.Range("A1").CopyFromRecordset Kayit_Seti
For X = 0 To Kayit_Seti.Fields.Count - 1
S1.Cells(1, X + 1) = Kayit_Seti.Fields(X).Name
Next
S1.Columns.AutoFit
End If
If Kayit_Seti.State <> 0 Then Kayit_Seti.Close
If Baglanti.State <> 0 Then Baglanti.Close
End If
Set Kayit_Seti = Nothing
Set Baglanti = Nothing
Set S1 = Nothing
MsgBox "Veri aktarımı tamamlanmıştır." & Chr(10) & Chr(10) & _
"İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
Else
MsgBox "Veri alınacak dosya bulunamadı!", vbCritical
End If
End Sub
Ekli dosyalar
-
7.9 KB Görüntüleme: 4
-
14.4 KB Görüntüleme: 4