IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

affecter une valeur à une Variable public


Sujet :

VBA Access

  1. #1
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 575
    Points : 259
    Points
    259
    Par défaut affecter une valeur à une Variable public
    bonjour

    j'ai encore un petit souci

    J'ai dans ma base une fonction qui me permet de changer de base dorsale en fonction de mes besoin (maintenance consultation d'archives....)

    Dans cette fonction il y a donc les adresses des différents fichiers à ouvrir.

    Au lieu de mettre les adresses je souhaite utiliser une variable (qui en fait aura toujours la même la valeur "un chemin de repertoire").
    L'avantage que j'y vois c'est qu'en fonction de la distribution de mon application les adresses changent et je préfèrerai changer la valeur de ma variable plutot que de chercher dans mon code toutes les références.

    J'ai essayer de déclarer mes variables en public dans un module mais je n'arrive pas à leur donner une valeur

    voila ce que j'ai pour le moment:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Option Compare Database
    Option Explicit
     
    Public basedorsalelocale As Long
    Public basedorsalereseau As Long
    Mais j'ai rien trouver pour leur donner une valeur
    j'ai essayer ça mais sans succés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    basedorsalelocale = "C:\Program Files\gestion SEGPA\Eleves SEGPA"
    j'ai meme essayer de faire une fonction qui ressemble à ça mais toujours sans succés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    Public Function basedorsalelocale() As Long
    basedorsalelocale = "C:\Program Files\gestion SEGPA\Eleves SEGPA données.mdb"
     
    End Function
     
    Public Function basedorsalereseau() As Long
    basedorsalereseau = "\\Serveur00\segpa\Administration\Gestion SEGPA\Eleves SEGPA données.mdb"
     
    End Function
    voila j'espére avoir été clair
    merci pour votre aide

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Public basedorsalereseau As Long
    Tu affectes une chaine à un entier ! Tu voulais pas dire String à la place de Long ?

  3. #3
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 575
    Points : 259
    Points
    259
    Par défaut
    Effectivement string c'est mieux
    mais j'ai déjà essayer mais ca ne change rien je n'arrive pas à lui affecter une valeur.

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Il faut un peu plus d'inforamtions. As tu un message ?

  5. #5
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 575
    Points : 259
    Points
    259
    Par défaut
    quand je ne fais que déclarer ma variable "basedorsalereseau" je n'ai pas de message
    mais elle est égale à 0
    Moi je voudrais lui donner la valeur :
    "\\Serveur00\segpa\Administration\Gestion SEGPA\Eleves SEGPA données.mdb"

    mais je ne sais pas comment car si je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    basedorsalereseau ="\\Serveur00\segpa\Administration\Gestion SEGPA\Eleves SEGPA données.mdb"
    il me dit que je ne suis pas une sub
    et la je ne sais pas quoi faire d'autre
    j'espère que ca te donne quelques indication de plus

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Je ne sais pas ce qui se passe mais si ta variable est bien un String, il ne devrait y avoir aucun problème pour lui affecter le chemin que tu veux. !

  7. #7
    Invité
    Invité(e)
    Par défaut
    Salut

    N'as tu pas une routine (une sub) qui a le même nom que ta variable ? Si oui change de nom.

    Starec

  8. #8
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 575
    Points : 259
    Points
    259
    Par défaut
    ca y est j'ai trouvé j'ai mis un peu d'ordre et corriger mon code

    voila ce que j'ai mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Option Compare Database
    Option Explicit
    Public basedorsalelocale As String
    Public basedorsalereseau As String
     
     
    Public Function cheminlocal() As String
     
    basedorsalelocale = "C:\Program Files\gestion SEGPA\Eleves SEGPA données.mdb"
     
    End Function
     
    Public Function cheminreseau() As String
    basedorsalereseau = "C:\Program Files\gestion SEGPA\copie de Eleves SEGPA données.mdb"
     
    End Function
    De cette façon ça fonctionne mais du coup je suis obligé d'appeler la fonction chemin.... avant de pouvoir utilisé ma variable.
    Comment faire pour que sa valeur soit défini pour ne pas avoir à lancer la fonction chemin... à chaque fois que j'en ai besoin....

    Peut etre faut t'il lancé la fonction chemin au démarage de l'application de façon a définir ma variable à chaque lancement de l'application.

    Est ce la bonne méthode ou y at'il mieux parce que j'ai un peu l'impression de faire du bricolage....

    Merci pour votre aide et vos conseils avisés

  9. #9
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    tu peux utiliser des constantes :
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Option Compare Database
    Option Explicit
     
    Public Const basedorsalelocale As String = "C:\Program Files\gestion SEGPA\Eleves SEGPA données.mdb"
    Public Const basedorsalereseau As String = "C:\Program Files\gestion SEGPA\copie de Eleves SEGPA données.mdb"

    Un autre exemple avec compilation conditionnelle
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Option Compare Database
    Option Explicit
     
    #Const MODE_TEST = 0
     
    Public Const basedorsalelocale As String = "C:\Program Files\gestion SEGPA\Eleves SEGPA données.mdb"
     
    #If MODE_TEST = 0 Then
     Public Const ModeTest = False
     Public Const basedorsalereseau As String = "\\Serveur00\segpa\Administration\Gestion SEGPA\Eleves SEGPA données.mdb"
    #Else
     Public Const ModeTest = True
     Public Const basedorsalereseau As String = "C:\Program Files\gestion SEGPA\copie de Eleves SEGPA données.mdb"
    #End If
    En temp normal tu laisses MODE_TEST = 0. VBA compile avec le chemin réseau \\Serveur00\....
    Lorsque tu veux faire des tests sans le réseau tu mets une valeur autre que zéro à MODE_TEST.
    VBA compilera avec la ligne entre #Else et #End If
    La constante ModeTest permet de savoir si on est en mode "Test" ou "Normal".

    A+

  10. #10
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 575
    Points : 259
    Points
    259
    Par défaut
    alors là chapeau bas Monsieur LedZeppII !!!!!



    exactement ce que je voulais et même en mieux
    Je suis super content et en plus tu expliques comment ça marche en prime
    Avec ça je progresse à vue d'oeil
    Merci encore ça fait 2 fois ce matin que tu me sauves la vie...

  11. #11
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Y a pas de quoi

    Un dernier conseil.
    Je me sert de la constante ModeTest pour modifier le "Caption" de mon formulaire principal si jamais ModeTest=True,
    et ainsi me rappeler que je dois remettre #Const MODE_TEST = 0 quand j'ai fini mes tests.
    Je me suis déjà fait piéger en laissant une appli en mode test

    Bon weekend

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. affecter plusieurs valeurs à une variable
    Par khamett dans le forum VBScript
    Réponses: 2
    Dernier message: 19/06/2013, 11h14
  2. Affecter une valeur à une variable avec requête SQL
    Par xeron33 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 26/02/2013, 00h57
  3. affecter une valeur à une variable
    Par rutabagas dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 08/02/2011, 09h49
  4. Réponses: 2
    Dernier message: 06/09/2010, 16h05
  5. Réponses: 3
    Dernier message: 14/05/2009, 17h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo