Access 2003完整教程:查询疑难解答 (ADP)

创建查询时遇到问题。

创建查询时可能会遇到以下常见问题:

得到消息“作为目标使用的表值函数不是嵌入函数”。

所尝试的操作需要一个可更新的用户定义函数(即嵌入函数),但您使用的函数却是不可更新的。可以用可更新的函数替代该函数,也可以将查询类型改为“选择”查询。

创建或修改索引视图时遇到问题。

不能在索引视图的视图定义中使用 HAVING 子句。可以删除索引,或删除 HAVING 子句。

在索引视图中,无法使用“(*) 所有列”复选框来选择所有列。因为索引视图存储在磁盘上,所以视图定义必须明确引用视图中将要包括的列。请用要包括在视图中的列替代星号 (*)。

因为索引视图存储在磁盘上,因此索引视图必须包含成簇索引。请修改该索引将其改为成簇索引。

如果删除架构绑定,则会同时删除索引。某些操作(如重新命名基础表列或删除基础表)将从索引视图自动删除架构绑定。删除架构绑定时,索引也将被删除。

注释Microsoft Access 项目连接到 Microsoft SQL Server 2000 Enterprise Edition 或 SQL Server 2000 Developer Edition 时,将支持索引视图;但在 Microsoft SQL Server 2000 Desktop Edition 中不支持索引视图。当数据为只读(如决策支持系统),索引视图的查询不涉及聚合或联接,并且索引视图的基础表架构定义不可能更改时,最好使用索引视图。有关索引视图的详细信息,请参阅 SQL Server 文档。

使用查询时遇到意外结果。

使用输出中包含两个或多个同名字段的 SQL 语句时,可能会遇到意外结果。例如,使用基于两个表并包含同名但位于不同表的两个字段的视图时可能会遇到意外结果。若要防止出现意外结果,请为某个字段指定别名以确保输出中每个字段都具有唯一的名称。

Access 将 CONVERT 和 DATETIME 函数添加到日期表达式中。

如下面的示例所示,Access 添加 CONVERT Transact-SQL 函数以将 SQL 语句中的任何日期表达式转换为显式 4 位年份格式:

CONVERT(DATETIME, '1997-01-01 00:00:00', 102)

有关 CONVERT Transact-SQL 函数的详细信息,请参阅 SQL Server 文档。

“生成表”查询无法运行。

“生成表”查询使用 INSERT FROM SQL 语句将行从一个表复制到另一个表中。在下列条件下可能会出现这种情况,即从 Microsoft SQL Server 7.0 或 6.5 版数据库升迁 Access 数据库,在“SQL 文本编辑器”中创建“生成表”存储过程或者在 SQL Sever 中使用 SQL Server Enterprise Manager 创建“生成表”查询。

若要在连接到 Microsoft SQL Server 7.0 或 6.5 数据库的 Access 项目中运行“生成表”查询,必须使用系统存储过程 sp_dboption 将“Select into/大容量复制”数据库选项设为 True(默认值为 False),如下面的示例所示:

Exec sp_dboption 'select into/bulkcopy'

可以在 SQL Server Enterprise Manager 中运行系统存储过程,或者使用“SQL 文本编辑器”在 Access 中创建存储过程。若要设置该选项,您必须是 db_owner 成员,或是 sysadmin 角色。有关“Select into/大容量复制”数据库选项的详细信息,请参阅 SQL Server 文档。

得到消息“ADO 错误:在函数中使用无效 <函数名>”。

在 CREATE FUNCTION SQL 语句中,不能使用不确定的 Transact-SQL 函数、不确定的全局变量或扩展存储过程。每次用同一组输入值调用不确定的 Transact-SQL 函数、不确定的全局变量或扩展存储过程时,它们可能返回不同的结果值,因此,可能会在数据库中产生副作用(如表更新)。

在用户定义的函数中不允许使用以下函数和全局变量:

@@CONNECTIONS
@@CPU_BUSY
@@IDLE
@@IO_BUSY
@@MAX_CONNECTIONS
@@PACK_RECEIVED
@@PACK_SENT
@@PACKET_ERRORS
@@TIMETICKS
@@TOTAL_ERRORS
@@TOTAL_READ
@@TOTAL_WRITE
GETDATE
GETUTCDATE
NEWID
RAND
TEXTPTR

运行命名参数查询时,得到意外的空结果集。

可能正在参数提示中使用不受支持的字词。您无法将 Visual Basic for Application (VBA) 语言关键字作为参数名使用,因为这些关键字是 Access 对象模型的一部分。若要查看这些语言关键字的列表,请在 Visual Basic Editor 中使用“对象浏览器”,显示 Access Application 对象的成员。

在参数查询中使用域函数时遇到问题。

不能在 Microsoft Access 项目 (.adp) 中使用以下域聚合函数。

DAvg
DCount
DLookup
DFirst、DLast
DMin、DMax
DStDev、DStDevP
DSum
DVar、DVarP

在窗体或报表中使用域聚合函数时遇到问题。

在 Access 项目中,聚合函数无法在对象(如窗体或报表)中使用指向控件的引用。例如,不能使用以下表达式:

=DLookUp("CategoryName";"Categories";"CategoryID = Reports!Report1!CategoryID")

上页:Access 2003完整教程:Access 项目疑难解答 (ADP) 下页:Access 2003完整教程:复制、转换和链接到 SQL Server 数据库时的疑难解答 (ADP)

Access 2003完整教程:查询疑难解答 (ADP)

Access 2003完整教程:复制、转换和链接到 SQL Server 数据库时的疑难解答 (ADP)Access 2003完整教程:键、关系和索引疑难解答 (ADP)
Access 2003完整教程:表和列疑难解答 (ADP)Access 2003完整教程:“升迁向导”疑难解答
Access 2003完整教程:更新数据疑难解答 (ADP)Access 2003完整教程:Microsoft Office Access 2003 中的新增功能
Access 2003完整教程:自定义用“标签向导”创建的标签Access 2003完整教程:使用图表
Access 2003完整教程:使用存储过程Access 2003完整教程:使用触发器
Access 2003完整教程:使用用户定义的函数Access 2003完整教程:向输入法编辑器 (IME) 字典中添加字词
Access 2003完整教程:向查询添加列Access 2003完整教程:在自定义字典中添加或删除朝鲜文字
Access 2003完整教程:Microsoft Access 项目设计器中的对话框帮助汇总Access 2003完整教程:Microsoft Access 项目中的扩展属性汇总
Access 2003完整教程:在筛选字段中允许多个选定内容Access 2003完整教程:关于在数据访问页中保存密码
Access 2003完整教程:应用筛选Access 2003完整教程:在数据透视表视图中自动显示项目或明细
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号