Вопрос:

DataTable.Load () выдает ошибку: неопределенная функция 'CountWeekDays' в выражении

.net sql vb.net ms-access

73 просмотра

1 ответ

1148 Репутация автора

Я использую базу данных 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]);
Автор: Shane LeBlanc Источник Размещён: 28.06.2013 01:04

Ответы (1)


1 плюс

84284 Репутация автора

Решение

Пользовательские функции VBA могут использоваться в запросах Access только тогда, когда запрос выполняется из самого Access. Если вы будете выполнять запрос из приложения .NET, то запрос должен будет возвращать только даты начала / окончания, а ваш код .NET должен вычислять количество дней недели между ними.

Автор: Gord Thompson Размещён: 28.06.2013 01:13
Вопросы из категории :
32x32