代码操作access时为什么老出现XXX函数未定义错误?(转)
时 间:2011-11-16 14:23:56
作 者:宏鹏 ID:21115 城市:上海
摘 要:代码操作ACCESS时为什么老出现XXX函数未定义错误?(转)
正 文:
问题:
1、为什么以前运行正常的Access数据库,搬到另一台电脑上老出现XXXX函数未定义错误?
2、为什么我在Access中调试通过的sql语句,在VB/ASP/JSP/PHP/VB.NET/SQL SERVER中调用却老是出现XXX函数未定义错误?
3、在ACCESS中的模块中自定义了一个getV函数,在ACCESS查询中执行SQL语句
select getV(5) from T
这条语句能执行,并且能得到数据,
但是在Adodc1中
Adodc1.RecordSource ="select getV(5) from T "
Adodc1.Refresh
结果出错了,显示的错误为“getV未定义函数”。
回答:
1、转到VBE界面,菜单 工具 -> 引用 中看一下有没有丢失的引用,如果有,重新引用一下即可。特别是出错信息提示一些 VBA 的基本函数未定义,比如 Left Date Right 等函数未定义时,90%的情况丢失引用丢失
2、Access中执行 jet sql 语句时使用的很多函数是Access自带的函数,只允许使用在Access界面下,一旦你使用了其他软件做界面,那么很多本来在 access+jet sql环境中能够运行的函数将成为错误根源。
3、Access中编写的自定义函数必须由ACCESS环境支持,在其他环境中根本不能使用。
特别注意:许多在VB代码中可以运行的函数并不一定能嵌入到jet sql语句中
以下列出 jet sql 中的资料供参考:
ODBC 标量函数
Microsoft® Jet SQL 支持使用由 ODBC 为标量函数定义的语法。例如这一查询:
Select DAILYCLOSE, DAILYCHANGE FROM DAILYQUOTE
Where {fn ABS(DAILYCHANGE)} > 5
凡是一种股票价格变化的绝对值大于 5 的列会返回。
ODBC 定义的标量函数的子集受支持。下表列出了受支持的函数。
关于使函数包含于 SQL 语句的变元的描述和逸出语法的详尽解释,请看 ODBC文献。
字符串函数
ASCII LENGTH RTRIM
CHAR LOCATE SPACE
CONCAT LTRIM SUBSTRING
LCASE RIGHT UCASE
LEFT
数字函数
ABS FLOOR SIN
ATAN LOG SQRT
CEILING POWER TAN
COS RAND MOD
EXP SIGN
时间和日期函数
CURDATE DAYOFYEAR MONTH
CURTIME YEAR WEEK
NOW HOUR QUARTER
DAYOFMONTH MINUTE MONTHNAME
DAYOFWEEK SECOND DAYNAME
数据类型变换
CONVERT 字符串文字能被转换成下列数据类型:SQL_FLOAT, SQL_DOUBLE, SQL_NUMERIC, SQL_INTEGER, SQL_REAL, SQL_SMALLINT, SQL_VARCHAR和 SQL_DATETIME.
Access软件网官方交流QQ群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access系统自带的日期选择器不...(11.08)
- 分享一下Access工程中的acw...(11.07)
- Access快速开发平台--让有权...(11.04)
- Access快速开发平台--审批选...(11.01)
- ACCESS两张表先各自排序,然后...(10.31)
- Access对子窗体数据进行批量+...(10.30)
- SqlServer中如何用SQL命...(10.29)
- Access报表中的分组功能用代码...(10.28)
- 用Access计算库存结余的一个方...(10.26)
- 最精简的组合框行来源数据快速输入(...(10.25)