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 :

Getobject ou createobject non réalisé en tache planifiée


Sujet :

Access

  1. #1
    Candidat au Club
    Inscrit en
    Février 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Getobject ou createobject non réalisé en tache planifiée
    Bonjour,
    J'ai une base access qui tourne à merveilles et dans laquelle j'utilise des getobject pour acceder à d'autres bases ACCESS . Tout se passe très bien sauf lorsque j'appelle l'appli en tache planifiée. L'exécution du code s'arrête à cette ligne. Bien entendu impossoible d'avoir de code d'erreur puisque l'exécution se fait en arrière plan, machine déloguée)
    j'ai tenté un createobject mais résultat identique.
    Pour info les bases auxquelles je fais référence sont bien résidentes je veux dire que ce n'est pas un pb de disque déconnecté.
    Si qq a une idée ce serait cool !!
    D'avance merci.

  2. #2
    Membre éprouvé
    Avatar de keita
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2002
    Messages : 881
    Points : 1 121
    Points
    1 121
    Par défaut
    BEROUNET a écrit:
    ....L'exécution du code s'arrête à cette ligne.
    De quelle ligne tu parles? et puis pourquoi ne pas deboguerton code directement d'abord avant de le mettre en tache planifiée?
    @+

  3. #3
    MC2
    MC2 est déconnecté
    Membre habitué

    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2002
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2002
    Messages : 148
    Points : 199
    Points
    199
    Par défaut
    N'aurais-tu pas un pb de connexion utilisateur ?
    Ta tâche planifiée l'est-elle sous un nom d'utilisateur particulier ? style utilisateur local, sans droits d'accès distants alors que ton mdb l'est ?...

  4. #4
    Candidat au Club
    Inscrit en
    Février 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut déboguage
    ... bien entendu j'aurai voulu déboguer mais tout se passe a merveilles quand on est en session classique. Le pb apparait dès qu'on est en tâche planifiée.
    Pour l'histoire des droits ça m'échappe un peu mais je vais essayer de creuser le truc. Ca sent bien un truc comme ça !

    Merci !

  5. #5
    MC2
    MC2 est déconnecté
    Membre habitué

    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2002
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2002
    Messages : 148
    Points : 199
    Points
    199
    Par défaut
    Quand tu fais un prg comme ça, en tâche de fond, il faudrait que tu rediriges les erreurs vers un fichier ou bien vers l'observateur d'évènements Windows.
    Je vais creuser la chose, je l'ai déjà fait mais je ne l'ai pas sous la main.
    A+

  6. #6
    Candidat au Club
    Inscrit en
    Février 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci, je suis vraiment preneur si tu as le tuyau.
    A+

  7. #7
    Membre éprouvé
    Avatar de keita
    Homme Profil pro
    Inscrit en
    Novembre 2002
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Novembre 2002
    Messages : 881
    Points : 1 121
    Points
    1 121
    Par défaut
    BEROUNET a écrit:
    J'ai une base access qui tourne à merveilles et dans laquelle j'utilise des getobject pour acceder à d'autres bases ACCESS ...
    je voudrais juste comprendre:
    quel est l'interet de getobject ici?
    @+

  8. #8
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Citation Envoyé par keita
    BEROUNET a écrit:
    J'ai une base access qui tourne à merveilles et dans laquelle j'utilise des getobject pour acceder à d'autres bases ACCESS ...
    je voudrais juste comprendre:
    quel est l'interet de getobject ici?
    @+
    J'avoue ne pas comprendre non plus

    Rappelons que l'utilisation d'automation est trés gourmand en ressources système et donc trés lent. Son utilisation doit être limité au strict nécessaire. Qui plus est pour access, il est possible de réaliser des applications portail (cf la FAQ) et DAO ou ADO pour les requetes

    En aucun cas, l'automation Access to Access ne semble justifiable

  9. #9
    MC2
    MC2 est déconnecté
    Membre habitué

    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Août 2002
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 54
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Août 2002
    Messages : 148
    Points : 199
    Points
    199
    Par défaut
    Bonsoir,
    certes le getobject n'est pas forcément approprié mais son problème initial persiste et c'est pour cela que je permets de lui donner un petit coup de main.
    Il y a là encore peut-être plus simple (fichier log), mais voici un code simplifié (eh oui !) de génération de messages dans l'observateur d'évènements (event viewer) .
    Copier ce code dans un module séparé (cf. à la fin pour un exemple d'utilisation) :
    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
    Option Compare Database
    Option Explicit
     
    Public Enum enmLogType
       LogError = 1&
       LogWarning = 2&
       LogInfo = 4&
    End Enum
    Public Enum enmErrLevel
       lInfo = &H60000000
       lWarning = &HA0000000
       lError = &HE0000000
    End Enum
    Public Enum LogEventTypeConstants
       vbLogEventTypeError = 1
       vbLogEventTypeInformation = 4
       vbLogEventTypeWarning = 2
    End Enum
    Private Declare Function RegisterEventSource Lib "advapi32" Alias "RegisterEventSourceA" (ByVal lpUNCServerName As String, ByVal lpSourceName As String) As Long
    Private Declare Function DeregisterEventSource Lib "advapi32" (ByVal hEventLog As Long) As Long
    Private Declare Function ReportEvent Lib "advapi32" Alias "ReportEventA" (ByVal hEventLog As Long, ByVal wType As Long, ByVal wCategory As Long, ByVal dwEventID As Long, ByVal lpUserSid As Long, ByVal wNumStrings As Long, ByVal dwDataSize As Long, lpStrings As Any, lpRawData As Any) As Long
    Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
     
    Public Function LogErrorToEventViewer(sErrMsg As String, Optional eEventType As LogEventTypeConstants = vbLogEventTypeError) As Boolean
        Dim lEventLogHwnd As Long
        Dim LogType As enmLogType
        Dim lEventID As Long
        Dim lCategory As Long
        Dim sServerName As String
        Dim lRet As Long
        Dim sSourceName As String
     
        LogErrorToEventViewer = True
        lCategory = 1
        sSourceName = CurrentProject.Name
        sServerName = ComputerName()
     
        If eEventType = vbLogEventTypeError Then
            LogType = LogError
            lEventID = 3& Or enmErrLevel.lError
        ElseIf eEventType = vbLogEventTypeInformation Then
            LogType = LogInfo
            lEventID = 1& Or enmErrLevel.lInfo
        ElseIf eEventType = vbLogEventTypeWarning Then
            LogType = LogWarning
            lEventID = 2& Or enmErrLevel.lWarning
        End If
     
        lEventLogHwnd = RegisterEventSource(lpUNCServerName:=sServerName, lpSourceName:=sSourceName)
     
        If lEventLogHwnd = 0 Then
            LogErrorToEventViewer = False
            Exit Function
        End If
     
        lRet = ReportEvent(hEventLog:=lEventLogHwnd, _
                           wType:=LogType, _
                           wCategory:=lCategory, _
                           dwEventID:=lEventID, _
                           lpUserSid:=0, _
                           wNumStrings:=1, _
                           dwDataSize:=0, _
                           lpStrings:=sErrMsg, _
                           lpRawData:=0)
     
        If lRet = False Then
            LogErrorToEventViewer = False
        Else
            LogErrorToEventViewer = True
        End If
     
        DeregisterEventSource lEventLogHwnd
    End Function
     
    Public Function ComputerName() As String
        Dim lLong As Long
        Dim sTampon As String
        Dim iR As Integer
     
        sTampon = Space(255)
        lLong = Len(sTampon)
        iR = GetComputerName(sTampon, lLong)
        ComputerName = Left(sTampon, lLong)
    End Function
     
    'Exemple d'utilisation :
    Sub test_LogErrorToEventViewer()
        LogErrorToEventViewer "Mon message d'erreur"
        'Remplace MsgBox "Mon message d'erreur"
        'Possibilité de tester si tout c'est bien passé mais en l'occurence, c'est inutile
    End Sub
    Pour voir le résultat, ouvrir l'observateur d'évènements dans les Outils d'administration Windows puis choisir la catégorie "Applications".
    L'évènement se situe vers la tête de liste.
    Double-cliquer dessus pour visualiser le contenu du message (dans mon exemple "Mon message d'erreur").
    J'espère que ça va pouvoir t'aider.
    Note : et n'oublie pas de suivre les conseils de Keita et Tofalu
    A+

Discussions similaires

  1. Réponses: 12
    Dernier message: 21/05/2014, 12h00
  2. (MS DOS) Création de taches planifiées
    Par Furius dans le forum Windows
    Réponses: 7
    Dernier message: 01/12/2005, 17h34
  3. traitement de fichier XML dans une Tache planifiée
    Par marivi dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 21/06/2005, 10h40
  4. API : créer une tache planifiée.
    Par Argonz dans le forum Windows
    Réponses: 3
    Dernier message: 05/05/2004, 14h16
  5. Créer une tache planifié (.bat ou wsh)
    Par BRAUKRIS dans le forum Windows
    Réponses: 4
    Dernier message: 18/03/2004, 17h12

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