Ms access 在MS Access中使用串联创建数字类型计算字段
我有一列Ms access 在MS Access中使用串联创建数字类型计算字段,ms-access,ms-access-2013,Ms Access,Ms Access 2013,我有一列ProjectYear和一列ProjectNumber;两者都是数字。我创建了一个计算列([ProjectYear]&“&[ProjectNumber]),将两者连接起来。例如,2015和123给出了2015123 问题是,该计算列的结果类型是短文本,当我创建一个查询以连接到另一个包含该列的表(但作为数字类型)时,我会得到一个类型不匹配错误 如何使计算列具有数字类型 我尝试了CInt([ProjectYear]&“&[ProjectNumber]),但这是不允许的。计算字段表达式只能使用
ProjectYear
和一列ProjectNumber
;两者都是数字。我创建了一个计算列([ProjectYear]&“&[ProjectNumber]
),将两者连接起来。例如,2015和123给出了2015123
问题是,该计算列的结果类型是短文本,当我创建一个查询以连接到另一个包含该列的表(但作为数字类型)时,我会得到一个类型不匹配
错误
如何使计算列具有数字类型
我尝试了
CInt([ProjectYear]&“&[ProjectNumber])
,但这是不允许的。计算字段表达式只能使用有限的函数集<不支持code>CInt(),但不支持Int()
我在Access 2010中测试了这个,计算字段的结果类型属性使用长整数,它实现了我认为您想要的功能
Int([ProjectYear]和[ProjectNumber])
请注意,我相信您是在询问表设计中的计算字段,例如
还请注意,计算字段不能编制索引。当您在与另一个表的联接中使用该字段时,这会影响性能——尽管数据类型可以兼容,但它不能利用索引检索。关于
[ProjectYear]*1000+[ProjectNumber]呢
这将不起作用,因为项目编号不仅仅是3位数字,它们可以多于3位或少于3位。每当您将其连接为txt字段时,您必须使用cint([projectyear]&[projectNumber])将其转换为数字(去掉“”),或使用cstr()将另一个表中的数字字段转换为字符串access不将CInt视为设计表中的有效表达式使用自定义公共函数将传递给它的两个变量转换为串联整数值。