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

AS/400 Discussion :

Macro qui fait planter Personnal communication Access iSeries pour Windows


Sujet :

AS/400

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Août 2010
    Messages : 48
    Points : 24
    Points
    24
    Par défaut Macro qui fait planter Personnal communication Access iSeries pour Windows
    Bonjour,

    Voilà, je suis sous Windows 7 et j'utilise 'Personnal communication Access iSeries pour Windows'.

    J'ai une macro que j'utilise à tout-va, mais qui au bout d'une douzaine d'utilisations fait planter ‘Personnal communication Access iSeries pour Windows’. Cette macro que je trouve très pratique permet de faire des recherches d’un mot dans un source RPG, dans un fichier spool, dans un source de débogage. Je l’ai associée à une séquence de touche
    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
    [PCOMM SCRIPT HEADER]
    LANGUAGE=VBSCRIPT
    DESCRIPTION=Recherche d'un mot
    [PCOMM SCRIPT SOURCE]
    OPTION EXPLICIT
    autECLSession.SetConnectionByName(ThisSessionName)
    
    REM This line calls the macro subroutine
    subSub1_
    
    sub subSub1_()
    Dim col, row, lg, ind, retval
       autECLSession.autECLOIA.WaitForAppAvailable
    col = autECLSession.autECLPS.CursorPosCol
    row = autECLSession.autECLPS.CursorPosRow
    
    ind = -1
    Retval = autECLSession.autECLPS.GetText(row, col, 1) 
    
    do until retval = " " or  retval = ":" or retval = ")" or retval = "(" or retval = ","  or retval = ";" or retval = "=" or retval = "'" or col+ind > autECLSession.autECLPS.NumCols -1
       ind = ind + 1
       Retval = autECLSession.autECLPS.GetText(row, col+Ind+1, 1) 
    loop
    
    If  Ind < 0 then
       Exit sub
    else
       Retval = autECLSession.autECLPS.GetText(row, col, 1+ind) 
    end if
    
    if autECLSession.autECLPS.GetText(1, 58, 18) = "Source d'un module"  then
       autECLSession.autECLPS.SetCursorPos 23,16
       autECLSession.autECLPS.SendKeys "[ERASE EOF]" & "TOP" & "[ENTER]"
       autECLSession.autECLOIA.WaitForInputReady
       autECLSession.autECLPS.SetCursorPos 23,16
       autECLSession.autECLPS.SendKeys "[ERASE EOF] F "  & retval  & "[ENTER]"
    elseif autECLSession.autECLPS.GetText(1, 32, 18) = "Source d'un module" then
       autECLSession.autECLPS.SetCursorPos 20,16
       autECLSession.autECLPS.SendKeys "[ERASE EOF]" & "TOP" & "[ENTER]"
       autECLSession.autECLOIA.WaitForInputReady
       autECLSession.autECLPS.SetCursorPos 20,16
       autECLSession.autECLPS.SendKeys "[ERASE EOF] F "  & retval  & "[ENTER]"
    elseif autECLSession.autECLPS.GetText(1, 57, 14) = "Fichier spoule" then
       autECLSession.autECLPS.SetCursorPos 3,22
       autECLSession.autECLPS.SendKeys "[ERASE EOF]" & "T" & "[ENTER]"
       autECLSession.autECLOIA.WaitForInputReady
       autECLSession.autECLPS.SetCursorPos 4,22
       autECLSession.autECLPS.SendKeys "[ERASE EOF]"  & retval  & "[PF16]"
    else
       if autECLSession.autECLPS.GetText(15, 55, 6) = "Examen" and row > 13 then
          autECLSession.autECLPS.SetCursorPos 16,9
       else
          autECLSession.autECLPS.SetCursorPos 2,9
       end if
       autECLSession.autECLPS.SendKeys "[ERASE EOF]"  & "f " & retval & " all" & "[ENTER]"
    end if
    end sub
    Pour l’activer, je me positionne sur un mot, et la macro fait la recherche de ce mot dans le reste du document en commençant par le début du document

    Quelqu’un saurait-il pourquoi ‘Personnal communication Access iSeries pour Windows’ plante au bout d’une douzaine d’utilisation de cette macro et que faire pour éviter ça, SVP ?

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    Il y a des outils natifs sur le serveur IBM i pour faire ça. Je pense à PDM (STRPDM) sous écran vert et à i Navigator, l'interface graphique qui fonctionne sous Windows.

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Août 2010
    Messages : 48
    Points : 24
    Points
    24
    Par défaut
    Bonjour,

    J'ai dû mal m'expliquer...

    J'utilise cette macro quand je suis dans PDM sur un source quelconque, dans l'émulateur de sessions ‘Personnal communication Access iSeries pour Windows’...

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    Je n'ai jamais employé de macro sur l'émulateur d'écran de Client/Access et je ne sais ni rechercherai pourquoi elle plante car je me demande bien à quoi sert une macro telle que celle-ci qui fait double emploi avec les fonctionnalités du logiciel sur le serveur puisqu'il existe déjà une fonction de recherche avant/arrière qui fait partie intégrante de l'éditeur ?

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Août 2010
    Messages : 48
    Points : 24
    Points
    24
    Par défaut
    L'intérêt de cette macro est qu'elle recherche le mot situé immédiatement à droite du curseur. Et donc, on n'a pas a retaper la zone de texte à rechercher pour la trouver. C'est plus rapide et ça évite les fautes de frappe.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 62
    Points : 85
    Points
    85
    Par défaut
    Bonjour,

    Peux être une histoire d'initialisation ou plutot de fin de Connexion ?
    "autECLSession.SetConnectionByName(ThisSessionName)" !
    Un EndConnection... lui ferait du bien en sortie de la macro.

    Cordialement,

  7. #7
    Membre à l'essai
    Inscrit en
    Août 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Août 2010
    Messages : 48
    Points : 24
    Points
    24
    Par défaut
    Bonjour

    Merci pour le coup de pouce mais... Je n'ai pas trouvé de EndConnexion dans l'aide... Comment faire?

    Ce srait juste avant le endSub?

Discussions similaires

  1. Macro qui fait planter Excel systématiquement lorsqu'un bouton lui est affecté
    Par SimonDelmarre dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 26/09/2014, 15h58
  2. [XL-2010] selectionchange feuill macro qui fait planter
    Par Ashireon dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/09/2012, 18h39
  3. [AC-2010] Webbrowser qui fait planter Access
    Par curt dans le forum VBA Access
    Réponses: 0
    Dernier message: 02/07/2011, 14h34
  4. [Access 2003] Macro qui fait planter Access
    Par nuriel2 dans le forum Access
    Réponses: 5
    Dernier message: 10/05/2006, 14h00
  5. Réponses: 12
    Dernier message: 16/03/2004, 14h21

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