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.