Form met taal selectie

Status
Niet open voor verdere reacties.

RobertJB66

Gebruiker
Lid geworden
2 feb 2022
Berichten
219
Forum leden,

In de bijlage zit een klein appje als voorbeeld.
De bedoeling is dat de knoppen de taal aannemen uit de tabel.

Voor het testen heb ik in de load routine "ENG"opgenomen kan, verandert, wordt naar "NL"

On Error GoTo frmLoadErrhandler
ctlLoad Forms!Form1, "ENG"
frmLoadErrExit:

Ik krijg echter een foutmelding war ik geen idee van heb waar nu toch de fout zit.

Heeft iemand van jullie een idee en/of oplossing.
 

Bijlagen

Data fouten in je tabel:
  • END => ENG
  • Command => Command2
Fout in je DLOOKUP:
  • LanguageId => LangId
  • ctl.Namestr => cltNamestr

En probeer het eens zo:
Code:
For Each ctl In Me.Controls
    With ctl
        Select Case .ControlType
            Case acLabel, acCommandButton
                ctlNamestr = ctl.Name
                ctlString = DLookup("ctlCaption", "tbl_ControlCaption", "ctlName='" + ctlNamestr + "' and LangID='" + LangID + "'")
                .Caption = ctlString
            Case acTextBox
        End Select
    End With
Next ctl
 
Waarom het + teken? Erg gevaarlijk in een database als je teksten samenvoegt. Gebruik de ampersand: &. Idem voor het enkele aanhalingsteken, dat je beter kan vervangen door de dubbele. Kan namelijk ook fouten opleveren. En je gebruikt nutteloze variabelen. Nota bene is de naam van één variabele langer dan waar hij voor staat; je moet dus méér typen! En Als LangID een getal is, wat de naam suggereert, moet je hem niet als tekst behandelen. Dus bij mij zou het er zo uit zien:
Code:
For Each ctl In Me.Controls
    With ctl
        Select Case .ControlType
            Case acLabel, acCommandButton
                .Caption= DLookup("ctlCaption", "tbl_ControlCaption", "ctlName=""" & ctl.Name & """ And LangID=" & LangID )
            Case acTextBox
        End Select
    End With
Next ctl
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan