查询中用于向表中添加某些空字段的SQL语法

时间:2013-03-08 14:36:04

标签: vba ms-access

我试图创建一个将添加到现有表(tblExceptions)的查询:

  • 字段事件标题,事件日期,姓氏,名字& email - 这些字段必须添加到tblExceptions
  • 该记录为null的所有其他字段。

但应注意,只有在缺少源表(tblData)中的字段时才能添加记录。

我在设计视图中为MS Access中的查询创建了一个相当大的查询,如果该记录包含缺少的数据但是不愿意更改插入,则不会添加空字段。 / p>

有什么想法吗?我认为INSERT INTO可能需要包含一个IF语句 - MS访问是否允许这个?

由于

修改

添加了示例表数据和结构以及应添加的内容

tblData

Event Title | Event Date | Last Name | First Name  | Email               | Age |
__________________________________________________________________________________

            | 02/02/2013 | Collins   | James       | collins@hotmail.com | 24  |

POP ACT     | 01/29/2012 | Romas     | Ian         | pizza@gmail.com     |     |

从上面我们可以看到第一个记录缺少一个事件标题,第二个记录缺少一个Age。那么应该输出到tblExceptions的是:

tblExceptions

 Event Title | Event Date | Last Name | First Name  | Email               | Age
__________________________________________________________________________________

             | 02/02/2013 | Collins   | James       | collins@hotmail.com | 24

 POP ACT     | 01/29/2012 | Romas     | Ian         | pizza@gmail.com     | 

我想的越多,看起来越复杂,因为第一个记录的字段Age是空白而下一个记录是空白的,所以它必须在表中

希望这能澄清升技

1 个答案:

答案 0 :(得分:1)

您可以使用查询来显示其中任何字段为空的所有tblData行。

SELECT
    d.[Event Title],
    d.[Event Date],
    d.[Last Name],
    d.[First Name],
    d.Email,
    d.Age
FROM tblData AS d
WHERE
       d.[Event Title] Is Null
    OR d.[Event Date] Is Null
    OR d.[Last Name] Is Null
    OR d.[First Name] Is Null
    OR d.Email Is Null
    OR d.Age Is Null;

理想情况下,您可以避免将这些行的副本存储在另一个表中(tblExceptions)。

但如果您有令人信服的理由存储这些行的副本,则可以将其转换为INSERT语句(“追加查询”)。