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 :

Concaténation variable publique


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Femme Profil pro
    Architecte de base de données
    Inscrit en
    Avril 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 8
    Par défaut Concaténation variable publique
    Bonjour,

    J'ai 5 variables publiques : SousPerimetre1 à SousPerimetre5, auxquelles j'ai déjà affecté des valeurs. Je voudrai leur donner la valeur nulle en fonction de la valeur de la case à cocher correspondante. Les cases à cocher sont nommées Case_1 à Case_5. J'ai essayé le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Image_Valider_Click()
     
    For i = 1 To 5
       If Forms![03ChoixPerimetre].Controls("Case_" & i).Visible = True And _
       Forms![03ChoixPerimetre].Controls("Case_" & i).Value = 0 Then
          SousPerimetre & i = ""   
       End If
    Next i
     
    DoCmd.Close acForm, "03ChoixPerimetre"
    DoCmd.OpenForm ("04ConstructionOuSuivi")
     
    End Sub
    Il ne fonctionne pas, j'aimerai savoir si la concaténation est possible sur une variable publique. J'ai essayé les parenthèses, et plein d'autres choses mais rien ne fonctionne. Pouvoir concaténer des variables me serait utile dans d'autres codes également...

  2. #2
    Membre chevronné
    Homme Profil pro
    Amateur
    Inscrit en
    Octobre 2010
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Octobre 2010
    Messages : 205
    Par défaut
    Bonjour

    Un tableau semble plus adapté

    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
    Public SousPérimètre(4) as string 'Quel est le type de SousPérimètre ???
     
    Private Sub Image_Valider_Click()
    Dim i as long
     
    For i = 1 To 5
     
       If Forms![03ChoixPerimetre].Controls("Case_" & i).Visible = True And _
       Forms![03ChoixPerimetre].Controls("Case_" & i).Value = 0 Then
     
              SousPerimetre (i-1)=""  
     
       End If
     
    Next i

    Cordialement

  3. #3
    Membre régulier
    Femme Profil pro
    Architecte de base de données
    Inscrit en
    Avril 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 8
    Par défaut
    Merci pour cette réponse si rapide, le problème c'est que ces variables (type chaîne) sont déjà utilisées dans pas mal de codes et proviennent du résultat d'une requête. J'ai une cinquantaine de formulaires donc il faudrait que je regarde dans chaqun d'eux pour tout changer. Existe-t-il une autre solution?

    PS : Comment faire pour afficher l'extrait du code comme vous le faites avec les numéros de lignes, je suis encore novice en access et ce serait plus lisible pour mes futures questions

  4. #4
    Membre chevronné
    Homme Profil pro
    Amateur
    Inscrit en
    Octobre 2010
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Octobre 2010
    Messages : 205
    Par défaut
    Citation Envoyé par chidori-san Voir le message
    Existe-t-il une autre solution?
    Personnellement, je ne vois pas sans beaucoup plus de détails sur votre application...

    Pour faire apparaître votre code, il faut utiliser la balise [Code], dans la fenêtre de rédaction, dans la barre d'outils, vous avez un icone #.

  5. #5
    Membre régulier
    Femme Profil pro
    Architecte de base de données
    Inscrit en
    Avril 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 8
    Par défaut
    En fait, plusieurs utilisateurs utilisent la BDD. Certains d'entre eux, les responsables, ont un périmètre de responsabilité, découpé en un ou plusieurs (maximum 5) sous périmètres. Donc, quand ils s'identifient afin d'accéder à la base, je retiens les informations donc j'ai souvent besoin après : nom, prénom, périmètre, sous-périmètre,...
    La BDD sert , entre autres, à restituer des états analysant les frais réels, à faire des demandes de modification de budgets, à construire ces derniers,...
    Donc j'ai créé un accès pour les responsables : ils arrivent sur un formulaire dans lequel s'inscrivent leurs sous-périmètres de responsabilité (sauf s'ils n'en n'ont qu'un, dans ce cas, ils passent directement au formulaire suivant). Ils doivent cocher ceux qui les intéressent à l'instant t, pour que tous les formulaires suivants puissent être pré-remplis.

    Merci encore une fois de m'aider. Sinon, comme il n'y a pas beaucoup de choix, je peux faire une fonction public dépendant de i avec Select case (case 1, vider SousPerimetre1,...) puis appeler la fonction dans le code du formulaire de choix? Ce n'est pas la première fois que j'ai envie de concaténer des variables, et chaque fois je passe par autre chose. Il n'y a pas une fonction ou autre qui permette de le faire?

  6. #6
    Membre chevronné
    Homme Profil pro
    Amateur
    Inscrit en
    Octobre 2010
    Messages
    205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Octobre 2010
    Messages : 205
    Par défaut
    Citation Envoyé par chidori-san Voir le message
    Sinon, comme il n'y a pas beaucoup de choix, je peux faire une fonction public dépendant de i avec Select case (case 1, vider SousPerimetre1,...) puis appeler la fonction dans le code du formulaire de choix? Ce n'est pas la première fois que j'ai envie de concaténer des variables, et chaque fois je passe par autre chose. Il n'y a pas une fonction ou autre qui permette de le faire?
    En effet, si toute votre application est construite sur cette base...

    Un select case, sinon, personnellement, je ne vois pas... à part remettre votre base d'aplomb !

    Pour la "concaténation", il ne me semble pas avoir déjà vu quelque chose de ce type.

    Désolé , peut-être quelqu'un d'autre ?

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Rédacteur technique
    Inscrit en
    Avril 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2012
    Messages : 3
    Par défaut
    Citation Envoyé par chidori-san Voir le message
    En fait, plusieurs utilisateurs utilisent la BDD. Certains d'entre eux, les responsables, ont un périmètre de responsabilité, découpé en un ou plusieurs (maximum 5) sous périmètres. Donc, quand ils s'identifient afin d'accéder à la base, je retiens les informations donc j'ai souvent besoin après : nom, prénom, périmètre, sous-périmètre,...
    La BDD sert , entre autres, à restituer des états analysant les frais réels, à faire des demandes de modification de budgets, à construire ces derniers,...
    Donc j'ai créé un accès pour les responsables : ils arrivent sur un formulaire dans lequel s'inscrivent leurs sous-périmètres de responsabilité (sauf s'ils n'en n'ont qu'un, dans ce cas, ils passent directement au formulaire suivant). Ils doivent cocher ceux qui les intéressent à l'instant t, pour que tous les formulaires suivants puissent être pré-remplis.

    Merci encore une fois de m'aider. Sinon, comme il n'y a pas beaucoup de choix, je peux faire une fonction public dépendant de i avec Select case (case 1, vider SousPerimetre1,...) puis appeler la fonction dans le code du formulaire de choix? Ce n'est pas la première fois que j'ai envie de concaténer des variables, et chaque fois je passe par autre chose. Il n'y a pas une fonction ou autre qui permette de le faire?
    Si j'ai bien compris chaque fois qu'un utlisateur se connecte sur ta db; il sélectionne dans un formulaire "un sous-périmètre" puis ouvre un autre formulaire?. A la fermeture du 1er formulaire il est possible d'écrire la valeur que tu cherche dans une variable public pour la concaténer.

Discussions similaires

  1. Timeout Variables Publiques.
    Par Le_Phasme dans le forum Access
    Réponses: 1
    Dernier message: 27/06/2006, 20h27
  2. Réponses: 11
    Dernier message: 11/05/2006, 10h09
  3. [MySQL] Problème concaténation variables
    Par renaud26 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 19/03/2006, 17h33
  4. [Tableaux] problème syntaxe concaténation variable
    Par mussara dans le forum Langage
    Réponses: 3
    Dernier message: 01/03/2006, 11h24
  5. variables publiques ou module de classe ?
    Par niclalex dans le forum Access
    Réponses: 3
    Dernier message: 04/10/2005, 18h49

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