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 :

pb sur lancement d'application


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 78
    Points : 46
    Points
    46
    Par défaut pb sur lancement d'application
    Bonjour,

    j'ai créer un publipostage qui utilise une même table mais avec des requetes differentes.
    Par contre je le fais en 2 fois je m'explique :

    Dans une premiere fonctione j'appelle mon sous-programme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Call Publipostage.Pub_Word("ICE", "214", "0")
    Call Publipostage.Pub_Word("ICE", "214", "95")
    puis voici le publipostage

    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
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    Public Sub Pub_Word(type_Cpt As String, num_centre As String, commune As String)
    vChoix_Publi = MsgBox("Voulez-vous créer le Publipostage ?", vbYesNo + vbQuestion, "Publipostage")
    If vChoix_Publi = vbYes Then
     
        Dim AppWord As Word.Application
        Set AppWord = CreateObject("Word.application")
        AppWord.Visible = True
        Dim LettreType As New Word.Document
     
        If (type_Cpt <> "ICE") Then
     
            AppWord.Documents.Open Filename:="E:\Donnees\Commun\Test - Publipostage\CRXXX-XXXXX.doc"
     
            If ((num_centre = 214 Or num_centre = 215) And (commune = 95)) Then
     
                If DCount("*", "Tbl_CR_" & type_Cpt & "_" & num_centre, "[Num_Centre] = '" & num_centre & "' and [Code Postal] like '95*'") = 0 Then
                    MsgBox "Il n'y a pas d'enregistrements pour les " & type_Cpt & " du " & num_centre & ". Le publipostage ne sera pas fait"
                    AppWord.Documents.Close
                    AppWord.Application.Quit
                    Exit Sub
                End If
     
                Set LettreType = AppWord.Documents("CRXXX-XXXXX.doc")
                With LettreType.MailMerge
                    .OpenDataSource Name:= _
                        CurrentProject.path & "\SAR.mdb", ConfirmConversions:=False, _
                        ReadOnly:=False, linktosource:=True, addtorecentfiles:=False, _
                        SQLstatement:="SELECT * from Tbl_CR_" & type_Cpt & "_" & num_centre & " where Num_Centre = '" & num_centre & "' and [Code Postal] like '95*'"
                    .Destination = wdSendToNewDocument
                    .SuppressBlankLines = True
                End With
            ElseIf ((num_centre = 214 Or num_centre = 215) And (commune = 0)) Then
     
                If DCount("*", "Tbl_CR_" & type_Cpt & "_" & num_centre, "[Num_Centre] = '" & num_centre & "' and [Code Postal] not like '95*'") = 0 Then
                    MsgBox "Il n'y a pas d'enregistrements pour les " & type_Cpt & " du " & num_centre & ". Le publipostage ne sera pas fait"
                    AppWord.Documents.Close
                    AppWord.Application.Quit
                    Exit Sub
                End If
     
                Set LettreType = AppWord.Documents("CRXXX-XXXXX.doc")
                With LettreType.MailMerge
                    .OpenDataSource Name:= _
                        CurrentProject.path & "\SAR.mdb", ConfirmConversions:=False, _
                        ReadOnly:=False, linktosource:=True, addtorecentfiles:=False, _
                        SQLstatement:="SELECT * from Tbl_CR_" & type_Cpt & "_" & num_centre & " where Num_Centre = '" & num_centre & "' and [Code Postal] not like '95*'"
                    .Destination = wdSendToNewDocument
                    .SuppressBlankLines = True
                End With
            Else
                        Set LettreType = AppWord.Documents("CRXXX-XXXXX.doc")
                With LettreType.MailMerge
                    .OpenDataSource Name:= _
                        CurrentProject.path & "\SAR.mdb", ConfirmConversions:=False, _
                        ReadOnly:=False, linktosource:=True, addtorecentfiles:=False, _
                        SQLstatement:="SELECT * from Tbl_CR_" & type_Cpt & "_" & num_centre
                    .Destination = wdSendToNewDocument
                    .SuppressBlankLines = True
                End With
            End If
            LettreType.MailMerge.Execute
            LettreType.Close (wdDoNotSaveChanges)
     
        Else
     
            AppWord.Documents.Open Filename:="E:\Donnees\Commun\Test - Publipostage\CRXXX-XXXXX-ICE.doc"
     
            If ((num_centre = 214 Or num_centre = 215) And (commune = 95)) Then
     
                If DCount("*", "Tbl_CR_" & type_Cpt & "_" & num_centre, "[Num_Centre] = '" & num_centre & "' and [Code Postal] like '95*'") = 0 Then
                    MsgBox "Il n'y a pas d'enregistrements pour les " & type_Cpt & " du " & num_centre & ". Le publipostage ne sera pas fait"
                    AppWord.Documents.Close
                    AppWord.Application.Quit
                    Exit Sub
                End If
     
                Set LettreType = AppWord.Documents("CRXXX-XXXXX-ICE.doc")
                With LettreType.MailMerge
                    .OpenDataSource Name:= _
                        CurrentProject.path & "\SAR.mdb", ConfirmConversions:=False, _
                        ReadOnly:=False, linktosource:=True, addtorecentfiles:=False, _
                        SQLstatement:="SELECT * from Tbl_CR_" & type_Cpt & "_" & num_centre & " where Num_Centre = '" & num_centre & "' and [Code Postal] like '95*'"
                    .Destination = wdSendToNewDocument
                    .SuppressBlankLines = True
                End With
            ElseIf ((num_centre = 214 Or num_centre = 215) And (commune = 0)) Then
     
                If DCount("*", "Tbl_CR_" & type_Cpt & "_" & num_centre, "[Num_Centre] = '" & num_centre & "' and [Code Postal] not like '95*'") = 0 Then
                    MsgBox "Il n'y a pas d'enregistrements pour les " & type_Cpt & " du " & num_centre & ". Le publipostage ne sera pas fait"
                    AppWord.Documents.Close
                    AppWord.Application.Quit
                End If
     
                Set LettreType = AppWord.Documents("CRXXX-XXXXX-ICE.doc")
                With LettreType.MailMerge
                    .OpenDataSource Name:= _
                        CurrentProject.path & "\SAR.mdb", ConfirmConversions:=False, _
                        ReadOnly:=False, linktosource:=True, addtorecentfiles:=False, _
                        SQLstatement:="SELECT * from Tbl_CR_" & type_Cpt & "_" & num_centre & " where Num_Centre = '" & num_centre & "' and [Code Postal] not like '95*'"
                    .Destination = wdSendToNewDocument
                    .SuppressBlankLines = True
                End With
     
            Else
     
                Set LettreType = AppWord.Documents("CRXXX-XXXXX-ICE.doc")
                With LettreType.MailMerge
                    .OpenDataSource Name:= _
                        CurrentProject.path & "\SAR.mdb", ConfirmConversions:=False, _
                        ReadOnly:=False, linktosource:=True, addtorecentfiles:=False, _
                        SQLstatement:="SELECT * from Tbl_CR_" & type_Cpt & "_" & num_centre
                    .Destination = wdSendToNewDocument
                    .SuppressBlankLines = True
                End With
            End If
            LettreType.MailMerge.Execute
            LettreType.Close (wdDoNotSaveChanges)
        End If
     
    Else
    MsgBox "Le Publipostage n'a pas été effectué !", vbCritical, "Arrêt d'execution !"
    End If
     
    End Sub
    Dans cette fonction il y a plusieurs publipostages de codé pour gérer mes différentes requètes.

    Par contre lorsque je lance ce publipostage sur un micro qui tourne grace au Runtime, entre les deux publipostage, il me lance une deuxieme fois l'application qui dans laquelle j'ai créé ce même publipostage.

    Quelqu'un saurait-il pourquoi et surtout comment eviter cela ? Merci

  2. #2
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Bonsoir,

    j'aurais besoin de bien comprendre ce que tu entends pas
    Par contre lorsque je lance ce publipostage sur un micro qui tourne grace au Runtime, entre les deux publipostage, il me lance une deuxieme fois l'application qui dans laquelle j'ai créé ce même publipostage.
    et d'autre part, je déduis de ton message que, sur un ordi équipé d'Access, le problème ne se pose pas ? C'est uniquement avec le Runtime ?

    En relisant ton message, il me semble normal que tu ouvres 2 fois Word puisque tu le lances avec chaque commande "Call"

    Par contre, ce que je ne vois pas c'est les :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set xxx = nothing
    xxx.Close
    Bien que "normalement" il n'est pas nécessaire de le faire, je te le recommande vivement.
    Nous n'héritons pas la Terre de nos ancêtres, nous l'empruntons à nos enfants, prenons-en soin !
    (proverbe amérindien)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 78
    Points : 46
    Points
    46
    Par défaut
    Bonsoir,

    Oui c'est vrai que maintenant en relisant j'ai moi aussi du mal a comprendre ce que j'ai ecrit...

    En fait je developpe une application qui me permet de faire un publipostage.
    Mais celle-ci tournera la plupart du temps sur des micros n'ayant que le runtime pour la faire fonctionner.

    Sur mon micro sur lequel j'ai Access, pas de probleme mon application tourne correctement, les publipotages sont corrects ( d'ailleurs en effet je lance deux fois Word mais c'etait voulu ).

    Par contre lorsque j'ai testé cette application sous un micro n'ayant que le runtime, au moment ou je créé mes pulipostages, il me relance de nouveau l'application Access ( celle que j'ai developpé ). Du coup comme je n'ai pas de soucis avec access normal, je ne peux meme pas tester mon code pour savoir d'où ca pourrait venir.

    En ce qui concerne les :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set xxx = nothing
    xxx.Close
    Tu as 100 % raisons, je vais les rajouter.

    J'espere avoir cette fois ci été un peu plus clair. Je te remercie pour ton aide en tout cas.

  4. #4
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    As-tu essayé de n'appliquer qu'un seul "Call" pour voir comment le Runtime se comporte ?
    Nous n'héritons pas la Terre de nos ancêtres, nous l'empruntons à nos enfants, prenons-en soin !
    (proverbe amérindien)

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 78
    Points : 46
    Points
    46
    Par défaut
    Bonjour,

    desolé pour ce retard, je n'ai pas pu tester cela sur mon appli depuis...

    Enfin j'ai essayé avec un seul " Call " et le resultat est le même.

    La je ne comprend vraiment pas...

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/03/2013, 17h04
  2. Réponses: 1
    Dernier message: 14/03/2013, 15h37
  3. Réponses: 0
    Dernier message: 13/03/2013, 22h53
  4. [JSP] erreur sur lancement d'exe
    Par RENAULT dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 13/07/2004, 17h01
  5. [debutant ][lancement]Commande de lancement d'application
    Par Regis.C dans le forum Eclipse Java
    Réponses: 7
    Dernier message: 28/06/2004, 23h25

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