Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Invité de passage
    Inscrit en
    juillet 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : juillet 2004
    Messages : 18
    Points : 2
    Points
    2

    Par défaut VBA QueryDefs Temps de mise à jour

    Bonjour à tous !

    J'ai un p'tit problème, en fait j'ai une liste, pour chaque élément de cette liste je veux mettre à jour une requête puis lancer un état. L'état étant lié à cette requête.
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    WITH .QueryDefs("R_DetailsListe")
        FlexGrid_Res.Col = 0
        Filtres = "Chp1 = '" & FlexGrid_Res & "' "
        FlexGrid_Res.Col = 1
        Filtres = Filtres & "AND Chp2 = '" & FlexGrid_Res & "'"
        .SQL = "SELECT * FROM T_test " & _
                "WHERE " & Filtres & " " & _
        .Close
    End WITH
    Mon problème est simple, pour certains données la mise à jour ne se fait pas, en gros, lorsque mon application lance l'état la requête est toujours enregistrée avec les données précédentes.
    Comment faire pour attendre que la requête soit mise à jour ou pour forcer l'état à taper sur la dernière mise à jour de la requête ?

    Merci d'avance pour votre aide

    Salutations,

    T.

  2. #2
    Invité de passage
    Inscrit en
    juillet 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : juillet 2004
    Messages : 18
    Points : 2
    Points
    2

    Par défaut

    Bonjour à tous, je n'ai toujours pas trouvé de solution à mon problème, alors je cherche encore, mon problème étant que je boucle sur une liste, à chaque élément de cette liste, j'utilise les informations pour mettre à jour une requête via queryDefs, puis j'exécute un état en ayant au préalable modifié l'imprimante par défaut par Acrobat PDFWriter pour que la sortie de l'état se fasse dans un fichier pdf, ce qui pose problème c'est que quelque fois, il manque des informations.
    Mon état est composé de plusieurs graphiques, chaque graphique étant lié à une requête, qui est une union d'autres requêtes.
    Chacune de ces requêtes étant liées à ma requête filtre mise à jour au début.

    Si quelqu'un a une solution à mon problème, je serais très heureux de l'apprendre.

    Comme vous pouvez le constater j'essaye d'avoir confirmation que ma requête est bien à jour avant de lancer la sortie du pdf, et j'essaye même de vider la mémoire. Mais ça n'a pas l'air de marcher. Sur les vingts fiches que je dois sortir, il peut y en avoir 2 ou 3 à avoir un graphique vide pour faute de données suffisantes (et un ou deux graphiques sur les six)

    Merci d'avance, salutations

    Code :
    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
     
        Dim ws AS Workspace
        ' On déclare l'objet permettant de modifier notre requête
        Dim acApp AS DATABASE
        ' On déclare l'objet permettant l'impression de nos fichiers
        Dim MesEtats As Access.Application
     
        Lbl_Infos.Caption = "L'exportation est en cours, veuillez patienter..."
     
        If CheminUser = "" Then
            CheminUser = bGetRegValue(HKEY_CURRENT_USER, "Software\FD", "CheminFichier")
        End If
     
        For i = 1 To FlexGrid_Res.Rows - 1
     
            Set ws = DBEngine.CreateWorkspace("JetTest", "Admin", "")
            DBEngine.Workspaces.Append ws
            Set acApp = ws.OpenDatabase(BaseMaitre)
     
            FlexGrid_Res.row = i
            Filtres = ""
     
            NomFichier = Format(Date, "yyyymmdd")
     
            With acApp
                With .QueryDefs("R_DetailsListe")
                    FlexGrid_Res.Col = 0
                    NomFichier = NomFichier & "-" & Trim(FlexGrid_Res)
                    Filtres = "Chp1= '" & FlexGrid_Res & "' "
                    '.SQL = Replace(.SQL, "[monChp1]", "'" & FlexGrid_Res & "'")
                    FlexGrid_Res.Col = 1
                    NomFichier = NomFichier & "-" & Trim(FlexGrid_Res)
                    Filtres = Filtres & "AND  Chp2 = '" & FlexGrid_Res & "'"
                    '.SQL = Replace(.SQL, "[monChp2]", "'" & FlexGrid_Res & "'")
                    .SQL = "SELECT TOP 1 [RS] & ' ' & Trim([V]) & ' - ' & [E] AS RaS, 'Situtation ' & LEFT([Semaine],4) & ' à fin semaine ' & RIGHT([Semaine],2) AS Annee, T_RMI.Periode, T_RMI.V, T_RMI.E, 'Édité le ' & Date() AS DateduJour, T_CT.S " & _
                            "FROM T_RMI, T_CT " & _
                            "GROUP BY [RS] & ' ' & Trim([V]) & ' - ' & [E], 'Situtation ' & LEFT([Semaine],4) & ' à fin semaine ' & RIGHT([Semaine],2), T_RMI.Periode, T_RMI.V, T_RMI.E, T_CT.S, T_RMI.Semaine " & _
                            "HAVING (((T_RMI.Periode) = 'h') AND " & Filtres & ") " & _
                            "ORDER BY 'Situtation ' & LEFT([Semaine],4) & ' à fin semaine ' & RIGHT([Semaine],2) DESC , T_RMI.Semaine DESC;"
                    .Close
                End With
     
            End With
     
            acApp.Close
     
            Set acApp = Nothing
     
            PauseAppli 3
     
            Connection_base BaseMaitre, con
     
            compteur = 1
            While Not EnAttente
                compteur = compteur + 1
                Set rs = lecture_enregistrement("SELECT V, E FROM R_DetailsListe WHERE " & Filtres, con)
                If Not rs.EOF Then
                    EnAttente = True
                End If
            Wend
            Debug.Print "Nombre de tentatives : " & compteur & " pour " & Filtres
     
            fermeture_recordset rs
            fermeture_connection_base con
     
            DBEngine.BeginTrans
            DBEngine.CommitTrans dbForceOSFlush
            DBEngine.Idle dbRefreshCache
     
            Set MesEtats = New Access.Application
            MesEtats.OpenCurrentDatabase BaseMaitre, False
     
            EnAttente = False
     
            Set ImprimanteParDefaut = MesEtats.Printer
            Set MesEtats.Printer = MesEtats.Printers("Acrobat PDFWriter")
     
            bSetRegValue HKEY_CURRENT_USER, "Software\Adobe\Acrobat PDFWriter", "PDFFileName", IIf(CheminUser <> "", IIf(Right(CheminUser, 1) <> "\", CheminUser & "\", CheminUser), CheminDefaut) & NomFichier & ".pdf"
     
            MesEtats.DoCmd.OpenReport "Top20_1", acViewNormal
            MesEtats.DoCmd.Close acReport, "Top20_1", acSaveNo
     
            Set MesEtats.Printer = ImprimanteParDefaut
     
            MesEtats.CloseCurrentDatabase
            MesEtats.Quit acQuitSaveNone
     
            Set MesEtats = Nothing
        Next i

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •