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

Access Discussion :

Saisie dans une inputbox valable dans l'ensemble d'une commande


Sujet :

Access

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 73
    Par défaut Saisie dans une inputbox valable dans l'ensemble d'une commande
    Bonjour,


    J'ai ce code qui fait deux exports dans excel seulement ma commande m'oblide remplir les mêmes paramètres dans des inputbox.

    Connaisez vous un moyen de ne saisir qu'une seule et unique fois les paramètres dans la première inputbox et que ceux-ci soit valable pour le deuxième export également.
    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    Private Sub Commande11_Click()
    SysCmd acSysCmdInitMeter, "Export vers le fichier de traitement en cours. VEUILLEZ PATIENTER...", 100 'Définit le texte à afficher et la valeur maximale de la jauge.
     
    Call Exportation("SYNTHESE_PORT_NAT_HORS_INTRA", "D:\Analyse_Avoirs_(annee_mois_debut)_(annee_mois_fin).xls", "Extraction")
    SysCmd acSysCmdUpdateMeter, "Export vers le fichier de traitement en cours. VEUILLEZ PATIENTER...", 50 'Définit le texte à afficher et la valeur actuelle de la jauge.
    Call Export_AG_EST("Export_Stat_agence_EST", "D:\Analyse_Avoirs_(annee_mois_debut)_(annee_mois_fin).xls", "Référenciel")
    SysCmd acSysCmdRemoveMeter 'Supprime la jauge d'avancement
     
    End Sub
     
    Sub Exportation(requete As String, fichier As String, onglet As String)
     
     Dim xlA As Object, xlW As Object, t As DAO.Recordset
     Dim qdf As DAO.QueryDef
     Dim db As DAO.Database
     Dim i As Integer
     Dim s As String, NumChamp As Long, ligne As Long
     
     Set xlA = CreateObject("excel.application")    'lance Excel
     xlA.Visible = False
     xlA.workbooks.Open (fichier)       'ouvre le fichier
     Set xlW = xlA.activeworkbook
     ligne = 1
     Set db = CurrentDb
     Set qdf = db.QueryDefs(requete)
     For i = 0 To qdf.Parameters.Count - 1
         On Error Resume Next
        qdf.Parameters(i).Value = Eval(qdf.Parameters(i).Name)
        If Err.Number = 2482 Then ' Paramètre non évaluable
            ' Demande la saisie du paramètre dans une inputbox
            qdf.Parameters(i).Value = InputBox(qdf.Parameters(i).Name)
        End If
        On Error GoTo 0
     Next
     Set t = qdf.OpenRecordset    'ouvre la requete
     Do Until t.EOF
       ligne = ligne + 1            'ligne suivante dans la feuille Excel
       For NumChamp = 0 To 10        'pour chaque colonne de la requete
           s = t(NumChamp)       'recupération des données au format Texte
        xlW.Sheets(onglet).cells(ligne, NumChamp + 1) = s 'ecriture dans la cellule
       Next NumChamp
       t.MoveNext                    'enregistrement suivant
      Loop
      t.Close
     Set t = Nothing
     Set qdf = Nothing
     Set db = Nothing
     xlW.Save
     xlA.Quit
     Set xlA = Nothing    ' puis libère la référence.
     
    End Sub
     
     
    Sub Export_AG_EST(requete As String, fichier As String, onglet As String)
     
     Dim xlA As Object, xlW As Object, t As DAO.Recordset
     Dim qdf As DAO.QueryDef
     Dim db As DAO.Database
     Dim i As Integer
     Dim s As String, NumChamp As Long, ligne As Long
     
     Set xlA = CreateObject("excel.application")    'lance Excel
     xlA.Visible = False
     xlA.workbooks.Open (fichier)       'ouvre le fichier
     Set xlW = xlA.activeworkbook
     ligne = 199
     Set db = CurrentDb
     Set qdf = db.QueryDefs(requete)
     For i = 0 To qdf.Parameters.Count - 1
         On Error Resume Next
        qdf.Parameters(i).Value = Eval(qdf.Parameters(i).Name)
        If Err.Number = 2482 Then ' Paramètre non évaluable
            ' Demande la saisie du paramètre dans une inputbox
            qdf.Parameters(i).Value = InputBox(qdf.Parameters(i).Name)
        End If
        On Error GoTo 0
     Next
     Set t = qdf.OpenRecordset    'ouvre la requete
     Do Until t.EOF
       ligne = ligne + 1            'ligne suivante dans la feuille Excel
       For NumChamp = 0 To 1        'pour chaque colonne de la requete
           s = t(NumChamp)       'recupération des données au format Texte
        xlW.Sheets(onglet).cells(ligne, NumChamp + 1) = s 'ecriture dans la cellule
       Next NumChamp
       t.MoveNext                    'enregistrement suivant
      Loop
      t.Close
     Set t = Nothing
     Set qdf = Nothing
     Set db = Nothing
     xlW.Save
     xlA.Quit
     Set xlA = Nothing    ' puis libère la référence.
     
    End Sub
    Merci d'avance

    Eddy

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    tu ajoutes une variable publique de niveau module

    public unic as variant

    tu affectes le résutat de inputbox à unic

    elle sera visible dans toute ton appli

    tu peux même ajouter une
    fonction getunic()
    getunic=unic

    qui te permettra de l'utiliser dans le sql

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2006
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 73
    Par défaut
    Merci de ta réponse.

    Par contre, je peux abuser en te demandant une piste pour l'intégrer dans mon code, car je ne connais pas la fonction que tu m'annonces.


    Merci d'avance

    Eddy

Discussions similaires

  1. Réponses: 8
    Dernier message: 10/02/2011, 23h06
  2. Réponses: 1
    Dernier message: 23/01/2011, 09h52
  3. Réponses: 0
    Dernier message: 29/11/2010, 10h43
  4. Réponses: 1
    Dernier message: 27/05/2009, 09h19
  5. Tester une donnée entrée dans un inputBox
    Par AVNAIM dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/07/2008, 09h31

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