有没有办法将其他语言应用于Access表单。我在创建表单时遇到问题,因为DB值以英语存储,我必须在不同语言中从同一个表生成两个相同的表单。一切顺利,直到我到达像Gender这样的查找领域。我的表格可选值为“男性”和“女性”,适用于英语表格但如何在不更改表格值的情况下以非英语形式更改
答案 0 :(得分:1)
一种方法是将实际值存储在主表中M
和F
,例如
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