Microsoft Access 2002 projeleri (.adp) ve veri erişimi sayfaları, ANSI SQL-92 standardını özel olarak desteklemektedir. Bu durum, Access projelerinde filtre ifadeleri ve sorguları geliştirme şeklinizi etkileyecektir. Sonuç veri kümeleri de veri erişim sayfalarında farklı görüntülenecektir. Access'in önceki sürümleri ANSI SQL-89 sözdizimini desteklemekteydi. ANSI SQL-89 ve ANSI SQL-92 joker karakter sözdizimi hakkında daha fazla bilgi almak için, Microsoft Access Yardımı'na başvurun.
Access projesindeki filtreler ve sorgular
Access projeleri bir Microsoft SQL Server veya Microsoft SQL Server 2000 Desktop Engine (eski adı MSDE) arka plan veritabanına bağlanmak üzere tasarlanmışlardır. Standart Sorgu Dili (Standard Query Language - SQL) ilişkisel veritabanlarıyla çalışan standart bir etkileşimli programlama dilidir. Transact-SQL dili, SQL Server ve Desktop Engine tarafından kullanılan doğal bir SQL türüdür. Transact-SQL, en son SQL standardı olan ANSI SQL-92'yi destekler. SQL Server verileri üzerinden sorgu ve filtre ifadeleri çalıştıran Access 2002 projeleri, bu işlemleri ANSI SQL-92 sözdizimini kullanarak yapmalıdırlar.
Access veritabanları, yerel verileri sorgulamak için Jet Database Engine'i kullanır. Jet, ANSI SQL-89 standardını (bundan böyle Jet SQL sözdizimi) destekler. Jet SQL sözdizimi, ANSI SQL-92 standardından çeşitli şekillerde farklıdır. Örneğin, Jet SQL sözdizimi, birden çok karakterden oluşan joker karakteri yerine yıldız işaretini (*) kullanırken, ANSI SQL-92 sözdizimi yüzde işaretini (%) kullanır.
Örneğin, U harfiyle başlayan bir ülkeden olan tüm müşteriler için, Jet SQL sözdizimi:
SELECT * FROM Müşteriler WHERE Ülke Like 'U*'
U harfiyle başlayan bir ülkeden olan tüm müşteriler için ANSI SQL-92 sözdizimi:
SELECT * FROM Müşteriler WHERE Ülke Like 'U%'
Aynı şekilde, Access 2002 projelerindeki sorgu ifadelerinde de ANSI SQL-92 standardı kullanılmaktadır. Eski sürüm Access projelerinden Access 2002'ye geçiyorsanız, tüm ifadeleri beklenen sonuçları döndürdüklerinden emin olmak için gözden geçirmelisiniz.
Örneğin, MüşteriAdı = 'B*' arayan bir makro ifadeniz varsa, artık B harfiyle başlayan tüm müşterileri bulamaz, çünkü yıldız işareti (*) ANSI SQL-92 joker karakteri değildir. Bu durumu çözmek için, makro ifadelerinizi yüzde işareti (%) joker karakterini kullanacak şekilde değiştirin: MüşteriAdı = 'B%'.
Veri erişimi sayfalarındaki sonuç veri kümeleri
Jet Database Engine, Access (.mdb) veritabanındaki verilerle çalışmak için kullanılır ve ANSI SQL-89 standardını destekler. Ancak Access veritabanlarındaki veri erişimi sayfaları, Jet'e ActiveX Data Objects (ADO) ve Jet OLEDB sağlayıcısı kullanarak bağlanırlar. ADO ve OLEDB her zaman ANSI SQL-92 sözdizimini destekler. Bu yüzden veri erişimi sayfaları ANSI SQL-92 sözdizimini kullanmak zorundadır. Bunun anlamı, aynı sorguya bağlanan bir formun ve sayfanın farklı sonuç veri kümeleri döndürebileceğidir.