Bir Dosyadan Diğer Dosyaya Verileri Al

muygun

Özel Üye
Katılım
6 Temmuz 2004
Mesajlar
9,182
Excel Vers. ve Dili
Excel-2003 Türkçe

Ekli dosyalar

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Alternatif.:cool:
Dosyanız ektedir.:cool:

DOSYAYI INDIR

Kod:
Sub aktar_59()
Dim conn As Object, rs As Object, sat As Long
Set conn = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")
conn.Open = "provider=microsoft.ace.oledb.12.0;data source=" & ThisWorkbook.Path & "\Close_Data.xlsx;extended properties=""excel 12.0;hdr=yes"""
rs.Open "select * from [Sheet1$]", conn, 1, 1
sat = Cells(Rows.Count, "A").End(xlUp).Row + 1
Range("A" & sat).CopyFromRecordset rs
rs.Close: conn.Close
Set rs = Nothing: Set conn = Nothing
MsgBox "veriler aktarıldı."
End Sub
 

Ekli dosyalar

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
ADO ile "Insert Into" metodu kullanarak hazırlanan alternatif ektedir...

Evren Beyin "CopyFromRecordset" metoduna göre daha hızlıdır...


.
 

Ekli dosyalar

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
ADO ile "Insert Into" metodu kullanarak hazırlanan alternatif ektedir...

Evren Beyin "CopyFromRecordset" metoduna göre daha hızlıdır...


.
Bunu bilmiyordum hocam.
Bunuda öğrenmiş olduk.
Teşekkür ederim.İyi çalışmalar dilerim.
 

m.ensar

Altın Üye
Katılım
5 Nisan 2016
Mesajlar
348
Excel Vers. ve Dili
office 10 türkçe
Altın Üyelik Bitiş Tarihi
25-10-2025

m.ensar

Altın Üye
Katılım
5 Nisan 2016
Mesajlar
348
Excel Vers. ve Dili
office 10 türkçe
Altın Üyelik Bitiş Tarihi
25-10-2025
Hocam bu koda sadece 1. sayfaları yani çalışma kitaplarının ilk sayfalarını birleştir diyebilir miyiz? .xlsx için
 

m.ensar

Altın Üye
Katılım
5 Nisan 2016
Mesajlar
348
Excel Vers. ve Dili
office 10 türkçe
Altın Üyelik Bitiş Tarihi
25-10-2025
Hocam emeğinize sağlık süper olmuş Allah ne muradın varsa versin.
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,062
Excel Vers. ve Dili
Office 2013 İngilizce
ADO ile "Insert Into" metodu kullanarak hazırlanan alternatif ektedir...

Evren Beyin "CopyFromRecordset" metoduna göre daha hızlıdır...


.
Haluk hocamın aşağıdaki kodunda, Kaynak ve hedef dosya excel yerine Access olursa;

SourceFile= ThisWorkbook.Path & Application.PathSeparator & "TempDB.accdb"

strSQL =..................................

satırını nasıl düzenlemek gerekir? Access dosyasında "Table1" tablosundan "Table2" tablosuna aktaracağız.

teşekkürler,
iyi akşamlar.


Kod:
Sub Test()
'   Haluk 08/09/2019
'   E-POsta: sa4truss@gmail.com

    Dim adoCN   As Object, myFile As String, strSQL As String
    
    Set adoCN = CreateObject("ADODB.Connection")
    
    SourceFile = ThisWorkbook.Path & Application.PathSeparator & "Close_Data.xlsx"
    TargetFile = ThisWorkbook.FullName
    
    adoCN.Provider = "Microsoft.ACE.OLEDB.12.0"
    adoCN.Properties("Data Source") = TargetFile
    adoCN.Properties("Extended Properties") = "Excel 12.0; HDR=Yes"
    adoCN.Open
    
    strSQL = "Insert Into [Sheet1$] ([Name1], [Name2], [Name3], [Name4], [Name5]) " & _
             "Select * From [Sheet1$] " & _
             "In '' [Excel 12.0;Database=" & SourceFile & "] "
    
    adoCN.Execute strSQL
    adoCN.Close
    Set adoCN = Nothing
End Sub
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,062
Excel Vers. ve Dili
Office 2013 İngilizce
Haluk hocamın aşağıdaki kodunda, Kaynak ve hedef dosya excel yerine Access olursa;

SourceFile= ThisWorkbook.Path & Application.PathSeparator & "TempDB.accdb"

strSQL =..................................

satırını nasıl düzenlemek gerekir? Access dosyasında "Table1" tablosundan "Table2" tablosuna aktaracağız.

teşekkürler,
iyi akşamlar.


Kod:
Sub Test()
'   Haluk 08/09/2019
'   E-POsta: sa4truss@gmail.com

    Dim adoCN   As Object, myFile As String, strSQL As String
   
    Set adoCN = CreateObject("ADODB.Connection")
   
    SourceFile = ThisWorkbook.Path & Application.PathSeparator & "Close_Data.xlsx"
    TargetFile = ThisWorkbook.FullName
   
    adoCN.Provider = "Microsoft.ACE.OLEDB.12.0"
    adoCN.Properties("Data Source") = TargetFile
    adoCN.Properties("Extended Properties") = "Excel 12.0; HDR=Yes"
    adoCN.Open
   
    strSQL = "Insert Into [Sheet1$] ([Name1], [Name2], [Name3], [Name4], [Name5]) " & _
             "Select * From [Sheet1$] " & _
             "In '' [Excel 12.0;Database=" & SourceFile & "] "
   
    adoCN.Execute strSQL
    adoCN.Close
    Set adoCN = Nothing
End Sub
Haluk Hocamın kodlarını uyarlayarak aşağıdaki şekilde çözdüm,

her şey için teşekkürler

Kod:
Sub Test()

Dim adoCN As Object, strConnection As String
Dim TempDB As String, strSQL As String, strSQL2 As String

Const adExecuteNoRecords = 128
Const adUseClient = 3
Const adOpenForwardOnly = 0
Const adLockReadOnly = 1

TempDB = ThisWorkbook.Path & Application.PathSeparator & "TempDB.accdb"

Set adoCN = CreateObject("ADODB.Connection")

strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & TempDB

adoCN.Open strConnection

strSQL2 = "Delete * From [Report]"

adoCN.Execute strSQL2

strSQL = "Insert Into [Report]([ID],[Test]) Select [ID2], [Test2] " _
& "From [Table1]"

adoCN.Execute strSQL

adoCN.Close

Set adoCN = Nothing
End Sub
 
Üst