Sql 根据IIF陈述的结果插入到

Sql 根据IIF陈述的结果插入到,sql,ms-access,ms-access-2016,Sql,Ms Access,Ms Access 2016,我想插入 SELECT G.Results FROM (SELECT IIf([Forms]![Login]![User_Name]=[C_Customers].[user_name] And [Forms]![Login]![Password]=[C_Custome

我想插入

SELECT G.Results
FROM (SELECT IIf([Forms]![Login]![User_Name]=[C_Customers].[user_name]                                       
             And                                                
                [Forms]![Login]![Password]=[C_Customers].[Password]
                ,"Login Successful"
                ,"Login Failed") AS Results 
      FROM C_Customers)  AS G
      WHERE ((G.Results)="Login Successful");
[表格]![登录]![用户名]和[表格]![登录]![密码]来自要求输入用户名和密码的表单。IFF语句将用户输入与这些字段进行比较,并在表中找到匹配项。此查询成功。我想
将结果插入到LOGIN\u results表的LOGIN字段中。我试试这个:

INSERT INTO Login_results (login)
SELECT G.Results
FROM (SELECT IIf([Forms]![Login]![User_Name]=[C_Customers].[user_name]                                       
             And                                                
             [Forms]![Login]![Password]=[C_Customers].[Password],"Login Successful","Login Failed") AS Results FROM C_Customers)  AS G
WHERE ((G.Results)="Login Successful");
但是,数据从未出现在表中<代码>登录\u结果
为空,只有一个字段,
登录

编辑: 这是随机的。我唯一更改的是表的名称从 “登录结果”改为“登录状态”,字段从“结果”改为“状态”,因为我更喜欢它。突然间,它又出现了。为什么?我不知道

以下是出于某种原因而运行的代码

Insert into Login_Status (Status)
SELECT G.Results
FROM (SELECT IIf([Forms]![Login]![User_Name]=C_Customers.user_name             
                  And                                             
                [Forms]![Login]![Password]=C_Customers.Password
                ,"Login Successful"
                ,"Login Failed") AS Results 
       FROM C_Customers)  AS G
WHERE (((G.Results)="Login Successful")) OR (((G.Results)="Loggin Failed"));

新线程主题:我改变了什么,突然使代码运行?它从未抛出“找不到表/字段”错误,因此我不明白为什么目标字段/名称中的更改会起作用。

您不能尝试在
IIf函数中使用EVAL进行多次比较。

我仍然无法理解您试图保存在表中的内容-没有任何登录成功插入的客户信息。但也许你只是想证明一下概念

我还认为您的WHERE子句中有一个输入错误,它表示
(G.Results)=“Loggin Failed”
-应该是
登录失败的

这可能会扭曲你的结果

在任何情况下,您都可以使用EVAL尝试此示例

INSERT INTO Login_Status (Status)
SELECT G.Results
FROM 
    (SELECT 
        IIf(EVAL(([Forms]![Login]![User_Name]=C_Customers.user_name) AND ([Forms]![Login]![Password]=C_Customers.Password)),
                "Login Successful", "Login Failed")
                AS Results 
       FROM C_Customers)  AS G
WHERE (G.Results="Login Successful") OR (G.Results="Login Failed");

您可以发布执行SELECT查询后的结果吗?以及应该插入多少条记录?为什么要插入只有一个字段显示“登录成功”的记录?这有什么意义?