DataTable.Load() 抛出错误:表达式中未定义函数“CountWeekDays" [英] DataTable.Load() Throws Error: Undefined function 'CountWeekDays' in expression

查看:26
本文介绍了DataTable.Load() 抛出错误:表达式中未定义函数“CountWeekDays"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 Access 数据库并尝试加载 DataTable 对象,但收到相关错误.我的查询在标准访问模块中调用名为CountWeekDays"的公共函数,当通过 Access 本身运行时,返回正确的结果就好了.为什么这在通过 .NET 应用程序调用时不起作用?

I'm using an Access database and trying to load a DataTable object but am receiving the subjected error. My query calls a public function named 'CountWeekDays' within a standard access module and when run through Access itself, returns the proper results just fine. Why would this not work when calling it through a .NET application?

 SELECT tbl1.ProjectID, tbl1.EntryDate AS StartDate, tbl2.EntryDate AS EndDate, 
(SELECT (ChecklistDayMax - ChecklistDayMin + 1) AS DaysAlotted FROM milestone_def WHERE MilestoneDefID = [@milestoneID]) AS DaysAlotted, 
(SELECT ProjectPriority FROM project_master WHERE ProjectID = tbl1.ProjectID) AS Priority,    
 IIF(Priority = 1, (SELECT BonusDaysFH FROM milestone_def WHERE MilestoneDefID = [@milestoneID]), 
 IIF(Priority = 2, (SELECT BonusDaysFM FROM milestone_def WHERE MilestoneDefID = [@milestoneID]), 
 IIF(Priority = 3, (SELECT BonusDaysFL FROM milestone_def WHERE MilestoneDefID = [@milestoneID])))) AS BonusDaysAllotted, 
 CountWeekDays(tbl1.EntryDate, tbl2.EntryDate) AS DaysRequired
 FROM checklist_entries AS tbl1 
 INNER JOIN checklist_entries AS tbl2 ON tbl1.ProjectID = tbl2.ProjectID
 WHERE tbl1.ChecklistDay = (SELECT ChecklistDayMin FROM milestone_def WHERE MilestoneDefID = [@milestoneID])
 AND tbl2.ChecklistDay = (SELECT ChecklistDayMax FROM milestone_def WHERE MileStoneDefID = [@milestoneID]);

推荐答案

用户定义的 VBA 函数只有在 Access 本身中运行查询时才能在 Access 查询中使用.如果您将在 .NET 应用程序中运行查询,则该查询必须仅返回开始/结束日期,并且您的 .NET 代码将必须计算它们之间的工作日数.

User-defined VBA functions can be used in Access queries only when the query is run from within Access itself. If you will be running the query from within a .NET application then the query will have to return just the start/end dates and your .NET code will have to calculate the number of weekdays between them.

这篇关于DataTable.Load() 抛出错误:表达式中未定义函数“CountWeekDays"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