Sql 在Access中插入查询

Sql 在Access中插入查询,sql,ms-access,Sql,Ms Access,我已经从VisualStudio2005生成了查询。我正在将SQL数据库中的记录插入Access 我的问题是 insert into i_mails (id,from_mails,to_mails,cc_mails,subject,body, anchor_level_id,attachment,forward_status ,reply_status,delete_status, read_status, received_date,response_dat

我已经从VisualStudio2005生成了查询。我正在将SQL数据库中的记录插入Access

我的问题是

insert into i_mails
   (id,from_mails,to_mails,cc_mails,subject,body,
    anchor_level_id,attachment,forward_status ,reply_status,delete_status,        read_status, 
   received_date,response_date,
   batch,forward_score,delete_score,priority,
    is_auto_reply,parent_mail_id,case_id,time_bound) 

values (1,'a@a.com',  'a@a.com','a@a.com',  'Hi','--long html field--',
        7 , 'True' ,False,False,False,False,
        #12/12/2000 00:00:00# ,#12/12/2000 00:00:00#,
        0, '0','0',  1 , 
        'False',0,2,0)
我在条件表达式错误中得到数据类型不匹配。
不知道此错误在查询中触发的位置。。。请帮忙

Access数据库结构:

Id-编号,
从_邮件-备忘录,
发送邮件-备忘录,
抄送邮件-备忘录,
主题-备忘录,
正文-备忘录,
锚定级别id-编号,
附件-是\否,
转发状态-是\否,
回复状态-是\否,
删除\u状态-是\否,
读取\u状态-是\否,
接收日期-日期时间,
响应日期-日期时间,
批号,
正向分数-数字, 删除分数-编号,
优先级-编号,
是否自动回复-是\否,
家长邮件id-编号,
案例id-编号,

时间界限-数字,

用空值(或其他“零”值)替换每个值。先从第一个值开始,然后是第二个值(将第一个值保留为null),然后继续,直到将所有值替换为null为止。 在每次更改后测试查询

当查询开始工作时,您最后更改的值就是导致问题的值

另外,它可能不是唯一不正确的值,但使用此方法,您将找到所有类型错误的值


希望这有助于将每个值替换为空值(或其他“零”值)。先从第一个值开始,然后是第二个值(将第一个值保留为null),然后继续,直到将所有值替换为null为止。 在每次更改后测试查询

当查询开始工作时,您最后更改的值就是导致问题的值

另外,它可能不是唯一不正确的值,但使用此方法,您将找到所有类型错误的值


希望这能有所帮助

如果不知道表结构和数据类型,很难判断,但要完全猜出来

您试图插入到
received\u date
response\u date

由于
#
符号分隔符,因此不正确

试着把它们改成

'12/12/2000 00:00:00' ,'12/12/2000 00:00:00' 
//i.e. Surround them with apostrophes

如果不知道表结构和数据类型,很难判断,但要完全猜测

您试图插入到
received\u date
response\u date

由于
#
符号分隔符,因此不正确

试着把它们改成

'12/12/2000 00:00:00' ,'12/12/2000 00:00:00' 
//i.e. Surround them with apostrophes

对于自动回复,请使用不带引号的“false”。这似乎是问题所在

对于自动回复,请使用不带引号的“false”。这似乎是问题所在

可能值得检查您的“--long html字段--”是否包含任何格式问题(例如,它是否包含任何可能被解释为过早结束该字段的撇号)


除此之外,其他人说:如果没有表结构的详细信息,没有人能给您带来多大帮助。

可能需要检查您的“--long html字段--”是否包含任何格式问题(例如,它是否包含任何可能被解释为过早结束字段的撇号)


除此之外,还有其他人所说的:如果没有表结构的详细信息,没有人能够为您提供太多帮助。

看看您试图插入字段的数据: 附件和是自动回复吗
当您尝试插入字符串数据“True”和“False”时,它们应该是布尔值字段。

查看您尝试插入字段的数据: 附件和是自动回复吗

当您尝试插入字符串数据“True”和“False”时,它们应该是布尔值字段。

请正确设置问题的格式,因为它不可读。您需要告诉我们表的结构/设计。您不是附加到Access,而是附加到Jet数据存储。可以是.accdb格式的文件,因此可能是Access数据存储。请正确设置问题的格式,因为它不可读。您需要告诉我们表的结构/设计。您不是附加到Access,而是附加到Jet数据存储。可能是.accdb格式文件,因此可能是Access数据存储。Ian:我在您之前就到了:)请参阅“或其他‘零’值”上图:)Varun Mahajan的答案对我来说是正确的..现在可以正常工作了从Access UI创建的Jet表中的字段的默认值是不需要字段,也就是说,它可以为空。Ian:我比你先到这里:)请参见“或其他“零”值”上图:)Varun Mahajan的回答对我来说是正确的。它现在可以正常工作。从Access UI创建的Jet表中的字段默认为不需要字段,即可以为空。符号是在MS Access中定义日期的方式。不,这并不令人讨厌。它只是一种不同的SQL方言,可以追溯到SQL还没有普及的时候。如果您不喜欢Jet SQL默认值,那么请使用一种数据访问方法,该方法允许您使用ANSI 92而不是ANSI 89(例如,这意味着使用ADO而不是DAO)。一种解决方法是使用CDATE('2000-12-12 00:00:00'),或您首选的明确格式,如果使用Access查询对象,这一点尤其好,因为UI会将#分隔的日期更改为自己的格式。并且适用于所有查询模式:)#符号是在MS Access中定义日期的方式。不,这并不令人讨厌。它只是一种不同的SQL方言,可以追溯到SQL还没有普及的时候。如果您不喜欢Jet SQL默认值,那么请使用一种数据访问方法,该方法允许您使用ANSI 92而不是ANSI 89(例如,这意味着使用ADO而不是DAO)。一种解决方法是使用CDATE('2000-12-12 00:00:00'),或您首选的明确格式,如果使用Access查询对象,这一点尤其好,因为UI会将#分隔的日期更改为自己的格式。并且可以在所有查询模式下工作:)你怎么知道它不是字符串?在Access中,is_auto_reply数据类型是“Yes\No”。在这种情况下,你不需要引号。这只是一个直觉。当您开始使用access作为编程工具时,就会发生这种情况;)你怎么知道是这样的