在鏈接到一個SQL Server數據庫的Access項目(即.adp文件)中,你平時經常使用的Access函數通常是不支持的。但大多數時候,都可換用SQL Server支持的一個Transact-SQL(T-SQL)函數。一個特例是Access的空值(Null)函數Nz和IsNull;它們的功能相似,但並不是Access和T-SQL都能支持它們。本文要討論在什麼時候以及如何使用這兩個函數來處理空值。
空值的重要性
空值是完全合法的數據庫錄入項,它們能提供的信息可能超過你的想象。空值指明一個值是未知的,但這並不是說該值不可接受或者不存在。空值表明一個值尚未確定,而且除非確定了合適的值,否則該值將保持未知狀態,也就是為一個空值。
開發者的職責是判斷空值可能在什麼時候出現,並針對性地處理那些值。一個方案是在數據輸入時拒絕空值,從而完全回避它們。但這樣一來,你的數據將完全禁止空值,所以該方案的缺點在於,在你創建一條記錄時,所有數據都必須是已知的。遺憾的是,對於大多數人來說,這個方案都不現實。以醫院急診室的數據庫系統為例,是不是因為數據錄入員不知道一個病人的中間名,就拒絕為其創建一條記錄呢?所以,對空值進行妥善處理可提供更靈活的方案,因為即使數據錄入員當時不知道所有數據,也能成功地創建記錄。
認識到空值無法避免之後,你的職責就是正確處理它們,確保它們不會導致錯誤。正確處理空值有兩方面的好處:
可與用戶共享有意義的信息。
可提前捕捉空值,避免空值在後續的表達式中返回錯誤。
Access 中的空值Access提供大量工具來操縱空值:
Is Null——在條件表達式和SQL WHERE子句中使用Is Null。
IsNull——將IsNull用於Visual Basic for Applications(VBA)。