Access合并表 类型不匹配问题的解决方式
2007-08-23 09:20
357 查看
一朋友,目前与Access打交道的机会比较多,遇上了合并表的问题,我猜想应该是各级经销商需要做报表,汇总信息吧。
问题是来自各级的Access表的字段类型设计的并不一致,导致在拷贝粘贴复制的时候出现了类型不匹配的错误。根据错误提示,我首先查看了一下各个表的字段类型,发现果然有一个字段在子表中的类型为文本,而总表的对应字段类型为数字(为方便说明,假设子表中字段名为temp_text)。这是导致错误出现的原因。
当然,文本类型可以允许数字类型内容的出现,换句话说,将总表的数据拷贝到子表当中是不会报错的;但反之则会出错。解决将子表合并至总表的方式如下:
其一,可以更改总表该字段的类型,从数字更改为文本,而后合并表;
其二,可以在子表中新建一个字段,并将该字段使用对应temp_text字段的数字类型内容进行填充,最后删除原temp_text字段并将新字段更名。
第一种做法,实在是一种投机的做法。如果更改总表类型不至于影响到应用的话,倒也无妨。但不容忽视如此操作会带来一些副作用:其一,该字段内容输入的类型检查功能会削弱,也就是说本来只允许数字存在,现在字母也可以存在其中,如果输入失误,那么会造成一定应用上的混乱;其二,如果存在某应用程序访问该表,也会产生一些麻烦。
第二种做法,相对要保险一些。方法如下:
1>在子表中增加一个字段(假设为temp_num),并将其类型设置为数字类型
2>在Access查询视图的sql视图中,执行下面的语句:update tableName set temp_num=CLng(temp_text)
即可将新增的temp_num字段填充,其内容为原temp_text字段对应的数字。
3>在设计视图中,将原字段temp_text删除,并将temp_num更名为原字段名即可。
__________
其中CLng(express)是转换函数,具体还有些常见转换函数:
CBool(expression)
CByte(expression)
CCur(expression)
CDate(expression)
CDbl(expression)
CDec(expression)
CInt(expression)
CLng(expression)
CSng(expression)
CStr(expression)
CVar(expression)
CStr(expression)
其功能随意在网络上就可以查到。
___________
最后补充一下,如何在Access中使用SQL视图执行SQL语句:
打开access数据库,在左边对象栏里有个查询,点在设计视图创建查询,点关闭,然后你可以看到左上方工具栏上有个写着SQL的按钮,点击就可以输入SQL语句了。工具栏上还有一个红色感叹号按钮,用于执行SQL语句。
问题是来自各级的Access表的字段类型设计的并不一致,导致在拷贝粘贴复制的时候出现了类型不匹配的错误。根据错误提示,我首先查看了一下各个表的字段类型,发现果然有一个字段在子表中的类型为文本,而总表的对应字段类型为数字(为方便说明,假设子表中字段名为temp_text)。这是导致错误出现的原因。
当然,文本类型可以允许数字类型内容的出现,换句话说,将总表的数据拷贝到子表当中是不会报错的;但反之则会出错。解决将子表合并至总表的方式如下:
其一,可以更改总表该字段的类型,从数字更改为文本,而后合并表;
其二,可以在子表中新建一个字段,并将该字段使用对应temp_text字段的数字类型内容进行填充,最后删除原temp_text字段并将新字段更名。
第一种做法,实在是一种投机的做法。如果更改总表类型不至于影响到应用的话,倒也无妨。但不容忽视如此操作会带来一些副作用:其一,该字段内容输入的类型检查功能会削弱,也就是说本来只允许数字存在,现在字母也可以存在其中,如果输入失误,那么会造成一定应用上的混乱;其二,如果存在某应用程序访问该表,也会产生一些麻烦。
第二种做法,相对要保险一些。方法如下:
1>在子表中增加一个字段(假设为temp_num),并将其类型设置为数字类型
2>在Access查询视图的sql视图中,执行下面的语句:update tableName set temp_num=CLng(temp_text)
即可将新增的temp_num字段填充,其内容为原temp_text字段对应的数字。
3>在设计视图中,将原字段temp_text删除,并将temp_num更名为原字段名即可。
__________
其中CLng(express)是转换函数,具体还有些常见转换函数:
CBool(expression)
CByte(expression)
CCur(expression)
CDate(expression)
CDbl(expression)
CDec(expression)
CInt(expression)
CLng(expression)
CSng(expression)
CStr(expression)
CVar(expression)
CStr(expression)
其功能随意在网络上就可以查到。
___________
最后补充一下,如何在Access中使用SQL视图执行SQL语句:
打开access数据库,在左边对象栏里有个查询,点在设计视图创建查询,点关闭,然后你可以看到左上方工具栏上有个写着SQL的按钮,点击就可以输入SQL语句了。工具栏上还有一个红色感叹号按钮,用于执行SQL语句。
相关文章推荐
- 急求,解决类型不匹配问题
- 解决cin输入类型不匹配的问题
- 解决gSOAP开发中的序列化和反序列化类型不匹配的问题(No Deserializer found to deserialize)
- "响应消息的内容类型 text/html; charset=utf-8 与绑定(text/xml; charset=utf-8)的内容类型不匹配。"问题的解决办法
- 解决从mysql端使用sqoop导入hive端字段类型不匹配问题
- IE浏览器“SEC7113: CSS 因 Mime 类型不匹配而被忽略”问题的解决方法
- VS2005+ACCESS2003开发中遇到的“标准表达式中数据类型不匹配”问题解决方法
- OLEDB方式操作规则EXCEL的字符串的完整写法(解决标题行和列数据类型不一致的问题)
- 在mysql存储过程中拼接sql解决in的字段类型不匹配问题
- IE浏览器“SEC7113: CSS 因 Mime 类型不匹配而被忽略”问题的解决方法
- 从源代码剖析Struts2中用户自定义配置转换器的两种方式——基于字段的配置转换器和基于类型的配置转换器(解决了实际系统中,因没有区分这两种工作方式的生命周期而引起的异常错误问题)
- MTK无效链接类型问题解决方式
- QT中鼠标响应函数setMouseCallback类型不匹配问题解决
- Ado方式导入excel混用数据类型引起数据缺失问题解决方法
- 解决用jquery的get或者post提交方式提交到struts2中的action中文乱码问题
- 利用替换SAM文件的方式破解XP登陆密码,解决无法登陆系统的问题
- springMvc 完美解决 multipart/form-data 方式提交请求 在 Filter 中 ServletRequest.getParameter方法 获取不到参数的问题
- Post与Get方式提交乱码问题解决
- javaWEB开发中get方式请求的乱码问题解决