我正在使用Project 2016与ERP集成。我的目标是阅读项目的资源信息。
为此,我将数据库保存在mdb文件中。
这个技巧的路线是:
projApp.VisualReportsSaveDatabase(FileNameCompleteMdb, PjVisualReportsDataLevel.pjLevelDays)
一切正常,但我的一些用户,他们正在使用葡萄牙语语言项目。创建Access mdb文件时,许多表字段的名称都是葡萄牙语,导致我的所有SQL语句都失败。
我的问题是:
有没有办法强制Project始终导出英文的mdb文件。
最好的祝福
经过一番研究后,我得到了这个解决方案。它不是最好的解决方案,但有效。
第一步,将所有字段声明为字符串
Dim _Code As String Dim _Name As String Dim _Start As String Dim _Finish As String Dim _Work as String 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