首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Access 資料庫刪除空記錄:零長度字串 vs NULL 完整指南

     編輯:MySQL 資料庫相關知識

核心概念區分

特性NULL零長度字串 (ZLS)
含義 值不存在/未知 明確知道「沒有值」
輸入方式 留空或 Ctrl+0 輸入 "" 兩個雙引號
判斷函數 IsNull([Field]) Format([Field], "@;ZLS") = "ZLS"
主鍵允許 不允許 允許(但不建議)

識別混雜資料的查詢

SELECT 
    IIF(IsNull([City]), 'NULL', 
        IIF(Format([City], '@;ZLS') = 'ZLS', 'ZLS', 'VALUE')) AS CityStatus
FROM News;

刪除「空白」記錄的正確 SQL

視業務定義「空白」為 NULL 或 ZLS 或兩者皆是:

-- 刪除 City 為 NULL 或 ZLS 的記錄
DELETE FROM News
WHERE IsNull([City]) OR Format([City], '@;ZLS') = 'ZLS';

-- 僅刪除 ZLS(保留 NULL)
DELETE FROM News
WHERE Format([City], '@;ZLS') = 'ZLS';

-- 僅刪除 NULL(保留 ZLS)
DELETE FROM News
WHERE IsNull([City]);

UI 端快速清理技巧

  1. 開啟資料表檢視 → 依欄位排序 → 選取連續空白列 → Delete。
  2. 查詢設計 → 新增條件 Is Null Or ="" → 改為刪除查詢 → 執行。
  3. VBA 批次處理:
Dim db As DAO.Database, rs As DAO.Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT * FROM News WHERE IsNull(City) OR City = ''")
Do Until rs.EOF
    rs.Delete
    rs.MoveNext
Loop

預防策略

  • 表設計階段:文字欄位設 Required = Yes + AllowZeroLength = No 強制不可空。
  • 表單輸入驗證:BeforeUpdate 事件檢查 Me.City & "" = "" 取消更新。
  • 匯入資料前:Excel 用 IF(ISBLANK(A2), "N/A", A2) 預填預設值。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved