Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.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中的追加查询中将数据类型从文本转换为是/否?_Ms Access_Ms Access 2010_Ms Access 2007_Ms Access 2013 - Fatal编程技术网

Ms access 如何在MS Access中的追加查询中将数据类型从文本转换为是/否?

Ms access 如何在MS Access中的追加查询中将数据类型从文本转换为是/否?,ms-access,ms-access-2010,ms-access-2007,ms-access-2013,Ms Access,Ms Access 2010,Ms Access 2007,Ms Access 2013,在MS Access中,我试图将一个表(表A)中的数据附加到另一个表(表B)中。表A有一个“Short Text”类型的列,该列的单个值为“偶数”或空/空。表B有一个类型为“是/否”的等效列。在执行此转换时,我必须将数据从表A插入表B中-如果表A的列具有“偶数”,则将表B的值设置为True,否则,将其设置为False 我尝试了如下查询,但不起作用: INSERT INTO TableB( BookName, ChapterName, PageNo, Even) SELECT name, chap

在MS Access中,我试图将一个表(表A)中的数据附加到另一个表(表B)中。表A有一个“Short Text”类型的列,该列的单个值为“偶数”或空/空。表B有一个类型为“是/否”的等效列。在执行此转换时,我必须将数据从表A插入表B中-如果表A的列具有“偶数”,则将表B的值设置为True,否则,将其设置为False

我尝试了如下查询,但不起作用:

INSERT INTO TableB( BookName, ChapterName, PageNo, Even)
SELECT name, chapter, page,  IIf(UCase([Even or Odd]) = 'EVEN', True,False)
FROM TableA;
上面的查询给了我以下错误:

Microsoft Access无法在追加查询中追加所有记录。 由于类型转换失败,Microsoft Access将0字段设置为Null,并且由于密钥冲突,它没有向表中添加117条记录


如何使access在添加数据时更改值?

正如错误屏幕所示,问题不在于转换数据类型,错误是由于密钥冲突造成的。 尝试在没有此“是/否”字段的情况下插入,您将在此字段中确保。
表之间可能存在关系,因此不允许插入某些值。

为了以后的任何搜索,这里是我的最终查询,它确实有效:

INSERT INTO TableB( BookName, ChapterName, PageNo, Even)
SELECT name, chapter, page,  IIf(UCase([Even or Odd])="EVEN",-1,0) AS EvenOdd FROM TableA;
检查源表和目标表之间是否存在数据类型差异。在我的例子中,源表中的页面列是
number
,目标表中的页面列是
Short Text


另外,主键不是查询的一部分,它是
Number
,而不是
AutoNumber
,这是失败的,因此我得到了错误。

您的问题是清楚的,没有问题,但请发布错误消息,而不是它的图像链接。这是一个愚蠢的数字与主键的自动编号不匹配。结果表明,对于转换部分,查询确实使用了IIF()。