Farklı kaynaklardan sorgu bağlantılı SQL Server tabloları çalıştırdığınızda sonuçlar görünmez
Özgün KB numarası: 824169
Not
Bu makale, Microsoft Access veritabanı (.mdb) dosyası veya Microsoft Access veritabanı (.accdb) dosyası için geçerlidir. Temel makro, kodlama ve birlikte çalışabilirlik becerileri gerektirir.
Belirtiler
Farklı kaynaklardan veya veritabanlarından bağlantılı Microsoft SQL Server tablolarını birleştiren bir Microsoft Access veritabanında sorgu çalıştırdığınızda, sorgu hiçbir veri döndürmeyebilir.
Ancak, aynı kaynak veya veritabanındaki 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 geçici olarak çözmek 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. LIKE işlecini kullanarak ANSI JOIN kullanmak yerine farklı veritabanlarındaki bağlantılı tablolardaki bir alanı diğer alanla karşılaştırabilirsiniz.
Örneğin, özgün sorgu aşağıdaki gibiyse ve SQL Server veritabanı DB1 ve dbo_db2_table1 dbo_db1_table1 bağlıysa, 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;
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öz dizimi aynı sorguda görünür.
Access veritabanı projesi kullanma
Bu makalenin "Belirtiler" bölümünde belirtilen sorundan kaçınmak için, Microsoft Access veritabanı yerine bir Microsoft Access veritabanı projesi kullanın. Microsoft Access veritabanı projesindeki uygun SQL Server tablolarını bağlayın ve ardından aşağıdaki sorguyu dahil etmek için bir saklı yordam oluşturun (burada dbo_db1_table1 SQL Server veritabanı DB1'den bağlanır ve dbo_db2_table1 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 saklı yordamı çalıştırdığınızda sonuç kümesi görüntülenir.
SQL Server tablolarını içeri aktarma
Bu makalenin "Belirtiler" bölümünde belirtilen sorundan kaçınmak 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 aktarırsanız, içeri aktarılan tablo, tabloyu içeri aktardığınız sırada verilerin anlık görüntüsünü içerdiğinden, içeri aktarılan tablodaki en son verileri kullanamazsınız.
Ek Bilgi
Sorgularda JOIN anahtar sözcüğünü kullanarak Microsoft Access'teki verileri filtreleyebilirsiniz. JOIN anahtar sözcüğü ANSI JOIN ve NON ANSI JOIN olarak sınıflandırılır. ANSI JOIN sorguda JOIN ve ON anahtar sözcüklerini kullanır. NON ANSI JOIN sorguda WHERE yan tümcesi kullanır.
NON ANSI JOIN, ANSI 92 SQL'in evrimi öncesinde daha sık kullanılır ve ANSI JOIN'e yükseltilmiştir. Microsoft, verileri filtrelemek için sorgularınızda ANSI JOIN kullanmanızı önerir.
Başvurular
Yükseltme Sihirbazı'nı çalıştırma hakkında daha fazla bilgi için, Yardım menüsünde Microsoft Office Access Yardımı'na tıklayın, Yardım bölmesindeki Arama kutusuna Yükseltme Sihirbazı yazın ve konuyu görüntülemek için Aramayı başlat'a tıklayın.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin