VBA kullanarak Excel'i Access Veritabanına Bağlama

İçindekiler:

Anonim

Access veritabanı, büyük miktarda veriyi organize bir şekilde etkin bir şekilde kaydeden ilişkisel bir veritabanı yönetim sistemidir. Excel, verileri anlamlı bilgilere dönüştürmek için güçlü bir araçtır. Ancak, Excel çok fazla veri depolayamaz. Ancak Excel ve Access'i birlikte kullandığımızda bu araçların gücü katlanarak artıyor. O halde, veri kaynağı olarak Access veritabanını VBA üzerinden Excel'e nasıl bağlayacağımızı öğrenelim.

Access Veritabanını Veri Kaynağı Excel Olarak Bağlama

1: AcitveX Veri Nesnesine Referans Ekleme

Veritabanına erişmek için bağlanmak için ADO kullanacağız. Bu yüzden önce referansı ADO nesnesine eklememiz gerekiyor.

VBA projenize bir modül ekleyin ve araçlara tıklayın. Burada referanslara tıklayın.

Şimdi Microsoft ActiveX Data Object Library'yi arayın. Sahip olduğunuz en son sürümü kontrol edin. bende 6.1 var Tamam düğmesine tıklayın ve bitti. Artık Access Veritabanına bir bağlantı oluşturmaya hazırız.

2. Access Veritabanına Bağlantıyı Sağlamlaştırmak İçin Bir VBA Kodu Yazın

Excel'i bir Access veritabanına bağlamak için bir Access veritabanınızın olması gerekir. Veritabanımın adı "Database.accdb'yi test edin". şurada kaydedilir: "C:\Kullanıcılar\Manish Singh\Masaüstü" yer. Bu iki değişken önemlidir. Bunları ihtiyaçlarınıza göre değiştirmeniz gerekecektir. Dinlenme kodu olduğu gibi tutulabilir.

Excel VBA modülünüzü yapmak ve ihtiyacınıza göre değişiklik yapmak için aşağıdaki kodu kopyalayın. Aşağıdaki kodun her satırını açıkladım:

Alt ADO_Connection() 'Bağlantı ve Kayıt Kümesi nesneleri oluşturma Dim conn Yeni Bağlantı Olarak, Yeni Kayıt Kümesi Olarak rec Dim DBPATH, PRVD, connString, Sorgu As String 'Veritabanı tam adı bildiriliyor. Veritabanınızın konumu ve adıyla değiştirin. DBPATH = "C:\Users\ExcelTip\Desktop\Test Database.accdb" 'Bu bağlantı sağlayıcısı. Bunu röportajınız için unutmayın. PRVD = "Microsoft.ace.OLEDB.12.0;" 'Bu, bağlantıyı açarken ihtiyaç duyacağınız bağlantı dizesidir. connString = "Sağlayıcı=" & PRVD & "Veri Kaynağı=" & DBPATH 'bağlantıyı açma conn.ConnString'i aç 'veritabanında çalıştırmak istediğim sorgu. sorgu = "MüşteriT'den * SEÇ;" ' sorguyu açık bağlantıda çalıştırıyor. İçindeki tüm verileri alacak kayıt nesne. rec.Open sorgusu, conn 'hücrelerin içeriğini temizlemek Cells.ClearContents 'varsa kayıt kümesinden veri almak ve excel sayfasının A sütununa yazdırmak. Eğer (rec.RecordCount 0) ise, o zaman rec.EOF Range("A" & Cells(Rows.Count, 1).End(xlUp).Row).Offset(1, 0).Value2 = _ rec.Fields Değilse Yap (1).Value rec.MoveNext Loop End If 'bağlantıları kapatmak rec.Close conn.Close End Sub 

Yukarıdaki kodu kopyalayın veya aşağıdaki dosyayı indirin ve dosyada gereksinimlerinize uygun değişiklikler yapın.

Dosyayı İndirin: VBA Veritabanı Öğrenimi

Bu VBA kodunu çalıştırdığınızda, Excel veritabanına bir bağlantı kuracaktır. Daha sonra tasarlanan sorguyu çalıştıracaktır. Sayfadaki eski içeriği temizleyecek ve A sütununu veritabanının Alan 1 (ikinci alan) değerleriyle dolduracaktır.

Bu VBA Access Veritabanı Bağlantısı nasıl çalışır?

Dim conn Yeni Bağlantı Olarak, Yeni Kayıt Kümesi Olarak Kaydet

Yukarıdaki satırda, yalnızca Bağlantı ve kayıt kümesi değişkenlerini bildirmekle kalmıyoruz, aynı zamanda onu doğrudan New anahtar sözcüğünü kullanarak başlatıyoruz.

DBPATH = "C:\Users\ExcelTip\Desktop\Test Database.accdb" PRVD = "Microsoft.ace.OLEDB.12.0;"

Bu iki çizgi yarışmacıdır. DBPATH yalnızca veritabanınızla değişecektir. PRVD, OLE DB sağlayıcısına bağlanıyor.

conn.ConnString'i aç

Bu satır, veritabanına bağlantıyı açar. Open, birkaç argüman alan bağlantı nesnesinin işlevidir. İlk ve gerekli argüman ConnectingString'dir. Bu dize, OLE DB sağlayıcısını (burada PRVD) ve veri kaynağını (burada DBPATH) içerir. Ayrıca, korumalı veritabanları için isteğe bağlı argüman olarak admin ve password alabilir.

Connection.Open sözdizimi şöyledir:

