МС Проект ВСТО - PullRequest
0 голосов
/ 27 ноября 2018

Я использую Project 2016 для интеграции с ERP.Моя цель - прочитать информацию о ресурсах проекта.

. Для этого я сохраняю базу данных в файле mdb.

Строка, которая выполняет этот трюк:

projApp.VisualReportsSaveDatabase(FileNameCompleteMdb, PjVisualReportsDataLevel.pjLevelDays)

Все отлично работает, но некоторые из моих пользователей используют Project с португальским языком.Когда создается файл mdb Access, многие поля таблицы имеют имена на португальском языке, что приводит к сбою всех моих операторов SQL.

Мой вопрос:

Есть ли способ заставить Project экспортироватьвсегда файл MDB на английском языке.

С наилучшими пожеланиями

1 Ответ

0 голосов
/ 29 ноября 2018

После небольшого исследования я пришел к этому решению.Это не лучшее решение, но работает.

Первый шаг, объявить все поля как строки

Dim _Code As String Dim _Name As String Dim _Start As String Dim _Finish As String Dim _Work AsString Dim _ActualWork As String

Второй шаг:

Установите строки с помощью FieldName, считанного из приложения вашего проекта.На этом этапе проект вернет свои FieldNames в соответствии с установленным языком.

    _Code = projApp.FieldConstantToFieldName(PjField.pjResourceCode)
    _Name = projApp.FieldConstantToFieldName(PjField.pjResourceName)
    _Start = projApp.FieldConstantToFieldName(PjField.pjResourceStart)
    _Finish = projApp.FieldConstantToFieldName(PjField.pjResourceFinish)
    _Work = projApp.FieldConstantToFieldName(PjField.pjResourceWork)
    _ActualWork = projApp.FieldConstantToFieldName(PjField.pjResourceActualWork)


    Dim qryResource As String = "Select [ResourceUID], [Code], [Name], [Start], [Finish], [Work], [Actual Work] From MSP_EpmResource Where [Code] >'0';"

Шаг 3: С помощью оператора SQL на английском языке просто замените исходные FieldNames на свои переменные:

    qryResource = qryResource.Replace("Code", _Code)
    qryResource = qryResource.Replace("Name", _Name)
    qryResource = qryResource.Replace("Start", _Start)
    qryResource = qryResource.Replace("Finish", _Finish)
    qryResource = qryResource.Replace("Actual Work", _ActualWork)
    qryResource = qryResource.Replace("Work", _Work)

Наконец, у вас будет действительный SQL-оператор, в зависимости от языка вашего приложения.

tks

...