Permintaan akses dengan karakter wildcard tidak mengekspor data ke dokumen XML


BUG #: 8808 (pemeliharaan konten)bug #: 232596 (officenet) artikel ini hanya berlaku untuk Microsoft Access database (MDB).Moderat: membutuhkan dasar makro, coding, dan keterampilan interoperabilitas.

Gejala


Saat Anda mengekspor permintaan akses ke dokumen XML, dan permintaan berisi karakter wildcard Microsoft jet seperti tanda bintang (*) dalam kriteria, data tidak diekspor ke dokumen XML. Oleh karena itu, dokumen XML resultan tidak berisi data apa pun. Permintaan fungsi dengan benar jika Anda menjalankan query yang sama dengan menggunakan akses.

Penyebab


Perilaku ini terjadi saat Anda mengekspor ke XML. XML menggunakan ActiveX data Objects (ADO) untuk permintaan data dari pangkalan data. Ketika Anda menggunakan karakter wildcard jet khusus dalam permintaan akses, permintaan mengembalikan data tidak ada. Masalah ini terjadi karena ADO mengenali hanya American National Standards Institute (ANSI) 92 karakter wildcard.

Penyelesaian Masalah


Untuk mengatasi masalah ini, gunakan salah satu dari metode berikut ini.

Metode 1

Anda dapat menulis ulang permintaan untuk mengganti karakter wildcard jet khusus dengan karakter wildcard ANSI 92. Sebagai contoh, permintaan asli mungkin terlihat sama dengan karakter wildcard *:
SELECT Customers.CustomerIDFROM CustomersWHERE (((Customers.CustomerID)  Like "A*"));
Anda dapat menulis ulang permintaan sebagai berikut:
SELECT Customers.CustomerIDFROM CustomersWHERE (((Customers.CustomerID)  Like "A%"));
Catatan Jika Access database tidak dikonfigurasi untuk kompatibilitas 92 ANSI, ketika Anda menjalankan kueri ditulis ulang dari akses, tidak ada data yang dikembalikan. Namun, dokumen XML diekspor yang didasarkan pada permintaan ditulis ulang mengembalikan hasil yang diharapkan.

Metode 2

Anda dapat menulis ulang permintaan sehingga kriteria permintaan tidak berisi karakter wildcard. Sebagai contoh, permintaan asli mungkin terlihat sama dengan karakter wildcard *:
SELECT Customers.CustomerIDFROM CustomersWHERE (((Customers.CustomerID)  Like "A*"));
Anda dapat menulis ulang permintaan sebagai berikut:
SELECT Customers.CustomerIDFROM CustomersWHERE Left(CustomerID,1) = "A";

Metode 3

Saat Anda mengekspor data ke dokumen XML, Anda dapat menentukan apakah akan menerapkan filter yang ada pada objek. Daripada menentukan karakter wildcard dalam kriteria kueri, Anda dapat membuat filter dengan filter string yang setara dengan kriteria yang Anda inginkan (seperti "A *") dan kemudian menerapkan filter ini selama proses ekspor XML. Untuk melakukannya, ikuti langkah berikut, tergantung pada versi akses.

Akses 2003

  1. Buka database sampel Northwind.
  2. Masukkan menu, klik permintaan.
  3. Di kotak dialog kueri baru , pilih tampilan desain, dan kemudian klik OK.
  4. Pada menu tampilan , klik tampilan SQL.
  5. Di jendela permintaan , tempel kueri berikut ini:
    SELECT Customers.CustomerIDFROM Customers;
    Catatan Anda dapat melihat bahwa kriteria permintaan dihapus. Oleh karena itu, permintaan tidak berisi karakter wildcard.
  6. Pada file menu, klik Simpan.
  7. Di kotak nama permintaanSimpan sebagai kotak dialog, ketik Query1, dan kemudian klik OK.
  8. Pada menu tampilan , klik tampilan datasheet.
  9. Pada menu catatan , arahkan ke filter, dan kemudian klik lanjut filter/Urutkan.
  10. Dalam daftar bidang , pilih customerid.
  11. Di kotak kriteria di bawah customerid, tempel kode berikut ini:
    Like "A*"
  12. Pada menu filter , klik Terapkan filter/Urutkan.
  13. Pada file menu, klik Simpan.
  14. Pada file menu, klik tutup.
  15. Di jendela database , klik kueri.
  16. Klik kanan Query1, dan kemudian klik ekspor.
  17. Di ekspor query ' Query1 ' untuk kotak dialog, pilih XML dalam daftar Simpan sebagai jenis , dan kemudian klik ekspor.
  18. Di kotak dialog XML ekspor , klik opsi lainnya.
  19. Di kotak dialog XML ekspor , pilih tab data . Di bawah catatan untuk mengekspor, klik untuk memilih kotak centang Terapkan filter yang ada , dan kemudian klik OK.

