Access'te SQL geçiş sorgusu oluşturmak için ADOX kullanma

Orta: Temel makro, kodlama ve birlikte çalışabilirlik becerileri gerektirir.

Bu makale yalnızca Microsoft Access veritabanı (.accdb ve .mdb) için geçerlidir.

Özet

Bu makalede, Microsoft ActiveX Veri Nesneleri (ADO) ile Microsoft Visual Basic for Applications'de (VBA) sql doğrudan sorgusu oluşturma gösterilmektedir.

Daha fazla bilgi

Visual Basic for applications'ta SQL geçiş sorgusu oluşturan bir işlev yazabilirsiniz. SQL doğrudan sorgusu bir SQL deyiminden ve bir bağlantı dizesi oluşur. Sorguyu çalıştırdığınızda, komutlar işlenmek üzere doğrudan veritabanı sunucusuna gönderilir. Bu, Microsoft Jet veritabanı altyapısının yükünü ortadan kaldırır.

Veri Erişim Nesnesi (DAO) modeliyle, dış verilere erişirken performansı geliştirmek için SQL geçiş sorgularını kullanabilirsiniz. ADO ile SQL Server için Microsoft OLE DB Sağlayıcısı'nı kullanarak Microsoft Jet veya ODBC ek yükü olmadan bir SQL Server doğrudan erişebilirsiniz. Herhangi bir ODBC veri kaynağındaki verilere erişmek için ODBC için Microsoft OLE DB Sağlayıcısı'nı da kullanabilirsiniz.

Performansı artırmak için artık Microsoft Jet veritabanınızda SQL doğrudan sorguları oluşturmanız gerekmesine rağmen, ADOX ve Jet Sağlayıcısı'nı kullanarak da bunu yapabilirsiniz. Aşağıdaki kodda SQL doğrudan sorgusunu nasıl oluşturacağınız gösterilmektedir.

NOT: Bu makaledeki örnek kod, Veri Tanımı Dili ve Güvenliği (ADOX) için hem ADO hem de ActiveX Veri Nesneleri Uzantılarını kullanır. Bu kodun düzgün çalışması için Visual Basic Düzenleyici Araçlar menüsünde Başvurular'a tıklamanız ve aşağıdaki iki başvurunun seçildiğinden emin olmanız gerekir:

  • Microsoft ActiveX Veri Nesneleri 2.1 Kitaplığı
  • DDL ve Güvenlik için Microsoft ADO Ext. 2.6

Microsoft, programlama örneklerini yalnızca gösterim amacıyla sağlar; örtülü veya açık garanti vermez. Buna zımni garantiler, satılabilirlik veya belirli bir amaca uygunluk da dahildir, ancak bunlarla sınırlı değildir. Bu makale, gösterilen programlama dilini ve yordamları oluşturmak ve hata ayıklamak amacıyla kullanılan araçları kullanmayı bildiğinizi varsayar. Microsoft destek mühendisleri, belirli bir yordamın işlevselliğinin açıklanmasına yardımcı olabilir, ancak gereksinimlerinizi karşılamaya yönelik olarak ek işlevsellik sağlamak veya yordamlar geliştirmek amacıyla bu örnekleri değiştirmezler. Kodda SQL geçiş sorgusu oluşturmak için şu adımları izleyin:

  1. Örnek Northwind veritabanını açın.
  2. Yeni bir modül oluşturun ve aşağıdaki kodu yazın veya yapıştırın:
Function CreateSPT(SPTQueryName As String, strSQL As String)

Dim cat As ADOX.Catalog
  Dim cmd As ADODB.Command

Set cat = New ADOX.Catalog
  Set cmd = New ADODB.Command

cat.ActiveConnection = CurrentProject.Connection

Set cmd.ActiveConnection = cat.ActiveConnection

cmd.CommandText = strSQL
  cmd.Properties("Jet OLEDB:ODBC Pass-Through Statement") = True

'Modify the following connection string to reference an existing DSN for 
 'the sample SQL Server PUBS database.

cmd.Properties _
     ("Jet OLEDB:Pass Through Query Connect String") = _
       "ODBC;DSN=myDSN;database=pubs;UID=sa;PWD=;"
  cat.Procedures.Append SPTQueryName, cmd

Set cat = Nothing
  Set cmd = Nothing

End Function

  1. Bu işlevi test etmek için, Anlık penceresine aşağıdaki satırı yazın ve ENTER tuşuna basın:

    ? CreateSPT("MySptQuery", "Select * from Authors")