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 :

Me. (variable) possible


Sujet :

VBA Access

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 298
    Par défaut
    Bonjour,

    Est-il possible de récupérer les données d'un formulaire en fonction d'un variable qui correspond au nom d'un champ?

    Du type Me.(mavariable)??

    Voici ma fonction

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
     
    Private Sub Valide(Chrono As String)
     
    ' Recherche le dernier numéro du champ MaClef dans la table Test
    ' et incrémente cette valeur de 1
    Dim rst As Recordset
    Dim vClef
    Dim db As Database
    Set db = CurrentDb
     
     
     
    If IsNull(Forms.Planning.Chrono.Value) And (Forms.Planning.Choix.Value = 1) Then
        Set rst = CurrentDb.OpenRecordset("SELECT TOP 1 Chrono FROM Visites ORDER BY Chrono DESC")
        vClef = Right(Year(Now), 2) & Format(Nz(Val(Right(rst!Chrono, 4)), 1) + 1, "0000")
     
        Forms.Planning.Chrono.Value = vClef
     
        db.Execute "INSERT INTO Visites (Chrono) VALUES (" & vClef & ")"
    End If
     
    On Error GoTo Err_Valider_Click
     
        Dim stDocName As String
        Dim stLinkCriteria As String
     
        stDocName = "Formulaire_Principal"
        DoCmd.OpenForm stDocName, , , "[Chrono] =" & Me.Chrono
     
    Exit_Valider_Click:
        Exit Sub
     
    Err_Valider_Click:
        MsgBox Err.Description
        Resume Exit_Valider_Click
     
    End Sub
    Est-il donc possible de remplacer tout les Chrono par le paramètre Chrono de la fonction

    Merci d'avance

  2. #2
    Membre éclairé Avatar de pierre24
    Profil pro
    Inscrit en
    Février 2008
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 391
    Par défaut
    En théorie oui
    Comme ceci, tu récupère la valeur contenu dans le champs chrono présent dans ton formulaire.

    Au passage, je crois que tu n'es pas obligé de mettre le value.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 298
    Par défaut
    ce n'est pas ce que je veux faire, je voudrais en fin de compte passer à cette fonction en paramètre le nom d'un contrôle.

    et que par exemple on récupère le nom "Chrono1" et que dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Forms.Planning.Chrono.Value
    Chrono prenne la valeur "Chrono1"

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Par défaut
    Salut,

    essaie avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Function Valide(ByRef Chrono As Variant)
    ...
    End Function
    plutôt que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Valide(Chrono As String)
    ...
    End Sub

  5. #5
    Expert confirmé
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Par défaut
    Salut,

    Il te faut utiliser les Objets formulaires :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms.Nomformulaire.Form(Variable)
    Cette syntaxe implique que Nomformulaire soit un nom sans espace.

    Sinon tu utilises cette syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms("Nom formulaire").Form(Variable)

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 298
    Par défaut
    J'ai utilisé Me.Controls(MaVar).

    merci de votre aide

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

Discussions similaires

  1. Créer une instance à partir d'une variable ? Possible ?
    Par jpboogie dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 25/04/2009, 09h47
  2. Réponses: 4
    Dernier message: 07/06/2008, 13h52
  3. Nom d'objet avec variable, possible?
    Par CleeM dans le forum Delphi
    Réponses: 10
    Dernier message: 26/06/2007, 18h03
  4. [XSL~FO][FOP] variables possibles dans les attributs de tags ?
    Par lebechen dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 29/06/2006, 09h17
  5. Fonction qui retourne un tableau ou 2 variables ? possible ou non
    Par jiojio dans le forum VB 6 et antérieur
    Réponses: 45
    Dernier message: 05/06/2006, 15h00

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