Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Contribuez
Contribuez Access : Vos contributions. Postez ici vos codes sources, conseils, astuces et autres propositions. Ce forum n'est pas un forum technique mais destiné aux contributions pour www.developpez.com
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/06/2011, 12h24   #1
Membre du Club
 
Homme Yves
Inscription : novembre 2006
Messages : 114
Détails du profil
Informations personnelles :
Nom : Homme Yves
Localisation : Belgique

Informations professionnelles :
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2006
Messages : 114
Points : 50
Points : 50
Par défaut Petite fonction pour changer la langue d'un contrôle

Bonjour,

Sans prétention mais surtout parceque j'ai un peu sué dessus pour y arriver (même si j'ai l'impression de réinventer le fil à couper le beurre), voici une fonction qui permet de rendre sa base multilingues.

L'idée est d'avoir une table qui regroupe les version d'un texte en différents languages (un language par colonne), la première colone (= colonne 0) étant réservée à une numérotation croissante qui identifie chaque enregistrement.
Et par ailleurs, on définit une valeur qui correspond a la langue désirée. Ceci peut se faire via un formulaire qui reste tout le temps ouvert (genre menu principal sur lequel par exemple on a un toggle bouton avec deux choix: 1- francais, 2- anglais), soit via une variable globale initialisée au départ ou en fonction du choix de l'utilisateur. Les possibilité sont nombreuses.

Pour utiliser cette fonction, il faut d'abord initialiser le toggle bouton (ou la variable globale), puis dans le code appeler par exemple:

Code :
MsgBox mylng(14) 'ici 14 représente le 14ème enregistrement de la table
Le principe fonctionne pour les zones de textes, les captions, enfin un peu tout quoi.

Voila.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Public Function mylng(idctrl As Integer) As String
 
Dim oDb As DAO.Database
Dim oRst As DAO.Recordset
Dim SQL As String
Dim varX As Variant
Dim n As Integer
 
Dim tbl As String
'Instancie la base de données
Set oDb = CurrentDb
 
tbl = "tbl" 'table qui contient en colone 0 un nombre croissant(indexé ou non), en colonne 1 la version française d'un texte, en colonne 2 la version étrangère du texte
SQL = "SELECT * FROM " & tbl
Set oRst = oDb.OpenRecordset(SQL)
n = Forms!MenuPrincipal!frmlng.Value 'fait référence a la valeur d'un frame contenant pour l'exemple un toggle bouton avec 2 choix
'idctrl fait référence au nombre de la colone 0 de la table de référence langues
 
Select Case frmlng
Case 1
varX = DLookup(oRst.Fields(n).Name, "tblMenuPrincipal", "[IDctrl] = " & idctrl)
Case 2
varX = DLookup(oRst.Fields(n).Name, "tblMenuPrincipal", "[IDctrl] = " & idctrl)
Case Else
End Select
 
mylng = varX
 
oRst.Close
oDb.Close
Set oRst = Nothing
Set oDb = Nothing
 
End Function
Dermochelys est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h32.


 
 
 
 
Partenaires

Hébergement Web