Farklı kaynaklardan sorgu bağlantılı SQL Server tablolarını çalıştırdığınızda sonuçlar görünmez
Not
Office 365 ProPlus, Microsoft 365 Kurumsal Uygulamaları olarak yeniden adlandırılıyor. Bu değişiklik hakkında daha fazla bilgi için, bu blog yazısını okuyun.
Orijinal KB numarası: 824169
Not
Bu makale, bir Microsoft Access veritabanı (.mdb) dosyası veya bir Microsoft Access veritabanı (.accdb) dosyası için geçerlidir. Temel makro, kodlama ve birlikte çalışabilirlik becerileri gerektirir.
Belirtiler
Bağlı Microsoft SQL Server tablolarını farklı kaynaklardan veya veritabanlarından birleştiren bir Microsoft Access veritabanında sorgu çalıştırdığınızda, sorgu herhangi bir veri döndürmeyebilir.
Ancak, aynı kaynaktan veya veritabanından bağlı SQL Server tablolarına başvuran benzer bir sorgu çalıştırdığınızda, bu sorun oluşmaz.
Geçici Çözüm
Bu sorunu çözüme getirmek için aşağıdaki yöntemlerden birini kullanın:
Sorguyu yeniden yazma
Like anahtar sözcüğüyle birleştirme ölçütlerini kullanmak için Microsoft Access sorgusunu yeniden yazabilirsiniz. ANSI JOIN kullanmak yerine farklı veritabanlarından bağlantılı tablolardaki bir alanı diğer alanla karşılaştırmak için LIKE işlecik kullanabilirsiniz.
Örneğin, özgün sorgu aşağıdaki si ise, dbo_db1_table1 SQL Server veritabanı DB1 ve dbo_db2_table1'den dbo_db2_table2 bağlıysa, SQL Server veritabanı DB2'den bağlanır:
SELECT
dbo_db1_table1.db1_table1_col1,
dbo_db2_table1.db2_table1_col1,
dbo_db2_table2.db2_table2_col1
FROM
(
dbo_db1_table1 INNER JOIN dbo_db2_table1
ON
dbo_db1_table1.db1_table1_col2 = dbo_db2_table1.db2_table1_col2
) INNER JOIN dbo_db2_table2
ON
dbo_db2_table1.db2_table1_col3 = dbo_db2_table2.db2_table2_col3;
sorguyu aşağıdaki gibi yeniden ifade edin:
SELECT
dbo_db1_table1.db1_table1_col1,
dbo_db2_table1.db2_table1_col1,
dbo_db2_table2.db2_table2_col1
FROM
dbo_db1_table1,
dbo_db2_table1 INNER JOIN dbo_db2_table2
ON
dbo_db2_table1.db2_table1_col3 = dbo_db2_table2.db2_table2_col3;
WHERE
(((dbo_db1_table1.db1_table1_col2 LIKE dbo_db2_table1.db2_table1_col2));
Not
Burada hem ANSI JOIN hem de NON ANSI JOIN sözdizimi aynı sorguda görünür.
Access veritabanı projesini kullanma
Bu makalenin "Belirtiler" bölümünde belirtilen sorunu önlemek için, Microsoft Access veritabanı yerine bir Microsoft Access veritabanı projesi kullanın. Microsoft Access veritabanı projesinde uygun SQL Server tablolarını bağlayın ve ardından aşağıdaki sorguyu içerecek şekilde depolanmış bir yordam oluşturun (dbo_db1_table1 SQL Server veritabanı DB1 ve dbo_db2_table1'den bağlanır, dbo_db2_table2 SQL Server veritabanı DB2'den bağlanır):
SELECT
dbo_db1_table1.db1_table1_col1,
dbo_db2_table1.db2_table1_col1,
dbo_db2_table2.db2_table2_col1
FROM
(
dbo_db1_table1 INNER JOIN dbo_db2_table1
ON
dbo_db1_table1.db1_table1_col2 = dbo_db2_table1.db2_table1_col2
) INNER JOIN dbo_db2_table2
ON
dbo_db2_table1.db2_table1_col3 = dbo_db2_table2.db2_table2_col3;
Bu depolanan yordamı çalıştırdığınızda sonuç kümesi görüntülenir.
SQL Server tablolarını alma
Bu makalenin "Belirtiler" bölümünde belirtilen sorunu önlemek için, SQL Server tablolarını Access veritabanına bağlamak yerine SQL Server tablolarını Microsoft Access veritabanına aktarın.
Not
SQL Server tablolarını Access veritabanına aktaracaksanız, içe aktarılan tabloda en son verileri kullanamazsınız, çünkü içe aktarılan tablo, tabloyu içe aktardığınız anda verilerin anlık görüntüsünü içerir.
Daha Fazla Bilgi
Microsoft Access'teki verileri sorgularda JOIN anahtar sözcüğüne kullanarak filtreleyebilirsiniz. JOIN anahtar kelimesi ANSI JOIN ve NON ANSI JOIN olarak sınıflandırılır. ANSI JOIN sorguda JOIN ve ON anahtar kelimelerini kullanır. NON ANSI JOIN sorguda WHERE yan tümcesi kullanır.
NON ANSI JOIN, ANSI 92 SQL'in evriminden önce daha sık kullanılmış ve ANSI JOIN'e yükseltildi. Microsoft, verileri filtrelemek için sorgularınızda ANSI JOIN kullanmanızı önerir.
Başvuru
Yükseltme Sihirbazı'nın nasıl çalıştırılabaşlayacağı hakkında daha fazla bilgi için Yardım menüsünde Microsoft Office Access Help'i tıklatın, Yardım bölmesinde Arama kutusuna Yükseltme Sihirbazı yazın ve sonra konuyu görüntülemek için Aramayı Başlat'ı tıklatın.