Error at startup - No value given / given key not present (Multi_Language_UI.mdb)


 Product(s):Promis.e, Bentley Substation
 Version(s):08.11.13.96
 Environment:N/A
 Area:Installation_Configuration
 Subarea:N/A

Error or Warning Messages (part 1)

When starting Promis.e or Bentley Substation, one of the following error messages occur:

Internal Error
Error Message: No value given for one or more required parameters.
TargetSite: System.Data.DataTable GetTable(Int32, System.String)
DeclaringType: MDBProxy.LocalTools
Attributes: public
MemberType: Method


Internal Error
Error Message: The given key was not present in the dictionary.
TargetSite: System.Data.DataTable GetTable(Int32, System.String)
DeclaringType: MDBProxy.ConnectionManager
Attributes: internal
MemberType: Method

How to Avoid (part 1)

Replace Multi_Language_UI.mdb

In more than one case the problem was found to be related to the Multi_Language_UI.mdb file. Replacing this file with a known good one resolved the error message in those cases. The path to the Multi_Lanuage_UI.mdb being used by the software can be determined with the following process:

  1. Open [[Setup]] and select the System Paths tab.
  2. Set Select system path management method to "Manage Individual Paths".
  3. Note the path specified in the Language databases field.
  4. Click Cancel on the Setup dialog.

The path is typically one of the following

\[[5367|promis-e Data]]\Databases\

\[[Substation Data folder|Substation Data]]\Databases\

A vanilla version of the Multi_Language_UI.mdb can be found in the [[Default Data folder contents]].  This can be used to replace the file being used by the software. Make a backup copy of the suspect file first, just in case.

Note: The Multi_Language_UI.mdb file contains any custom symbol text attributes, language phrases, modes, and custom dialog text that may have been added or modified, so ideally a backup of the customized Multi_Language_UI.mdb would be restored to resolve the error.

Install AccessDatabaseEngine_x64.exe - applies to 64-bit promis.e (for AutoCAD) only

In one case the "given key was not present in the dictionary...GetTable..." message appeared at start up but the above solution did not help.  An Access Database Engine program was listed in Control Panel > Programs and Features. Uninstalling this and installing the 64-bit Microsoft Access Database Engine 2010 Redistributable (AccessDatabaseEngine_x64.exe) resolved the error message. At no time did the [[Error - Can't Install or Find AccessDatabaseEnginex64|Can't find AccessDatabaseEngine for x64]] message appear.

Error or Warning Messages (part 2)

When starting Promis.e or Bentley Substation, the following error message occurs:

Internal Error
UI Error Message: The given key was not present in the dictionary.
TargetSite: Void FillTable(In32, System.String, System.Data.DataTable By Ref)
DeclaringType: MDBProxy.ConnectionManager
Attributes: internal
MemberType: Method

How to Avoid (part 2)

This error message can occur when the Multi_Language_UI.mdb file is present in the path configured on [[Setup]] but is not readable. Ensure the user has Read permissions for the file and folder. In a multi-user environment, the user should have [[Error - .MDB file in use or locked by another user|read, write, and create rights for the folder in which the database is located]].

See Also

[[Error at startup - The given key was not present in the dictionary (Device.mdb)]]

 Original Author:Matt_P