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

VB 6 et antérieur Discussion :

Appel de procédure dont le nom est une variable


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Août 2012
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Août 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Appel de procédure dont le nom est une variable
    Bonjour

    Je suis en train de créer un automate qui lancera des taches.
    Pour cela, j'ai une base de données Accès avec une table qui comporte la liste de différente routines
    Dans VB6 j'ai mis une boucle dans un timer qui permet de récupérer les informations de chaque tache.
    Si le jour et l'heure correspond, je veux que VB6 lance la macro dont le nom est récupéré par une variable.

    Hors cela ne marche pas !
    J'ai essayé par un Call, un Application run et un appel de Function.
    Mais rien à faire j'ai le message d'erreur suivant :
    Erreur de compilation : Sub, Function ou Property attendue.

    Quelqu'un aurait il une idée ?

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    Private Sub Timer1_Timer()
    Dim NumeroJour As Integer
        NumeroJour = Weekday(Now, vbMonday)
     
    Dim dateJ, heureJ, jourJ, MoisJ, AnneeJ As Date
    dateJ = Format(Now, "dd/mm/yyyy")
    heureJ = Format(Now, "h:mm:ss")
    Menu.Text1.Text = dateJ
    Menu.Text2.Text = heureJ
     
     
    'Date Fin de mois
    Dim a1, m1, j1, dateFDM
    a1 = Mid(dateJ, 7, 4)
    m1 = Mid(dateJ, 4, 2)
    j1 = Mid(dateJ, 1, 2)
    m1 = m1 - 1
    dateFDM = j1 & "/" & m1 & "/" & a1
    dateFDM = Format(dateFDM, "dd/mm/yyyy")
    dateFDM = CDate(DateSerial(Year(dateFDM), Month(dateFDM) + 1, 0))
    Menu.FDM.Caption = dateFDM
     
    'Date de Traitement J-1
    jourJ = DatePart("w", dateJ)
     
    If jourJ = 2 Then
    DateTBO = Format(Now - 3, "dd/mm/yyyy")
    Menu.DateT.Caption = DateTBO
    Else
    DateTBO = Format(Now - 1, "dd/mm/yyyy")
    Menu.DateT.Caption = DateTBO
    End If
     
     
    Dim Cnn1 As ADODB.Connection, Cmd1 As ADODB.Command, MonRs As ADODB.Recordset
    Dim resRoutines, resJourT, resDetailJour, resHeuresT As String
    Set Cnn1 = New ADODB.Connection
    With Cnn1
        .Provider = "Microsoft.Jet.OLEDB.4.0;"
        .ConnectionTimeout = 30
        .Mode = adModeReadWrite
        .Open "Data Source=\\frasparsupclt\Access_dtb$\CT\controle.mdb ;User Id=Admin; Password="
    End With
     
    Set MonRs = Cnn1.Execute("SELECT * FROM Routines ", , adCmdText)
    MonRs.MoveFirst
     
    Menu.ListeRoutines.Text = ""
    While Not (MonRs.EOF)
    resRoutines = MonRs![Routines]
    resJourT = MonRs![JourT]
    resDetailJour = MonRs![DetailJour]
    resHeuresT = MonRs![HeuresT]
     
    If NumeroJour = resJourT And heureJ = resHeuresT Then
     
    Call resRoutines
     
    End If
     
    MonRs.MoveNext
    Wend
     
    MonRs.Close
    Cnn1.Close
    Set MonRs = Nothing
    Set Cnn1 = Nothing
     
    End Sub
    Code de la procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public Sub Routine001()
    MsgBox "Coucou Routine001"
    End Sub

  2. #2
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 108
    Points : 16 640
    Points
    16 640
    Par défaut
    Salut

    Mot clef: CallByName
    Une solution peut être ici, Retrouver et agir sur un composant en ne connaissant que son nom littéral

Discussions similaires

  1. Module dont le nom est une variable
    Par Mr Hyde dans le forum Général Python
    Réponses: 11
    Dernier message: 26/02/2023, 20h39
  2. Réponses: 10
    Dernier message: 02/07/2021, 17h44
  3. [AC-2003] Propriétés d'un champ dont le nom est une variable
    Par AndréPe dans le forum VBA Access
    Réponses: 3
    Dernier message: 05/02/2012, 09h36
  4. [PowerShell] Acces variable dont le nom est une variable
    Par marion782 dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 12/09/2011, 11h16
  5. Instancier une classe dont le nom est une variable
    Par bendev dans le forum Langage
    Réponses: 1
    Dernier message: 06/11/2006, 06h01

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