2

Access データベースを使用して DataTable オブジェクトを読み込もうとしていますが、対象のエラーが発生します。私のクエリは、標準のアクセス モジュール内で「CountWeekDays」という名前のパブリック関数を呼び出し、Access 自体を実行すると、適切な結果が正常に返されます。.NET アプリケーションを介して呼び出すと、これが機能しないのはなぜですか?

 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]);
4

1 に答える 1

1

ユーザー定義の VBA 関数は、クエリが Access 自体から実行される場合にのみ、Access クエリで使用できます。.NET アプリケーション内からクエリを実行する場合、クエリは開始日と終了日のみを返す必要があり、.NET コードはそれらの間の平日の数を計算する必要があります。

于 2013-06-28T13:13:17.060 に答える