我正在使用Project 2016与ERP集成。我的目标是阅读项目的资源信息。
为此,我将数据库保存在mdb文件中。
执行此技巧的行是:
projApp.VisualReportsSaveDatabase(FileNameCompleteMdb, PjVisualReportsDataLevel.pjLevelDays)
一切正常,但是我的一些用户正在使用葡萄牙语项目。创建Access mdb文件时,许多表字段的名称都是葡萄牙语,这会导致我的所有SQL语句失败。
我的问题是:
有什么方法可以强制Project始终以英语导出mdb文件。
最好的问候
答案 0 :(得分:0)
经过一番研究,我找到了这个解决方案。这不是最佳解决方案,但可以。
第一步,将所有字段声明为字符串
将_Code编码为字符串 昏暗_名称为字符串 昏暗_开始为字符串 昏暗_完成为字符串 昏暗_工作为字符串 昏暗_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