Bu öğretici, SQL'i VBA Access ile kullanma örnekleri içerir. Aşağıda göreceğiniz gibi, Access'te VBA ile SQL sorguları çalıştırmak için aşağıdakilerden birini kullanabilirsiniz: DoCmd.RunSQL veya CurrentDb.Execute yöntemler.
SQL Seçimi
Bu örnek, bir kayıt kümesi açmak için SQL Select deyimini kullanacaktır:
Dim rs As Recordset Set rs = CurrentDb.OpenRecordset("num=0 olan Tablo1'den * seçin", dbOpenDynaset)
SQL Güncelleme Tablosu
Bu VBA kodu satırı, bir Tabloyu güncellemek için DoCmd.RunSQL yöntemini kullanır:
DoCmd.RunSQL ("GÜNCELLEME tablosu1 SET num =0 burada num=999")
Veya veritabanı nesnesinin .Execute yöntemini kullanabilirsiniz:
CurrentDb.Execute "GÜNCELLEME tablosu1 SET num =0 burada num=999"
SQL Değiştirme Tablosu
Bu VBA kodu satırı, Tabloyu Değiştirmek için DoCmd.RunSQL'i kullanır:
DoCmd.RunSQL ("TABLO DEĞİŞTİR Tablo3 SÜTUN EKLE Maaş parası")
Veya veritabanı nesnesinin .Execute yöntemiyle:
CurrentDb.Execute "TABLO DEĞİŞTİR Tablo3 SÜTUN EKLE Maaş parası"
Bırakma Tablosu
Bu VBA kodu satırı, Tabloyu Değiştirmek için DoCmd.RunSQL'i kullanır:
DoCmd.RunSQL ("DROP Tablo Tablosu1")
Veya veritabanı nesnesinin .Execute yöntemiyle:
CurrentDb.Execute "DROP Table Table1"
SQL Sil
Bu kod, bir tablodan kayıtları silmek için DoCmd.RunSQL'i kullanır:
DoCmd.RunSQL ("Tablo1'den SİL, burada num=999")
Veya veritabanı nesnesinin .Execute yöntemiyle:
CurrentDb.Execute "num=999 olan tablo1'DEN SİL"
İçine SQL Ekle
Bu DoCmd.RunSQL örneği, kayıtları bir tabloya ekler:
DoCmd.RunSQL ("Tablo1'e EKLE ( LastName, dob, num ) DEĞERLER ('L1',#01/01/2001#,78)")
Veya veritabanı nesnesinin .Execute yöntemiyle:
CurrentDb.Execute "INERT INTO Table1 ( LastName, dob, num ) DEĞERLER ('L1',#01/01/2001#,78)"
SQL Oluşturma Tablosu
Bu kod, SQL kullanarak bir Tablo oluşturacaktır:
CurrentDb.Execute "CREATE TABLE Table1(KeyID SAYAÇ KISITLAMASI BirincilAnahtar BİRİNCİL ANAHTAR, Alan1 METİN, Alan2 METİN)"
Veya veritabanı nesnesinin .Execute yöntemiyle:
CurrentDb.Execute "CREATE TABLE Table1(KeyID SAYAÇ KISITLAMASI BirincilAnahtar BİRİNCİL ANAHTAR, Alan1 METİN, Alan2 METİN)"
Dizin Oluştur
Bu VBA kodu satırı, Tabloyu Değiştirmek için DoCmd.RunSQL'i kullanır:
DoCmd.RunSQL ("CREATE INDEX " & IndexName & " ON " & TableName & "(" & ColumnName & ");")
Veya veritabanı nesnesinin .Execute yöntemiyle:
CurrentDb.Execute "CREATE INDEX " & IndexName & " ON " & TableName & "(" & ColumnName & ");"
Düşme Endeksi
Bu VBA kodu satırı, Tabloyu Değiştirmek için DoCmd.RunSQL'i kullanır:
DoCmd.RunSQL "Tablo1 ÜZERİNDEKİ İNDEKS KIMLIĞINI BIRAKIN;"
Veya veritabanı nesnesinin .Execute yöntemiyle:
CurrentDb.Execute "INDEX ID ON Table1;"
Veritabanı yarat
Bu kod bir veritabanı oluşturacaktır (SQL yok):
Access.DBEngine.CreateDatabase "c:\Temp\testDB1.accdb", DB_LANG_GENERAL
SQL Sorguları
Sorguyu Aç
Kaydedilmiş bir sorguyu açmak için DoCmd.OpenQuery'yi kullanabilirsiniz:
DoCmd.OpenQuery "qry_1", acViewNormal, acEdit
Sorguyu çalıştır
CurrentDB.Execute bir sorgu yürütür:
CurrentDb.Execute "qry_1", dbFailOnError
Sorguyu Excel'e Aktar
DoCmd.OutputTo, bir sorguyu Excel'e aktarır:
DoCmd.OutputTo acOutputQuery, "Query1", acFormatXLS, "c:\temp\ExportedQuery.xls"