用零長度字元指示不存在資料
若要在 Microsoft Access 資料庫中指示不存在資料,可以在“文本”或“備忘”欄位輸入零長度字串 (零長度字串:不含字元的字串。可以使用零長度字串來表明您知道該欄位沒有值。輸入零長度字串的方法是鍵入兩個彼此之間沒有空格的雙引號 (" ")。)。在串連到 Microsoft SQL Server 資料庫的 Microsoft Access 項目 (Microsoft Access 項目:與 Microsoft SQL Server 資料庫連接且用於建立客戶/伺服器應用程式的 Access 檔案。專案檔中不包含任何資料或基於資料定義的對象(如表或視圖)。)中,可以在其資料類型 (資料類型:決定欄位可擁有的資料類型的欄位特徵。資料類型包括 Boolean、Integer、Long、Currency、Single、Double、Date、String 和 Variant(預設)。)為 varchar 或 nvarchar 的欄位中輸入零長度字串。
開啟資料表 (“資料表”視圖:以行列格式顯示來自表、表單、查詢、視圖或預存程序的視窗。在“資料表”視圖中,可以編輯欄位、添加和刪除資料,以及搜尋資料。),或在“表單”視圖 (“表單”視圖:一個顯示表單以便顯示或接受資料的視窗。“表單”視圖是添加和修改表中資料的主要方式。在該視圖中還可以更改表單的設計。)中開啟表單。
若要在欄位中輸入零長度字串,請鍵入中間不帶空格的雙引號 (" ")。
即使在移到其他欄位或對象時雙引號將消失,但該欄位仍為零長度字串。
Null 值與零長度字串的區別 (MDB)
/*注釋 本主題中的資訊僅適用於 Microsoft Access 資料庫 (.mdb)。*/
在查看含有 Null (Null:可以在欄位中輸入或用於運算式和查詢,以標明丟失或未知的資料。在 Visual Basic 中,Null 關鍵字表示 Null 值。有些欄位(如主鍵欄位)不可以包含 Null 值。) 值和零長度字串 (零長度字串:不含字元的字串。可以使用零長度字串來表明您知道該欄位沒有值。輸入零長度字串的方法是鍵入兩個彼此之間沒有空格的雙引號 (" ")。)的資料時,欄位看起來是相同的,都沒有任何值。但可以用運算式 (運算式:算術或邏輯運算子、常數、函數和欄位名稱、控制項和屬性的任意組合,計算結果為單個值。運算式可執行計算、操作字元或測試資料。)來區分 Null 值和零長度字串。
在“設計”視圖 (“設計”視圖:顯示資料庫物件(包括:表、查詢、表單、宏和資料訪問頁)的設計的視窗。在“設計”視圖中,可以建立資料庫物件和修改現有資料庫物件的設計。)中開啟表單、報表或資料訪問頁。
在查詢設計網格 (設計格線:在查詢“設計”視圖或“進階篩選/排序”視窗中設計查詢或篩選時所用的網格。對於查詢,該網格以前稱為“QBE 網格”。)的欄位中,或在未繫結控制項 (未繫結控制項:未與基礎資料表、查詢中的欄位或 SQL 陳述式串連的控制項。未繫結控制項通常用於顯示資訊性文本或裝飾性圖片。)的控制項來源中,鍵入下列運算式。將 fieldname 替換為包含 Null 值和零長度字串的欄位名稱。
=IIf(IsNull([fieldname]),"Unknown",Format([fieldname],"@;\ZLS"))
如果欄位包含 Null,則運算式返回 “Unknown”,如果欄位包含零長度字串,則運算式返回“ZLS”。否則,運算式將值返回到該欄位中。
事情出現在工作中一次抓取網上資訊的時候,可能考慮不全,抓到庫中的資訊有部分是空的,這樣,我的必需將空的記錄刪除,試了好多辦法不行,最後才找到了上面的微軟的ACCESS協助文檔才解決問題。
執行:
sql="delete from news where IIf(IsNull([City]),'Unknown',Format([City],'@;\ZLS'))='Unknown'"
conn.execute(sql)
OK,解決。