MS Access仅对表单提供多语言支持

时间:2013-11-01 09:41:28

标签: ms-access ms-access-2007

有没有办法将其他语言应用于Access表单。我在创建表单时遇到问题,因为DB值以英语存储,我必须在不同语言中从同一个表生成两个相同的表单。一切顺利,直到我到达像Gender这样的查找领域。我的表格可选值为“男性”和“女性”,适用于英语表格但如何在不更改表格值的情况下以非英语形式更改

1 个答案:

答案 0 :(得分:1)

一种方法是将实际值存储在主表中MF,例如

ID  FirstName  Gender
--  ---------  ------
 1  Gord       M     
 2  Angie      F     

并创建一个名为[Genders]的引用表,如下所示:

TableValue  Language  Translation
----------  --------  -----------
M           fr_ca     masculin   
F           fr_ca     féminin    
M           en_us     Guy        
F           en_us     Girl       
M           en_ca     Male       
F           en_ca     Female     

在表单上,​​创建一个名为txtFormLanguage的隐藏的未绑定文本框,并在Form_Load事件处理程序中填充它:

Private Sub Form_Load()
    Me.txtFormLanguage = IIf(IsNull(Me.OpenArgs), "en_ca", Me.OpenArgs)
End Sub

现在,您的组合框可以使用以下Row Source ...

SELECT TableValue, Translation FROM Genders WHERE (((Genders.Language)=[txtFormLanguage]));

...并具有与以下类似的其他属性:

装订栏:1
列数:2
列宽:0“; 1”

正常打开表单(没有OpenArgs)...

Docmd.OpenForm "ClientForm", acNormal, , , acFormEdit, acWindowNormal

...默认为en_ca(英语,加拿大),组合框显示

Male
Female

fr_ca(法国,加拿大)打开表单时......

Docmd.OpenForm "ClientForm", acNormal, , , acFormEdit, acWindowNormal, "fr_ca"

...组合框显示

masculin
féminin