Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 如何删除空白行?_Ms Access - Fatal编程技术网

Ms access 如何删除空白行?

Ms access 如何删除空白行?,ms-access,Ms Access,使用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 需要查询帮助 Delete from table1 where ID=' ' and Name=' '

使用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

需要查询帮助

Delete from table1 
where ID=' '
and Name=' '
and Value=' '


如果字段中的字符串长度为零,并且可以包含空格,则有一种解决方案:

  DELETE FROM table1 
  WHERE Len(Trim(ID & ''))=0 
  AND Len(Trim(Name & ''))=0 
  AND Len(Trim(Value & ''))=0;
DELETE tblYourTable.*, tblYourTable.[OneFieldThatIsAlwaysEmpty]
FROM tNewTable
WHERE tNewTable.[OneFieldThatIsAlwaysEmpty] Is Null;
我假设您编写的SQL是在Access本身中执行的,因为Trim()和Len()是Access/VBA函数(两者都是由使用VBA的Access表达式服务提供的,因此无法通过ODBC或OLEDB执行)

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


我还希望您的字段名称是假的,因为名称和值都是访问保留字,应该避免在Access/Jet/ACE中的任何级别的对象名称中使用。我建议使用一种更通用的解决方案:

  DELETE FROM table1 
  WHERE Len(Trim(ID & ''))=0 
  AND Len(Trim(Name & ''))=0 
  AND Len(Trim(Value & ''))=0;
DELETE tblYourTable.*, tblYourTable.[OneFieldThatIsAlwaysEmpty]
FROM tNewTable
WHERE tNewTable.[OneFieldThatIsAlwaysEmpty] Is Null;
当然,这需要表中有一个真正为空(Null)的字段

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

请注意,如果您的表不是Access中的实际表,而是从Excel中获取数据的所谓“链接表”,则删除查询将不起作用。在这种情况下,您首先应该将数据转换为真正的访问表


(这已在Access 2010中测试过)

请注意空白。制表符或回车符。这可能会导致sql失败,因为该字段不为NULL且不包含单个空格。您可以使用ms access中的一些内置函数,例如isnumeric()来优化删除条件。isnumeric()?这会有什么帮助?这没有键,因此不是表(这是问题的一半)。