Access911.net   |   a9BBS   |   OTaA System  
  搜索文章:  
Access911欢迎您光临  
   主页      上传      繁體版       论坛     
设为首页  |  加入收藏   
  
你现在的位置:文章索引 -> 文章分类 -> 函数  
 首页|  近日更新|  下载  |  文章索引  |  搜索|  术语|  承接工程|  
 
系统正在加载内容,请耐心等待...
 
 查询
 窗体
 报表
 
 
 VBA
 函数
 ADO/DAO/ADO.NET
 API
 ADP
 安全
 发布
 OA
 ASP/ASP.NET
 其他语言
 控件
 DELPHI
 C#/.Net
 本站
 其他
 小例程
 常用软件
 参考文档
 业主作品
 网友大作
 
 
友情链接
 access911.net
 
访问人次
 1702416
 
站长 E-Mail
 net911@sina.com
 access911@gmail.com
 
RSS 订阅

显示附加信息 >>>

为什么老出现XXX函数未定义错误?

作者:cg1  摘自:access911.net  :cg1  更新日期:2003-7-16  浏览人次:

 

问题:


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. 


请参考:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/odappepr_3.asp

最终的解决方案是当你在 VB / C# 等语言中取出数据赋值到变量后再对变量进行函数操作

 

本站文章旨在为该问题提供解决思路及关键性代码,并不能完成应该由网友自己完成的所有工作,请网友在仔细看文章并理解思路的基础上举一反三、灵活运用。

access911.net 原创文章,作者本人对文章保留一切权利。
如需转载必须征得作者同意并注明本站链接

 

 
相关文章
     没有手动相关文章
 
评论
     查看或发表更多的评论,请单击这里。
 
 
 
 
 
   
  Access911.net   |   a9BBS   |   OTaA System   |
建站日期:2000年4月2日  |  设计施工:陈格 ( access911 & cg1 )
 Copyright © 2000 - 2003 COMET, 陈格 保留所有权利