Foreign Language in Menu items

  • Thread starter Frank Situmorang
  • Start date
F

Frank Situmorang

Hello,

My Switchboard menu items takes the text from menutiems table.

Since I want to make the menu items according to the language of the
country. I want to insert the menu text in local as beside the the English
column. My question is how can we say in the menu text item of the form ithat
it will take the text from the local column?

The Ooher alternative is to replace the English with the local language
text, but it is not practical.

Thanks for any idea provided.
 
D

Dale Fye

Frank,

You could add a table to your database that contains fields (FormName,
Language, CtrlName, CtrlProperty("Caption", "ControlTipText"), CtrlValue).
Then when the user changes the language they want to use, you could run some
code that loops through each of the forms (opening each form in design view,
hidden), gets the list of control names, properties, and values, for that
form, and updates the control properties. Then save and close the form.
This is untested, but It you should get the idea.

Public Sub LanguageControls()

Dim frm As Form, intForm As Integer
Dim ctrl As Control
Dim strSQL As String, rs As DAO.Recordset

For intForm = 0 To CurrentProject.AllForms.Count - 1
DoCmd.OpenForm CurrentProject.AllForms.Item(intForm).Name, acDesign
Set frm = Forms(0)

strSQL = "SELECT * FROM tbl_LanguageConversion " _
& "WHERE [FormName] = '" & frm.Name & "' " _
& " AND [Language] = 'French'"
Set rs = CurrentDb.OpenRecordset(strSQL, , dbFailOnError)
While Not rs.EOF
set ctrl = frm.Controls(rs("CtrlName"))
ctrl.Properties(rs("CtrlProperty")) = rs("CtrlValue")
rs.MoveNext
Wend
rs.Close
Set rs = Nothing

DoCmd.Close acForm, frm.Name, acSaveYes
Next

End Sub

One issue with using this for captions is that if the new caption is longer
than the old, and the label width is not wide enough, then you could cutoff
some text. you might want to consider adding a line like:

if ctrl.controltype = acLabel then ctrl.sizetofit

--
HTH
Dale

email address is invalid
Please reply to newsgroup only.
 
F

Frank Situmorang

Thanks Dale for your explanantion.

My apporoach is creating a table for the individual form and for each source
control label table I have them in many languages. I have tested it and it
works. But this is for caption of the constrol source's label. I forget that
for some source control propery I made a messgae on the control tip text
property.

My question is how should I make again for the control tips text a table?
and have the VBA as below? Can it work if I make the VBA:
Me.Form.Caption = .Fields(1)
Me.NamaAnggota_label.Control Tips Text = .Fields(2)

Something like that?

Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim s As String

On Error GoTo Err_Form_Open

Set db = DBEngine(0)(0)

s = Nz(DFirst("Language", "tblDefaults"), "English")

s = "SELECT * FROM [bukuangkby_label] WHERE Language = '" & _
s & "';"

' Debug.Print s ' for testing only

Set rst = db.OpenRecordset(s, dbOpenForwardOnly)

With rst

If Not .EOF Then

Me.Form.Caption = .Fields(1)
Me.NamaAnggota_label.Caption = .Fields(2)
)
End If
.Close
End With

Set rst = Nothing
Set db = Nothing

Exit_Form_Open:
Exit Sub


--
H. Frank Situmorang


Dale Fye said:
Frank,

You could add a table to your database that contains fields (FormName,
Language, CtrlName, CtrlProperty("Caption", "ControlTipText"), CtrlValue).
Then when the user changes the language they want to use, you could run some
code that loops through each of the forms (opening each form in design view,
hidden), gets the list of control names, properties, and values, for that
form, and updates the control properties. Then save and close the form.
This is untested, but It you should get the idea.

Public Sub LanguageControls()

Dim frm As Form, intForm As Integer
Dim ctrl As Control
Dim strSQL As String, rs As DAO.Recordset

For intForm = 0 To CurrentProject.AllForms.Count - 1
DoCmd.OpenForm CurrentProject.AllForms.Item(intForm).Name, acDesign
Set frm = Forms(0)

strSQL = "SELECT * FROM tbl_LanguageConversion " _
& "WHERE [FormName] = '" & frm.Name & "' " _
& " AND [Language] = 'French'"
Set rs = CurrentDb.OpenRecordset(strSQL, , dbFailOnError)
While Not rs.EOF
set ctrl = frm.Controls(rs("CtrlName"))
ctrl.Properties(rs("CtrlProperty")) = rs("CtrlValue")
rs.MoveNext
Wend
rs.Close
Set rs = Nothing

