Access
 sql >> Teknologi Basis Data >  >> RDS >> Access

Fungsi IIf() vs. Pernyataan IIf()

IIf() fungsi dan IIf() pernyataan pada dasarnya adalah hewan yang berbeda.

Sayangnya, mereka hampir tidak bisa dibedakan. Namun, penting untuk dapat melakukannya. Mengapa?

Karena ini IIf() fungsi adalah kesalahan runtime yang menunggu untuk terjadi:

IIf(Attempts = 0, 0, Successes / Attempts)

Sementara ini IIf() pernyataan akan mengembalikan nilai dengan aman meskipun Attempts = 0 :

IIf(Attempts = 0, 0, Successes / Attempts)

Jadi, bisakah kamu menemukan perbedaan di antara keduanya?

Membedakan Mereka

Jika Anda tidak dapat melihat perbedaan antara kedua sampel di atas, itu karena tidak ada perbedaan.

IIf() fungsi terlihat identik dengan IIf() pernyataan.

Perbedaannya terletak pada bagaimana–atau lebih tepatnya, di mana– mereka dievaluasi.

  • Fungsi IIf adalah anggota perpustakaan standar VBA.Interaction.
  • Pernyataan IIf dievaluasi oleh Layanan Ekspresi mesin database Jet/ACE (acees.dll).

Saya menulis tentang perbedaan antara kode dan ekspresi di sini:

Ekspresi vs. KodeKapan kode bukan kode? Ketika itu ekspresi. Apa bedanya dan siapa yang benar-benar peduli? Mari kita jelajahi. Tidak Lagi SetMike Wolfe

Perbedaan Mendasar Antara Fungsi IIf() dan Pernyataan IIf()

Tiga kata:evaluasi hubungan pendek.

  • Pernyataan IIf memilikinya.
  • Fungsi IIf tidak.

Apa itu Evaluasi Sirkuit Pendek?

Dalam evaluasi hubung singkat, kode hanya mengevaluasi ekspresi yang diperlukan untuk menentukan hasilnya.

Pernyataan IIf dan fungsi IIf keduanya mengambil tiga argumen:

  • expr: kondisi boolean
  • truepart: hasil untuk kembali jika expr itu Benar
  • salah: hasil untuk kembali jika expr salah

Dengan pernyataan IIf, hanya dua dari argumen tersebut yang pernah dievaluasi:expr dan–bergantung pada hasil expr– baik truepart ATAU bagian palsu .

Dengan fungsi IIf, ketiga argumen HARUS dievaluasi bahkan sebelum diteruskan ke fungsi tersebut.

Mengapa Itu Penting

Mari kita kembali ke kode contoh asli:

IIf(Attempts = 0, 0, Successes / Attempts)

Apa yang terjadi jika nilai Attempts adalah nol?

Jika pernyataan

  • expr mengevaluasi ke Benar.
  • bagian sejati mengevaluasi ke 0 .
  • Pernyataan mengembalikan 0 .

Jika fungsi

  • expr mengevaluasi ke Benar.
  • bagian sejati mengevaluasi ke 0 .
  • Yang salah mengevaluasi ke #ERROR#:Pembagian dengan nol

Fungsi versi mengembalikan kesalahan karena dipaksa untuk mengevaluasi truepart dan bagian palsu ekspresi.

Di mana IIf Diperlakukan sebagai Pernyataan?

Jika dievaluasi sebagai pernyataan di tempat-tempat berikut:

  • Permintaan
  • Properti Formulir/Laporan/Kontrol (mis., Sumber Kontrol Kotak Teks)
  • Fungsi Access Application.Eval()

Untuk detail selengkapnya–termasuk cara menguji secara pasti apakah IIf diperlakukan sebagai pernyataan atau fungsi–baca artikel saya tentang perbedaan antara ekspresi dan kode:Ekspresi vs. Kode .

Referensi Eksternal

Fungsi IIf (Visual Basic untuk Aplikasi)Topik referensi Office VBAMicrosoft Docso365devx

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menggunakan Perintah Ringkas dan Perbaiki di Access

  2. Microsoft Azure:Apa itu dan Bagaimana Manfaat Bisnis Anda

  3. 5 Alasan Microsoft Access Sangat Bagus untuk Startup

  4. Kelas Dasar MS-Access dan Objek Turunannya

  5. Eksklusif! Bergabunglah dengan kami Dengan Tamu Kami Michal Bar, Manajer Program Akses