如何删除空白行?

问题描述 投票:0回答:4

使用 Access 2003

表1

ID Name  Value

001 Raja 100
002 Ramu 200


004 Raqu 500



008 Ravi 250

...

这里我想删除表格中的空白行?

Delete from table1 ...?

预期产出

ID 名称 值

001 Raja 100
002 Ramu 200
004 Raqu 500
008 Ravi 250

...,

需要查询帮助。

ms-access
4个回答
7
投票
Delete from table1 
where ID=' '
and Name=' '
and Value=' '

Delete from table1 
where ID is null
and Name is null
and Value is null

2
投票

如果您的字段允许零长度字符串并且其中可以包含空格,那么这是一种解决方案:

  DELETE FROM table1 
  WHERE Len(Trim(ID & ''))=0 
  AND Len(Trim(Name & ''))=0 
  AND Len(Trim(Value & ''))=0;

我假设您正在编写要在 Access 本身中执行的 SQL,因为 Trim() 和 Len() 是 Access/VBA 函数(两者都是由使用 VBA 的 Access 表达式服务提供的,因此这无法通过 ODBC 工作或 OLEDB)。

现在,这会忽略这些字段中的其他类型的问题,例如制表符或 Cr/Lf 字符。如果上面的操作没有删除所有行,那么您必须在字段中查看实际字符是什么,然后将其清除。

我还希望您的字段名称是假的,因为 NAME 和 VALUE 都是 Access 保留字,应该避免出现在 Access/Jet/ACE 中任何级别的对象名称中。


0
投票

我会推荐一个更通用的解决方案:

DELETE tblYourTable.*, tblYourTable.[OneFieldThatIsAlwaysEmpty]
FROM tNewTable
WHERE tNewTable.[OneFieldThatIsAlwaysEmpty] Is Null;

当然,这要求您的表中有一个真正为空(Null)的字段

优点是您不必定义表中的所有单个字段。在上面的答案中,这没有问题,因为示例表只有两个或三个字段。但通常桌子更大。

请注意,当您的表不是 Access 中的实际表而是获取数据的所谓“链接表”时,删除查询将不起作用。来自 Excel。在这种情况下,您首先应该将数据传输到真正的 Access 表中。

(已在Access 2010中测试过)


0
投票

对不起论坛... 我没有其他答案,但我有这个:

我完全同意那个人的说法,他希望那些为 vba 问题提供建议和/或解决方案等的人需要准确告知编码将插入的位置......什么属性:表单、查询、控制、加载,当前等

论坛会员...我、提出此事的人以及所有有一天会发现这个论坛的人将非常感激。

祝你们每个人平安,享受剩下的夜晚,并始终努力保持日夜安全。

一份爱, 火焰...

© www.soinside.com 2019 - 2024. All rights reserved.