Erişim Tablosunu/Sorgu verilerini Excel'e aktarmak için VBA Kodu

Erişim Tablosu Sorgu verilerini Excel'e aktarmak için VBA Kodu
İçindekiler

Erişim Tablosunu VBA (Görüntüler ve Kod) ile Excel'e Aktarın

Nedir?

Bu VBA kodu indirmenize veya içe aktarmanıza yardımcı olur Erişim Tek tıklamayla tablo verileri veya Excel'de Sorgulama.

 

Neden o?

Access tablosu verilerini, Access DB'yi açmadan bile Excel'e aktarabilirsiniz.

Access tablosu verileri Excel'e nasıl aktarılır




Aşama 1: Excel Çalışma Kitabını açın ve VBA kod oluşturucuya (Alt + F11) gidin ve Yeni Bir Modül Açın.

X modülü

Adım 2: Aşağıdaki kodu kopyalayıp içine yapıştırın.

				
					Sub importAccessdata() Dim cnn As ADODB.Connection Dim rs As ADODB.Recordset Dim sQRY As String Dim strFilePath As String strFilePath = "C:\DatabaseFolder\myDB.accdb" ''DatabaseFolder' ve 'myDB.accdb' öğelerini Veritabanı yolu ve Veritabanı adı Seti cnn = Yeni ADODB.Bağlantı Seti rs = Yeni ADODB.Recordset cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Veri Kaynağı = " & strFilePath & ";" sQRY = "SELECT * FROM tblData" ''tblData'yı Access DB Tablo adınızla veya verileri indirmek istediğiniz Sorgu adınızla değiştirin rs.CursorLocation = adUseClient rs.Open sQRY, cnn, adOpenStatic, adLockReadOnly Application.ScreenUpdating = False Sheet1.Range("A1").CopyFromRecordset rs rs.Close Set rs = Hiçbir şey cnn.Close Set cnn = Hiçbir Şey Çıkış Sub End Sub
				
			

Aşama 3: Çalıştır düğmesine veya F5'e tıklayın (Ayrıca excel sayfasına bir düğme/şekil ekleyebilir, ardından sağ tıklayıp bu makroyu her zaman çalışacak şekilde atayabilirsiniz.)

Erişim Tablosunu İçe Aktar

Access DB kayıtları başarıyla Excel'e indirildi. Excel çalışma kitabınızı 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]).

Erişim Tablosunu İçe AktarPin



Eminim çok sayıda Excel verisi, MS Access ve VBA üzerinde çalışıyorsunuzdur, bu yüzden Kesinlikle Access Veritabanı ile aşağıdaki Ultimate Excel VBA Kullanıcı Formu'na katılmanızı öneririz! Kendinize Yatırım Yapmaya Değer! ŞİMDİ YAP!

Kendi Gerçek Dünya Programınızı Oluşturun, Gerçek Excel VBA'yı (Makrolar) Öğrenin, Komple Projeyle Excel'in Sınırlarını Aşın

Picture of Anson Antony
Anson Antony
Anson katkıda bulunan bir yazar ve kurucudur. www.askeygeek.com. Yeni bir şeyler öğrenmek her zaman onun tutkusu olmuştur, ASKEYGEEK.com teknoloji ve iş tutkusunun bir sonucudur. İş Süreci Dış Kaynak Kullanımı, Finans ve Muhasebe, Bilgi Teknolojisi, Operasyonel Mükemmellik ve İş Zekası alanlarında on yıllık çok yönlü bir deneyime sahiptir. Görev süresi boyunca Genpact, Hewlett Packard, M*Modal ve Capgemini gibi kuruluşlarda çeşitli rol ve sorumluluklarda çalıştı. İş ve teknoloji dışında, birlikte saatlerce Sinema ve Film Yapımcısı izleyerek ve öğrenen bir film tutkunu!

