設為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

返回列表 發(fā)新帖
查看: 3669|回復: 7
打印 上一主題 下一主題

[Access本身] 【Access小品】搞球不清 -- Null的概述

[復制鏈接]
跳轉到指定樓層
1#
發(fā)表于 2015-5-28 16:25:12 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  版友三個太陽同志用了一個IF me.Text0=Null Then這樣一個判斷,沒有能得到正確的結果。于是告訴他應該寫做:IF isnull(me.Text0) Then。本來這個問題的解答就此該結束,但三個太陽同志繼續(xù)問他的寫法為什么是錯的。這就使得問題復雜化了,因為對此問題我也沒全然搞清楚。

  三個太陽同志的問題關乎Null,而Null就是一個搞球不清的東西。Null不是字符串空,也不是數字0,而是值不確定狀態(tài),對Null的通俗理解就是搞球不清。1和1可以比較,1和2也可以比較。但是兩個搞球不清是無法比較的,兩個不確定也是無法比較的。所以Null與Null當然也就無法構成一個邏輯表達式了。當文本框中沒有填寫任何東西時,看起來它是空,實際需要將其理解為不確定。所以當文本框沒有填寫任何東西時它是Null,但它卻不能與Null這個字面量進行比較。

  實際上在不同程序語言中,關于Null還是有些差異的。在網頁的腳本語言JavaScript中,存在Undefined類型和Null類型,VBa中的Null似乎比較接近JavaScript中Undefined類型。在類C語言中(C、Java等),Null表示一個空對象指針,在類B語言中則是用Nothing來表示。無論如何Null總是琢磨不定和難以理解的。

  好在我們通常不大需要深入的理解Null是什么,而主要是需要判斷是不是Null了。在這個層面上,我們可以混淆一些概念,并知道不同的情況下的判斷怎么去處理。一般來講在Vba中,我們能對控件的取值是否為Null進行判斷,我們可以用Isnull這個函數進行。而在控件的有效性規(guī)則屬性中,我們需要寫成Is not Null。在查詢中我們通常也Is Null。如果你對這些都感到不可理解,你還可以用Nz函數將Null轉換為一個確定的值,然后進行比較。

  除了判斷外,我們是可以用Null進行某些賦值處理的。比如我們可以為控件的值賦值為Null,或者對某個數據表字段更新查詢?yōu)镹ull。不過你如果試圖給一個內存變量賦值Null,那是通常是會出錯的,除非這個內存變量的類型為Variant。如果這個變量是Object,比如窗體變量、控件變量等,我們可以給它們賦值Nothing,以釋放它們。

  綜上所述,Null就是個搞球不清,既然是搞球不清,也就不必去刻意地搞清楚。大概齊知道怎么回事,怎么處理就行了。


本帖被以下淘專輯推薦:

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 分享淘帖1 訂閱訂閱
2#
發(fā)表于 2015-5-28 16:40:42 | 只看該作者
嗯,定義廣泛
3#
發(fā)表于 2015-5-28 17:21:18 | 只看該作者
按我理解,Null為真空(當然不是空字符串了)。既然是真空,那就是什么都沒有,數據類型自然算是不確定了。兩個不確定類型的數據,是無法比較的。因此“Null=Null”是不可能返回TRUE的,同樣地,Null+Null當然也不會返回數值了。
就好比:一頭豬+一頭牛,不能算是2吧?
4#
發(fā)表于 2015-5-28 20:51:18 | 只看該作者
深。。
回復

使用道具 舉報

5#
發(fā)表于 2015-6-22 09:02:45 | 只看該作者
有時我會用 if len(me.Text0)>0 then 代替 if isnull(me.Text0)=true then
空值不好比較,它是一個變體。
6#
發(fā)表于 2016-4-20 10:38:24 | 只看該作者
ROYCH 比喻不錯呀  就好比:一頭豬+一頭牛,不能算是2吧? 是兩種動物呀!

點擊這里給我發(fā)消息

7#
發(fā)表于 2016-4-20 11:30:47 | 只看該作者
Null = Null 返回 Null ,不會返回True或False
8#
發(fā)表于 2016-8-14 17:28:03 | 只看該作者
roych: 按我理解,Null為真空(當然不是空字符串了)。既然是真空,那就是什么都沒有,數據類型自然算是不確定了。兩個不確定類型的數據,是無法比較的。因此“Null=Nul ...


您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

QQ|站長郵箱|小黑屋|手機版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2025-7-17 00:48 , Processed in 0.173217 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表