DoCmd.Close acForm, frm.Name, acSaveYes
Next

End Sub

One issue with using this for captions is that if the new caption is longer
than the old, and the label width is not wide enough, then you could cutoff
some text. you might want to consider adding a line like:

if ctrl.controltype = acLabel then ctrl.sizetofit

--
HTH
Dale

email address is invalid
Please reply to newsgroup only.



Frank Situmorang said:
Hello,

My Switchboard menu items takes the text from menutiems table.

Since I want to make the menu items according to the language of the
country. I want to insert the menu text in local as beside the the English
column. My question is how can we say in the menu text item of the form ithat
it will take the text from the local column?

The Ooher alternative is to replace the English with the local language
text, but it is not practical.

Thanks for any idea provided.
 
D

Dale Fye

Frank,

It sounds like your table structure contains the following fields:

Language
FormLabel
label1Caption
label2Caption
label3Caption

This is clunky (looks like a spreadsheet, and requires an extra column in
your table structure for each label. I strongly recommend you go with a
structure similar to what I provided (FormName, Language, CtrlName,
CtrlProperty, CtrlValue). The advantage of this is that you can determine
which property to change (caption, tooltiptext, or something else.

You could use a separate table for each form, but having a single table
makes more sense. You could create and populate this table with a
normalizing query that looks something like:

SELECT "bukuangkby" as [FormName], [Language],
"Form" as [CtrlName], "Caption" as [CtrlProperty],
[Column1] as CtrlValue
FROM [bukuangkby_label]
UNION ALL
SELECT "bukuangkby" as [FormName], [Language],
"NamaAnggota_label" as [CtrlName],
"Caption" as [CtrlProperty], [Column2] as CtrlValue
FROM [bukuangkby_label]
UNION ALL
SELECT "bukuangkby" as [FormName], [Language],
"nextlabel" as [CtrlName],
"Caption" as [CtrlProperty], [Column3] as CtrlValue
FROM [bukuangkby_label]

Once you have this query working, you can save it and make a make table
query to actually create your tbl_ControlProperties. Then do this for each
of the other form tables, and append them to your tbl_ControlProperties.
Finally, you go into that form, and add rows for the controls that you want
to give tooltiptext property.

The alternative is to create a table, similar to the one you have now that
is [bukuangkby_tooltips], where you have a language field, and a field for
each of the controls that has a tool tip. Then you just replicate the code
you have now, and instead of setting the Caption property, you set the
tooltiptext property.

I prefer my method, because it does it all in a single pass, contains a
single table (rather than one or two for each form), and has a table
structure that is easy to understand. Anyone looking at your tables a year
from now might have difficulty understanding what you are doing, but my
structure is much easier to decipher.

--
HTH
Dale

email address is invalid
Please reply to newsgroup only.



Frank Situmorang said:
Thanks Dale for your explanantion.

My apporoach is creating a table for the individual form and for each source
control label table I have them in many languages. I have tested it and it
works. But this is for caption of the constrol source's label. I forget that
for some source control propery I made a messgae on the control tip text
property.

My question is how should I make again for the control tips text a table?
and have the VBA as below? Can it work if I make the VBA:
Me.Form.Caption = .Fields(1)
Me.NamaAnggota_label.Control Tips Text = .Fields(2)

Something like that?

Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim s As String

On Error GoTo Err_Form_Open

Set db = DBEngine(0)(0)

s = Nz(DFirst("Language", "tblDefaults"), "English")

s = "SELECT * FROM [bukuangkby_label] WHERE Language = '" & _
s & "';"

' Debug.Print s ' for testing only

Set rst = db.OpenRecordset(s, dbOpenForwardOnly)

With rst

If Not .EOF Then

Me.Form.Caption = .Fields(1)
Me.NamaAnggota_label.Caption = .Fields(2)
)
End If
.Close
End With

Set rst = Nothing
Set db = Nothing

Exit_Form_Open:
Exit Sub


--
H. Frank Situmorang


Dale Fye said:
Frank,

You could add a table to your database that contains fields (FormName,
Language, CtrlName, CtrlProperty("Caption", "ControlTipText"), CtrlValue).
Then when the user changes the language they want to use, you could run some
code that loops through each of the forms (opening each form in design view,
hidden), gets the list of control names, properties, and values, for that
form, and updates the control properties. Then save and close the form.
This is untested, but It you should get the idea.

Public Sub LanguageControls()

Dim frm As Form, intForm As Integer
Dim ctrl As Control
Dim strSQL As String, rs As DAO.Recordset

For intForm = 0 To CurrentProject.AllForms.Count - 1
DoCmd.OpenForm CurrentProject.AllForms.Item(intForm).Name, acDesign
Set frm = Forms(0)

strSQL = "SELECT * FROM tbl_LanguageConversion " _
& "WHERE [FormName] = '" & frm.Name & "' " _
& " AND [Language] = 'French'"
Set rs = CurrentDb.OpenRecordset(strSQL, , dbFailOnError)
While Not rs.EOF
set ctrl = frm.Controls(rs("CtrlName"))
ctrl.Properties(rs("CtrlProperty")) = rs("CtrlValue")
rs.MoveNext
Wend
rs.Close
Set rs = Nothing

DoCmd.Close acForm, frm.Name, acSaveYes
Next

End Sub

One issue with using this for captions is that if the new caption is longer
than the old, and the label width is not wide enough, then you could cutoff
some text. you might want to consider adding a line like:

if ctrl.controltype = acLabel then ctrl.sizetofit

--
HTH
Dale

email address is invalid
Please reply to newsgroup only.



Frank Situmorang said:
Hello,

My Switchboard menu items takes the text from menutiems table.

Since I want to make the menu items according to the language of the
country. I want to insert the menu text in local as beside the the English
column. My question is how can we say in the menu text item of the form ithat
it will take the text from the local column?

The Ooher alternative is to replace the English with the local language
text, but it is not practical.

Thanks for any idea provided.
 
M

Michael Gramelspacher

I prefer my method, because it does it all in a single pass, contains a
single table (rather than one or two for each form), and has a table
structure that is easy to understand. Anyone looking at your tables a year
from now might have difficulty understanding what you are doing, but my
structure is much easier to decipher.

Dale, I had originally helped Frank. I agree that your solution is by far the best way to handle
the problem. It is a real expert solution. It is definitely a keeper for me.

I believe this is the table you suggested yesterday, except I changed the name:

CREATE TABLE FormLabels (
FormName TEXT(50) NOT NULL,
Language TEXT(50) NOT NULL,
CtrlName TEXT(50) NOT NULL,
CtrlProperty TEXT(50) NOT NULL
CHECK (In ('Caption','ControlTipText')),
CtrlValue TEXT(50),
PRIMARY KEY (FormName, Language,
CtrlName, CtrlProperty)
);

This is your code as tested. It works fine for me.
Note that it watches the recordset for a control named
Form_Caption and treats it as the form's caption, not as a
control.

Public Sub LanguageControls()

Dim frm As Form, intForm As Integer
Dim ctrl As Control
Dim strSQL As String, rs As DAO.Recordset

For intForm = 0 To CurrentProject.AllForms.Count - 1
DoCmd.OpenForm CurrentProject.AllForms.Item(intForm).Name, acDesign
Set frm = Forms(0)

strSQL = "SELECT * FROM FormLabels " _
& "WHERE [FormName] = '" & frm.Name & "' " _
& " AND [Language] = 'English'"

'Debug.Print strSQL 'for testing only

Set rs = CurrentDb.OpenRecordset(strSQL, , dbFailOnError)
While Not rs.EOF

If rs("CtrlName") = "Form_Caption" Then
frm.Caption = rs("CtrlValue")
Else
With frm.Controls(rs("CtrlName"))
If .ControlType = acLabel Then .SizeToFit
.Properties(rs("CtrlProperty")) = rs("CtrlValue")
End With
End If

rs.MoveNext
Wend
rs.Close
Set rs = Nothing

DoCmd.Close acForm, frm.Name, acSaveYes
Next

End Sub
 
D

Dale Fye

Michael,

Thanks for fleshing this out, and testing it. My response was just air
code, and I've never actually had to implement a foreign language version
(most of my work has been for the US Govt).

I hadn't really thought about the Forms caption until I responded this
morning, so I didn't address that in my code. I would probably do two things
differently:
1. I would select the Splash screen first, and after saving it, I would
reopen it with a message indicating the database is being reconfigured for
the specific language of interest.
2. OpenForm method, I would modify that line to open it hidden, so the user
doesn't see the work that is going on.

--
Dale

email address is invalid
Please reply to newsgroup only.



Michael Gramelspacher said:
I prefer my method, because it does it all in a single pass, contains a
single table (rather than one or two for each form), and has a table
structure that is easy to understand. Anyone looking at your tables a year
from now might have difficulty understanding what you are doing, but my
structure is much easier to decipher.

Dale, I had originally helped Frank. I agree that your solution is by far the best way to handle
the problem. It is a real expert solution. It is definitely a keeper for me.

I believe this is the table you suggested yesterday, except I changed the name:

CREATE TABLE FormLabels (
FormName TEXT(50) NOT NULL,
Language TEXT(50) NOT NULL,
CtrlName TEXT(50) NOT NULL,
CtrlProperty TEXT(50) NOT NULL
CHECK (In ('Caption','ControlTipText')),
CtrlValue TEXT(50),
PRIMARY KEY (FormName, Language,
CtrlName, CtrlProperty)
);

This is your code as tested. It works fine for me.
Note that it watches the recordset for a control named
Form_Caption and treats it as the form's caption, not as a
control.

Public Sub LanguageControls()

Dim frm As Form, intForm As Integer
Dim ctrl As Control
Dim strSQL As String, rs As DAO.Recordset

For intForm = 0 To CurrentProject.AllForms.Count - 1
DoCmd.OpenForm CurrentProject.AllForms.Item(intForm).Name, acDesign
Set frm = Forms(0)

strSQL = "SELECT * FROM FormLabels " _
& "WHERE [FormName] = '" & frm.Name & "' " _
& " AND [Language] = 'English'"

'Debug.Print strSQL 'for testing only

Set rs = CurrentDb.OpenRecordset(strSQL, , dbFailOnError)
While Not rs.EOF

If rs("CtrlName") = "Form_Caption" Then
frm.Caption = rs("CtrlValue")
Else
With frm.Controls(rs("CtrlName"))
If .ControlType = acLabel Then .SizeToFit
.Properties(rs("CtrlProperty")) = rs("CtrlValue")
End With
End If

rs.MoveNext
Wend
rs.Close
Set rs = Nothing

DoCmd.Close acForm, frm.Name, acSaveYes
Next

End Sub
 
F

Frank Situmorang

Mike:

Thanks for your idea, I will try to understand all of this. The one that you
suggested has worked for me, but now Dale's suggestion is all in a simple
pass and will be better.

As you know me it is faster for me to undestand if it is learning by doing,
so if you don't mind, could you please send me Dale's suggestion that you
tested and it works?

Thanks and God bless,

--
H. Frank Situmorang


Michael Gramelspacher said:
I prefer my method, because it does it all in a single pass, contains a
single table (rather than one or two for each form), and has a table
structure that is easy to understand. Anyone looking at your tables a year
from now might have difficulty understanding what you are doing, but my
structure is much easier to decipher.

Dale, I had originally helped Frank. I agree that your solution is by far the best way to handle
the problem. It is a real expert solution. It is definitely a keeper for me.

I believe this is the table you suggested yesterday, except I changed the name:

CREATE TABLE FormLabels (
FormName TEXT(50) NOT NULL,
Language TEXT(50) NOT NULL,
CtrlName TEXT(50) NOT NULL,
CtrlProperty TEXT(50) NOT NULL
CHECK (In ('Caption','ControlTipText')),
CtrlValue TEXT(50),
PRIMARY KEY (FormName, Language,
CtrlName, CtrlProperty)
);

This is your code as tested. It works fine for me.
Note that it watches the recordset for a control named
Form_Caption and treats it as the form's caption, not as a
control.

Public Sub LanguageControls()

Dim frm As Form, intForm As Integer
Dim ctrl As Control
Dim strSQL As String, rs As DAO.Recordset

For intForm = 0 To CurrentProject.AllForms.Count - 1
DoCmd.OpenForm CurrentProject.AllForms.Item(intForm).Name, acDesign
Set frm = Forms(0)

strSQL = "SELECT * FROM FormLabels " _
& "WHERE [FormName] = '" & frm.Name & "' " _
& " AND [Language] = 'English'"

'Debug.Print strSQL 'for testing only

Set rs = CurrentDb.OpenRecordset(strSQL, , dbFailOnError)
While Not rs.EOF

If rs("CtrlName") = "Form_Caption" Then
frm.Caption = rs("CtrlValue")
Else
With frm.Controls(rs("CtrlName"))
If .ControlType = acLabel Then .SizeToFit
.Properties(rs("CtrlProperty")) = rs("CtrlValue")
End With
End If

rs.MoveNext
Wend
rs.Close
Set rs = Nothing

DoCmd.Close acForm, frm.Name, acSaveYes
Next

End Sub
 
F

Frank Situmorang

Mike:

Further to my previous email, I have tried to understand the table and the
VBA. I can make the table's fields with their primary key, but I do not know
where is the CHECK (In ('Caption','ControlTipText'). Is it
('Caption','ControlTipText') to be typed in lookup tab of the field property?.

The other thing is the VBA Public Sub LanguageControls() a module? not part
of the form VBA?

Thanks for your advice
--
H. Frank Situmorang


Michael Gramelspacher said:
I prefer my method, because it does it all in a single pass, contains a
single table (rather than one or two for each form), and has a table
structure that is easy to understand. Anyone looking at your tables a year
from now might have difficulty understanding what you are doing, but my
structure is much easier to decipher.

Dale, I had originally helped Frank. I agree that your solution is by far the best way to handle
the problem. It is a real expert solution. It is definitely a keeper for me.

I believe this is the table you suggested yesterday, except I changed the name:

CREATE TABLE FormLabels (
FormName TEXT(50) NOT NULL,
Language TEXT(50) NOT NULL,
CtrlName TEXT(50) NOT NULL,
CtrlProperty TEXT(50) NOT NULL
CHECK (In ('Caption','ControlTipText')),
CtrlValue TEXT(50),
PRIMARY KEY (FormName, Language,
CtrlName, CtrlProperty)
);

This is your code as tested. It works fine for me.
Note that it watches the recordset for a control named
Form_Caption and treats it as the form's caption, not as a
control.

Public Sub LanguageControls()

Dim frm As Form, intForm As Integer
Dim ctrl As Control
Dim strSQL As String, rs As DAO.Recordset

For intForm = 0 To CurrentProject.AllForms.Count - 1
DoCmd.OpenForm CurrentProject.AllForms.Item(intForm).Name, acDesign
Set frm = Forms(0)

strSQL = "SELECT * FROM FormLabels " _
& "WHERE [FormName] = '" & frm.Name & "' " _
& " AND [Language] = 'English'"

'Debug.Print strSQL 'for testing only

Set rs = CurrentDb.OpenRecordset(strSQL, , dbFailOnError)
While Not rs.EOF

If rs("CtrlName") = "Form_Caption" Then
frm.Caption = rs("CtrlValue")
Else
With frm.Controls(rs("CtrlName"))
If .ControlType = acLabel Then .SizeToFit
.Properties(rs("CtrlProperty")) = rs("CtrlValue")
End With
End If

rs.MoveNext
Wend
rs.Close
Set rs = Nothing

DoCmd.Close acForm, frm.Name, acSaveYes
Next

End Sub
 
M

Michael Gramelspacher

Mike:

Further to my previous email, I have tried to understand the table and the
VBA. I can make the table's fields with their primary key, but I do not know
where is the CHECK (In ('Caption','ControlTipText'). Is it
('Caption','ControlTipText') to be typed in lookup tab of the field property?.

The other thing is the VBA Public Sub LanguageControls() a module? not part
of the form VBA?

Thanks for your advice

Public Sub LanguageControls() should go in a module. One thing to keep in mind is that this code
opens forms in Design View. I think this can only be done in a .mdb file, not in a .mde file.

The In("Caption", "ControlTipText") is a Validation Rule on the column CtrlProperty.
 
F

Frank Situmorang

Thanks very much Mike. I will try to understand it thoroughly. I think I
decided to use Dale's suggestion as it is more traceable and more
comprehensive.

My knowledge is increased litte by little, so I appreciate if you could also
explain how can it be the 4 primary keys, but it can duplicate, normally PK
can not duplicate data. Also in the design view of the table we do not even
see tthe field property that says allow duplicate or not. Could you tell me
how do you desingn it that way. Before, I have seen the bulit in access main
swithchboard items used this kind of approac of table, but I still can not
understand how the primary key could duplicate data in it.

Thanks very much.

Frank
 
M

Michael Gramelspacher

Thanks very much Mike. I will try to understand it thoroughly. I think I
decided to use Dale's suggestion as it is more traceable and more
comprehensive.

My knowledge is increased litte by little, so I appreciate if you could also
explain how can it be the 4 primary keys, but it can duplicate, normally PK
can not duplicate data. Also in the design view of the table we do not even
see tthe field property that says allow duplicate or not. Could you tell me
how do you desingn it that way. Before, I have seen the bulit in access main
swithchboard items used this kind of approac of table, but I still can not
understand how the primary key could duplicate data in it.

Thanks very much.

Frank

You could select New Query, add no tables, and switch Query Design View to
SQL and copy this and paste it into the SQL window. Save it and run it. Your table is created.

CREATE TABLE FormLabels (
FormName TEXT(50) NOT NULL,
Language TEXT(50) NOT NULL,
CtrlName TEXT(50) NOT NULL,
CtrlProperty TEXT(50) NOT NULL,
CtrlValue TEXT(100),
PRIMARY KEY (FormName, Language,
CtrlName, CtrlProperty)
);

Now you still need to open the table in design view and add the Validation Rule for the column
CtrlProperty.

Is your question that you do not understand the concept of a multiple-column primary key? Or maybe
it is that you do not know how to do it in table design view? Just select the four fields and press
the Primary Key Icon on the Toolbar.

A primary key cannot have duplicate data. There cannot be two rows where columns FormName,
Language,CtrlName and CtrlProperty have the same data. That would violate the primary key and the
database would reject the duplicate row.

I have a feeling that I am still not answering your question.
 
F

Frank Situmorang

Thanks Mike, You have taught me how to make table starting from SQL view. I
did itwith the conventinal way, adding row and then I press ctrl then the
icon key, then the 4 colums become primary key, but when I simulated it by
filling the data it was rejected because my concept of multiple primary key
is still wrong. then when I read your posting I rethink it and should view
the 4 as 1 primary key when filling the data, then I understand now.

So thank you very much, and I still see that clicking the default button is
sill used to choose the languange to be used, right?. Yes, after clicking
the default to choose the language and churchID, then I wll make it .MDE
format before I send the software to the user.

One issue maybe when I fill in the Korean, or Japanese language which are
not Latin alphabet. could it be working?. Anyway let me do it step by step.
After langguage issue, maybe the next which I think maybe the last is
creating the menu for import/exporting as the way to consolidate the data in
the Regions, Union dan Division's levels.


Thanks & Regards
 
F

Frank Situmorang

Mike:

I forgot to say that I plan to make foreign language for reports too. I
appreciate it if you could inform me what to be modified in the module and
Get forms query also should incluce the reports.

Thanks and Regards
 
M

Michael Gramelspacher

Mike:

I forgot to say that I plan to make foreign language for reports too. I
appreciate it if you could inform me what to be modified in the module and
Get forms query also should incluce the reports.

Thanks and Regards

For reports try creating a new subprogram using Dale's code, but change CurrentProjects.Allforms to
CurrentProject.AllReports. There are a few other changes needed, but basically it is the same as
for forms. Instead of Forms(0) it will be Reports(0). Instead of Dim frm As Form use Dim rpt As
Report. Just work with it and do some testing.
 
F

Frank Situmorang

Mike:

The subroutine FillFormLabels is called in the open event, but I do not know
when the sub: LanguageControls is called.

I need to know it whether I make the other sub LanguageControls or I just
add like you said.

Thanks for your advice
 
M

Michael Gramelspacher

Mike:

The subroutine FillFormLabels is called in the open event, but I do not know
when the sub: LanguageControls is called.

I need to know it whether I make the other sub LanguageControls or I just
add like you said.

Thanks for your advice

You said you intended to use Dale's code to change the language of all labels prior to making the
..mde. This means you will have a separate .mde for each language. If you use Dale's method, then
there is no code needed in the Open Event of forms and reports. You run Dale's subprogram one time
prior to making the .mde for each language You also need to run a subprogram to change the labels
of reports. You need to create yourself this subprogram to change report labels, but it is almost
identical to Dale's subprogam for forms. This has already been explained. I hope you understand
now.
 
F

Frank Situmorang

Mike:

Sorry I am a slow learner, you said there will be no code in the open even,
but I found it this we still have code. Isn't it what you mean? this below:
Private Sub Report_Open(Cancel As Integer)

On Error GoTo Err_Report_Open

Call FillReportLabels(Me.Name)

Exit_Report_Open:
Exit Sub

Err_Report_Open:
Select Case Err.Number
Case Else
Call ShowError(Err.Number, Err.Description, "Report_Worldwide
Membership Report." _
& "Report_Open")
Resume Exit_Report_Open
End Select


End Sub

Sould we comment this out, if we use Dale's menthod?, but in the sample you
sent me is already Dales' menthod, why is this still exist?

Thanks in advance
 
M

Michael Gramelspacher

Sould we comment this out, if we use Dale's menthod?, but in the sample you
sent me is already Dales' menthod, why is this still exist?

It exists, because you have not commented it out or deleted it, if, in fact, you have absolutely no
use for it. The decision is yours. It is your project. I cannot guide you every step of the way.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top