Excel verilerini VBA ile Access'e aktarma (Görüntüler ve Kod)
Nedir?
Bu VBA kodu yüklemenize veya Excel verilerini Access'e aktarma tek tıklamayla.
Neden o?
Yapabilirsiniz Excel verilerini Access'e aktarma Access DB'yi bile açmadan.
Excel Verileri Access'e Nasıl Aktarılır
Aşama 1: Açmak excel sayfasına gidin ve VBA kod oluşturucusuna (Alt + F11) gidin ve Yeni Modül Açın
.
Adım 2: Aşağıdaki kodu kopyalayın ve içine yapıştırın.
Const TARGET_DB = "myDB.accdb" 'myDB.accdb'yi db adınızla değiştirin, hem Excel hem de Access DB'nin aynı yolda olduğundan emin olun.
Sub PushTableToAccess()
Dim cnn As ADODB.Connection
Dim MyConn
Dim rst As ADODB.Recordset
Dim i As Long, j As Long
Dim Rw Uzun Olarak
Sayfalar("Sayfa Adı").Etkinleştir 'Sayfa Adı'nı Excel Sayfanızın adı ile değiştirin
Rw = Range("A65536").End(xlUp).Row
'Excel Sayfanıza veri aralığı verin
Set cnn = Yeni ADODB.Bağlantı
MyConn = ThisWorkbook.Path & Application.PathSeparator & TARGET_DB
CNN ile
.Provider = "Microsoft.ACE.OLEDB.12.0"
.Open MyConn
İle bitmek
'tblMyExcelUpload' ifadesini Access'teki tablo adınızla değiştirin
Set rst = Yeni ADODB.Recordset
rst.CursorLocation = adUseServer
rst.Open Source:="tblMyExcelUpload", ActiveConnection:=cnn, _
CursorType:=adOpenDynamic, LockType:=adLockOptimistic, _
Seçenekler:=adCmdTable
'Tüm kayıtları Excel'den Access'e yükleyin.
For i = 2 ila Rw
rst.AddNew
j = 1 ila 7 için
rst(Cells(1, j).Value) = Cells(i, j).Value
Sonraki j
rst.Güncelleme
Sonraki i
' Bağlantıyı kapatın
rst.Kapat
cnn.Close
Set rst = Hiçbir şey
Set cnn = Hiçbir şey
Son Alt
Aşama 3:Çalıştır düğmesine veya F5'e tıklayın (Ayrıca excel sayfasına bir düğme / şekil ekleyebilir ve ardından sağ tıklayıp bu makroyu her seferinde çalışacak şekilde atayabilirsiniz). Yükleme işlemini tamamladınız!!! Excel kayıtları Access'e başarıyla yüklendi, Access DB Tablonuzu açın ve verileri kontrol edin.
Not: 'Microsoft ActiveX Veri Nesneleri Kitaplığı'nın etkinleştirildiğinden emin olun. Aletler – Referanslar (sayı en son sürümü kullanır [bu yazı itibariyle 6.1]).
Pin
8 Responses
Herkese merhaba;
Bu ADODBC bağlantısının çalışması için bu iki yol konumunun aynı olması gerekir mi? Yani ThisWorkbook.Path ve Target_DB.
Yukarıdan emredin:
ThisWorkbook.Path & Application.PathSeparator & TARGET_DB
Veya Workbook.Path şöyle olabilir mi
"C:\MyExcelFiles\MyWorkbook.xlsx" & Access veri tabanı TARGET_DB içinde olması
"C:\MyDataBases\MyAccessDB.accdb"?
Hem Excel Çalışma Kitabı hem de Access DB aynı klasörde bulunduğunda kodum çalışıyor, ancak farklı klasörde olduklarında (düzgün düzenlenmiş kitaplık yapısı, kod .Open MyConn noktasında başarısız oluyor.
Herkese teşekkürler,
Mario,
Merhaba
Bunun için nasıl şifre belirleyebilirim?
Tanklar
rst(Cells(1, j).Value) = Cells(i, j).Value
kod burada kırılır
———-
Hata 3265
Öğe, istenen ada veya sıralamaya karşılık gelen koleksiyonda bulunamıyor
———-
Elektronik tablo ve db farklı konumlarda, yani yollarda olsaydı kod nasıl görünürdü?
Merhaba,
kodum şu ana kadar çalışır
Sayfalar("Sayfa Adı").Etkinleştir
Sayfayı seçtim ancak başka bir şey olmuyor.
Tavsiye verebilir misiniz?
Teşekkür ederim.
Try Worksheets("Yoursheet").Activate
Verileri yüklemek için (Range.CopyFromRecordset) gibi tek bir komut var mı?
Merhaba Krishnan, emin değilim, araştırmama izin verin ve sizi bilgilendireyim.