Access DB meertalig maken

Status
Niet open voor verdere reacties.

obiku

Gebruiker
Lid geworden
25 jul 2004
Berichten
60
Ik ben bezig om een Access database meertalig te maken. Hiervoor gebruik ik een aantal externe taal modules <Language>.bas die ik bij opstarten van mijn database laat inporteren. Zie code
Code:
Private Sub Form_Load()
    Dim ProjectPath As String
    ProjectPath = CurrentProject.Path
    Language = GetInfo(LOCALE_SENGLANGUAGE)
    If File_Exists(ProjectPath & LANGUAGEDIR & Language & ".bas") Then
        Application.VBE.ActiveVBProject.VBComponents.Import (Application.CurrentProject.Path & LANGUAGEDIR & Language & ".bas")
   Else
        Application.VBE.ActiveVBProject.VBComponents.Import (Application.CurrentProject.Path & LANGUAGEDIR & "English.bas")
    End If
    
End Sub
Dit is van mijn mainmenu, welke opgestart wordt zodra ik mijn database open. Deze <Language>.bas bestanden bestaan uit constante met vertalingen van teksten die gebruikt worden. Nu zodra de systeem taal Nederlands is worden de teksten in Nederlands weergegeven, bij systeemtaal engels alles in engels.

Nu moet ik, om geen duplicaat modules te krijgen, bij het afsluiten van mijn database de ge�mporteerde module weer verwijderen. Zie code:
Code:
Private Sub Form_Unload(Cancel As Integer)
    Language = GetInfo(LOCALE_SENGLANGUAGE)
    Application.VBE.ActiveVBProject.VBComponents.Remove Application.VBE.ActiveVBProject.VBComponents.Item(Language)
End Sub
Als ik nu mijn main formulier afsluit wordt de module verwijderd zonder problemen. Maar als ik mijn main formulier open laat en ik sluit Access af, dan krijg ik de melding dat ik Module <Language> moet opslaan.

Hoe kan ik dit voorkomen, hoe kan ik die melding uitschakelen.
 
Waarom gebruik je geen functie om te controleren of de Module al bestaat, en importeer je alleen als hij nog niet in de db zit? dan hoef je hem ook niet meer weg te gooien, en vervalt het probleem dat je hem dubbel importeert.
 
Het probleem is hier niet mee opgelost. Zodra er een andere systeem taal gekozen wordt moet toch de eerste taal verwijderd worden, om daarna de nieuwe taal te importeren. En dan heb ik opnieuw hetzelfde probleem zodra access afgesloten wordt.

Dan zal je zeggen, de systeem taal veranderd nagenoeg nooit. Dat is zo, maar de systeem taal kan wel veranderen. En dan het ik toch het probleem. Ten tweede, ik heb mijn database opgesplitst in een frontend en een backend. De frontend staat net als de backend op de server. Mijn gebruikers hebben een shortcut op hun PC. Zodra deze shortcut wordt gebruikt wordt er tijdelijk een kopie van de frontend op de PC gezet. Deze frontend wordt weer verwijderd zodra de DB afgesloten wordt.

Voordelen hiervan, ik kan aanpassingen aan de frontend op de server zetten en zodra iemand de database opstart gebruikt hij automatisch de laatste versie (DB is nog in ontwikkeling, maar er wordt wel al live data ingezet)

Nadeel is dan direct dat er altijd bekeken moet worden wat de systeem taal is, en welke language module geladen moet worden.
 
Dan zou ik het hoofdformulier zo instellen dat je het niet kunt afsluiten; de Sluitprocedure dwing je dan af met een knop <Afsluiten> op het formulier, zodat je zeker weet dat de procedures in de db netjes worden doorlopen.
Op deze pagina van Microsoft zie je hoe je de Close knop van Access kunt uitzetten.
 
Toppertje, dan heb ik dit issue ook geteckelt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan