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 :

Faire du nom d'un champ une variable (automation)


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 27
    Points : 22
    Points
    22
    Par défaut Faire du nom d'un champ une variable (automation)
    Hello,

    Une procedure dans Excel appelle une procedure dans Access pour retourner des données dans Excel.... Ici nous nous situons dans la procédure Access qui retourne les données dans Excel. Field1 et Field2 correspondent à 2 noms de champs d’une requête que j’appelle dans Access a l’aide de la variable AccessIndicatorType.

    Le code ci-dessous fonctionne lorsque je remplace Field1 et Field2 par des constantes.
    En d’autres termes : si je remplace “rst!”&”[“&Field1&”]” pas rst![EN] et idem avec “rst!”&”[“&Field2&”]”… ca marche.

    Maintenant je voudrais passer le nom des champs en variable pour éviter de repeter la procedure quand les noms de champs changent….ie Field1 et Field2 doivent etre des variables. Avec le code ci-dessous, j’ai un prb de type alors que Field1 et Field2 sont de type Variant (ie ts les types)…

    Des idées ? des ameliorations ?

    Procedure principale

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub AccessQueryDeposits_SPA()
    AccessQueryIndicator "Deposits SPA - Oustanding Numbers RSD", 1, “EN”, “SUM”
    AccessQueryIndicatorProd "Deposits SPA - Prod Numbers RSD", 4, “EN”, “SUM”
     
    End sub
    Sous procedure
    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
    Sub AccessQuery (AccessIndicatorType As String, i As Integer,Field1 as Variant, Field2 as variant)
    ''WARNING : Macro executes on ActiveWorkBook in Excel
    
    Dim rst As DAO.Recordset
    Dim qdf As QueryDef
    Dim XLApp, appexcel As Object
    Dim ligne, n As Integer
    
    Set XLApp = GetObject(, "Excel.Application")
    MyExcel = XLApp.ActiveWorkbook.Name
    MyExcelSheet = XLApp.ActiveSheet.Name
    Set appexcel = GetObject(MyExcel)
    
    ' Declare object and Select Table for Recordset
    
    Set rst = CurrentDb.OpenRecordset(AccessIndicatorType)
    On Error Resume Next
    rst.MoveLast
    n = rst.RecordCount
    
    rst.MoveFirst
    appexcel.Sheets(MyExcelSheet).Cells(1, i) = "Entity"
    appexcel.Sheets(MyExcelSheet).Cells(1, i + 1) = AccessIndicatorType
    
    ligne = 2
        For ligne = 2 To n + 1
            appexcel.Sheets(MyExcelSheet).Cells(ligne, i) = “rst!”&”[“&Field1&”]”
            appexcel.Sheets(MyExcelSheet).Cells(ligne, i + 1) = “rst!”&”[“&Field2&”]”    rst.MoveNext
        Next
    
    
    Set rst = Nothing
    Set qdf = Nothing
    
    Set XLApp = Nothing
    Set appexcel = Nothing
    
    End Sub

  2. #2
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    La syntaxe avec l'! est un raccourci pour accéder à un élément d'une collection.

    Mais tu peux également utiliser la syntaxe suivante:

    et celle-ci accepte sans soucis une variable



Discussions similaires

  1. [Toutes versions] Mettre le focus sur un champ dont le nom est contenu dans une variable
    Par possible924 dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/04/2015, 21h32
  2. Réponses: 2
    Dernier message: 18/03/2006, 14h54
  3. [XSLT] Attribut dont le nom est stocké dans une variable ?
    Par Xfennec dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 15/03/2006, 11h20
  4. Shell: récupérer le bon nom de fichier dans une variable
    Par claralavraie dans le forum Linux
    Réponses: 1
    Dernier message: 10/01/2006, 11h45
  5. Réponses: 7
    Dernier message: 25/10/2005, 15h19

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