10 yanıt

  1. Merhaba, Access DB'mi ortak sürücüde tutup tutmadığımı kontrol etmek ve bu excel makrosunu kuruluşumda dağıtmak istedim, işe yarayacak mı? Excel makromun bu Access DB'den bazı değerleri okumasını ve ardından Excel'i açarken bazı değişkenleri güncellemesini istiyorum.

    Ayrıca Access işe yaramazsa, organizasyonda tutulan başka bir Excel'i bir sürücüde kullanıp DB yerine ona erişip erişemeyeceğim. Şirketimdeki herkesle paylaşılan onedrive excel'imi makromda çalışma kitabı açma yöntemini kullanarak okumayı denedim ancak işe yaramadı.

  2. Sonunda başardım.

    2 değişken kullanıyorum ('para birimi değeri olarak metin kutusu1, R$0.000,00 biçimi' ve 'tarih' olarak metin kutusu2, mm/gg/yyyy biçimi)

    Kod ↓

    '================================================== ===|
    '========================================== Kauê Vaz==|
    '================================================== ===|

    Seçenek Açık

    ' Araçlar, Referanslar'a tıklayın ve
    ' Microsoft ActiveX Veri Nesneleri 2.0 Kitaplığı
    Alt getDataFromAccess(strValue, strDate)

    DBFullName'i Dize Olarak Dim
    Dize Olarak Dim Bağlantısı, Dize Olarak Kaynak
    ADODB.Connection Olarak Dim Bağlantısı
    ADODB.Recordset Olarak Dim Kayıt Kümesi
    Tam Sayı Olarak Dim Col
    MySQLVariable As String'i Dim
    mySQLVariable_1'i Dize Olarak Dimle
    Dim strSQL As String

    mySQLVariable = strValue 'Metin kutusu1'deki değer (Para birimi biçimi R$0.000,00)
    mySQLVariable_1 = strDate 'Metin kutusu2'deki değer (Tarih biçimi aa/gg/yyyy)

    'SQL kodu
    strSQL = “tblVeritabanından NEREDE * SEÇİN”
    strSQL = strSQL & ” [Değer] = '” & (mySQLVariable) & “' ve ”
    strSQL = strSQL & ” [Tarih] = '” & (mySQLVariable_1) & “' ”

    ' Veritabanı, veritabanı erişiminizi seçin
    DBFullName = “C:\Users\Desktop\Databases\BD_PaynotProcess\bd_PaynotProcess.accdb”

    ' Bağlantıyı aç
    Bağlantıyı Ayarla = Yeni ADODB.Connection
    Bağlan = “Sağlayıcı=Microsoft.ACE.OLEDB.12.0;”
    Bağlan = Bağlan & “Veri Kaynağı=” & DBFullName & “;”
    Connection.Open ConnectionString:=Bağlan

    ' RecordSet'i oluştur
    Kayıt Kümesini Ayarla = Yeni ADODB.Recordset
    Kayıt Seti ile

    ' SQL Code değişkeni strSQL'i kullanarak değerleri arayın
    Kaynak = strSQL
    .Açık Kaynak:=Kaynak, ActiveConnection:=Bağlantı

    ' Veritabanından sütunlar içe aktarılıyor.
    Col = 0 için Recordset.Fields.Count'a – 1
    Range(“A5”).Offset(0, Col).Value = Recordset.Fields(Col).Name
    Sonraki

    ' Veritabanından satırlar içe aktarılıyor.
    Aralık(“A5”).Ofset(1, 0).Kayıt Kümesinden Kopyala Kayıt Kümesi
    İle bitmek

    Kayıt Kümesini Ayarla = Hiçbir Şey
    Bağlantı.Kapat
    Bağlantıyı Ayarla =

    ActiveSheet.Columns.AutoFit

    Son Alt

    Saygılarımızla

  3. Sadece bazı verileri içe aktarabilir miyim? 2 değişkene göre filtreleme mi yapıyorsunuz?
    Örnek:

    X = 13/03
    Y = '122315124'

    Erişim bd'sinden yalnızca bu değişkenleri içeren satırlar getirilsin mi?

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Tebrikler!
Başardın,
Kapatmayın!

Yukarı Çık 60.000 Ücretsiz UberTTS Karakter Kredisi!!!

Bu açılır pencere gösterilmeyecek size kalmış Tekrar!!!

UberTTS
7
Share to...