bağlantı.aç ([Dize olarak ConnectionString], [Dize olarak Kullanıcı Kimliği], [Dize olarak Parola], [Uzun Seçenekler=-1])

Veritabanımda ID ve Şifre olmadığı için sadece ConnectionString kullanıyorum. ConnectionString'in biçimi "Sağlayıcı=sağlayıcı_kullanmak istediğiniz; Veri Kaynağı=tam nitelikli veritabanı adı". Bu dizeyi oluşturduk ve kaydettikconnString değişken.

sorgu = "MüşteriT'den * SEÇ;"

Veritabanında çalıştırmak istediğim sorgu bu. İstediğiniz sorguları alabilirsiniz.

rec.Open sorgusu, conn

Bu ifade, tanımlanan bağlantıda tanımlanan sorguyu çalıştırır. Burada kayıt kümesi nesnesinin Open yöntemini kullanıyoruz. Tüm çıktılar kayıt kümesi nesnesine kaydedilirkayıt. Kayıt kümesi nesnesinden değerleri değiştirebilir veya silebilirsiniz.

Cells.ClearContents

Bu satır, sayfanın içeriğini temizler. Başka bir deyişle, sayfanın hücrelerinden her şeyi siler.

Eğer (rec.RecordCount 0) ise, o zaman rec.EOF Range("A" & Cells(Rows.Count, 1).End(xlUp).Row).Offset(1, 0).Value2 = _ rec.Fields Değilse Yap (1).Value rec.MoveNext Döngü Sonu Eğer

Yukarıdaki satır kümesi, kayıt kümesinin boş olup olmadığını kontrol eder. Kayıt kümesi boş değilse (bu, sorgunun bazı kayıtları döndürdüğü anlamına gelir) döngü başlar ve sütundaki son kullanılmayan hücrede alan 1'in (ikinci alan, bu durumda ilk ad) her değerini yazdırmaya başlar.

(Bu sadece açıklamak için kullanılır. Bu satırlara sahip olmayabilirsiniz. Sadece veritabanına bağlantı açmak istiyorsanız bu satırların üzerindeki VBA kodu yeterlidir.)

Döngüyü kayıt kümesinin sonuna kadar çalıştırmak için rec.EOF kullandık. rec.MoveNext sonraki kayıt kümesine geçmek için kullanılır. rec.Fields(1) alan 1'den değerler almak için kullanılır (alan indekslemesi 0'dan başladığı için ikincidir. Veritabanımda, ikinci alan müşterinin Adıdır).

aç.Kapat bağla.Kapat

Son olarak rec ve conn'dan istediğimiz tüm işler bittiğinde onları kapatıyoruz.

Belirli bağlantıları ayrı ayrı açıp kapatmak isterseniz, bu satırları ayrı bir alt programda tutabilirsiniz.

Evet arkadaşlar, ADO kullanarak ACCESS veritabanına bu şekilde bağlantı kurarsınız. Başka yöntemler de vardır, ancak bu, VBA aracılığıyla bir veri erişim kaynağına bağlanmanın en kolay yoludur. Elimden geldiğince detaylı anlattım. Bunun aşağıdaki yorumlar bölümünde yardımcı olup olmadığını bana bildirin.
İlgili Makaleler:

Microsoft Excel'de VBA kullanarak kapalı bir çalışma kitabını veritabanı (DAO) olarak kullanma | Kapalı bir çalışma kitabını DAO bağlantılı bir veritabanı olarak kullanmak için Excel'de bu VBA parçacığını kullanın.

Microsoft Excel'de VBA kullanarak kapalı bir çalışma kitabını veritabanı (ADO) olarak kullanma | Kapalı bir çalışma kitabını ADO bağlantılı bir veritabanı olarak kullanmak için Excel'de bu VBA parçacığını kullanın.

Excel VBA UserForms'a Başlarken | Veritabanına veri eklemek için formları kullanırız. Excel Kullanıcı Formları, kullanıcıdan bilgi almak için kullanışlıdır. VBA kullanıcı formlarıyla nasıl başlamanız gerektiği aşağıda açıklanmıştır.

Excel'de VBA kullanarak birkaç UserForm denetiminin değerini/içeriğini değiştirin | Kullanıcı formu denetimlerinin içeriğini değiştirmek için bu basit VBA parçacığını kullanın.

Excel'de VBA kullanarak kullanıcı x düğmesine tıkladığında bir kullanıcı formunun kapanmasını önleyin | Kullanıcı formun x düğmesine tıkladığında kullanıcı formunun kapanmasını önlemek için UserForm_QueryClose olayını kullanıyoruz.

Popüler Makaleler:

Verimliliğinizi Artıracak 50 Excel Kısayolu | Görevinizde daha hızlı olun. Bu 50 kısayol, Excel'de daha da hızlı çalışmanızı sağlayacaktır.

Excel'de DÜŞEYARA İşlevi | Bu, farklı aralıklardan ve sayfalardan değer aramak için kullanılan excel'in en çok kullanılan ve popüler işlevlerinden biridir.

Excel 2016'da EĞERSAY | Bu şaşırtıcı işlevi kullanarak değerleri koşullarla sayın. Belirli bir değeri saymak için verilerinizi filtrelemeniz gerekmez. Gösterge tablonuzu hazırlamak için Countif işlevi gereklidir.

Excel'de SUMIF İşlevi Nasıl Kullanılır | Bu, başka bir gösterge panosu temel işlevidir. Bu, belirli koşullardaki değerleri özetlemenize yardımcı olur.