Akses 2007

  1. Buka database sampel Northwind.
  2. Pada tab buat , klik desain kueri, lalu klik tutup.
  3. Pada tab desain , klik tampilan SQL dalam grup hasil .
  4. Di jendela permintaan , tempel kueri berikut ini:
    SELECT Customers.[First Name]FROM Customers;
    Catatan Anda dapat melihat bahwa kriteria permintaan dihapus. Oleh karena itu, permintaan tidak berisi karakter wildcard.
  5. Klik tombol Microsoft Office, dan kemudian klik Simpan.
  6. Di kotak nama permintaanSimpan sebagai kotak dialog, ketik Query1, dan kemudian klik OK.
  7. Home tab, di grup tampilan , klik tampilan, dan kemudian klik tampilan datasheet.
  8. Home tab, klik lanjut dalam menyortir & Filter grup, dan kemudian klik lanjut filter/Urutkan.
  9. Dalam daftar bidang , pilih nama depan
  10. Di kotak kriteria di bawah nama depan, tempel kode berikut:
    Like "A*"
  11. Home tab, klik lanjut dalam menyortir & Filter grup, dan kemudian klik menerapkan filter Sortir.
  12. Klik tombol Microsoft Office, dan kemudian klik Simpan.
  13. Klik kanan Query1, arahkan ke ekspor, klik XML file, dan kemudian klik OK.
  14. Di kotak dialog XML ekspor , klik opsi lainnya.
  15. Di kotak dialog XML ekspor , klik tab data .
  16. Di bawah catatan untuk mengekspor, pilih opsi Terapkan filter yang ada , dan kemudian klik OK.
  17. Di kotak dialog ekspor-XML file , klik tutup.

Status


Microsoft telah mengkonfirmasi bahwa ini adalah bug di dalam produk Microsoft yang tercantum di bagian awal artikel ini.

Informasi Selengkapnya


Langkah untuk mereproduksi masalah di Access 2003

  1. Buka database sampel Northwind.
  2. Masukkan menu, klikpermintaan.
  3. Di kotak dialog kueri baru , pilihtampilan desain dan kemudian klik OK.
  4. Pada menu tampilan , klik tampilan SQL.
  5. Di jendela permintaan , tempel kueri berikut ini:
    SELECT Customers.CustomerIDFROM CustomersWHERE (((Customers.CustomerID)  Like "A*"));
  6. Klik Simpan pada menu file.
  7. Di kotak nama permintaan yang ada di kotak dialogSimpan sebagai , ketikQuery1.
  8. Pada file menu, kliktutup.
  9. Klik kanan Query1 dan kemudian klik ekspor.
  10. Di kotak dialog ekspor query ' Query1 ' untuk... , pilih XML dalam daftar Simpan sebagai jenis dan kemudian klik ekspor.
  11. Di kotak dialog XML ekspor , klikOK untuk menyimpan berkas XML yang terkait di lokasi asali.
  12. Di Microsoft Internet Explorer, Buka berkas XML yang diekspor. Anda dapat melihat bahwa berkas XML diekspor yang didasarkan pada permintaan tertentu tidak berisi data apa pun.

Referensi


Untuk informasi lebih lanjut tentang ANSI 92 sintaks, ketik tentang ANSI SQL query mode di asisten kantor dan kemudian klik Cari.