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 :

Tester le fonctionnement d'une requête avant son exécution


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Février 2015
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Tester le fonctionnement d'une requête avant son exécution
    Bonjour,

    J'ai dans ma base Access un mécanisme de mise à jour de certaines tables par rapport à des fichiers externes (Excel ou Access).
    Pour chaque fichier à mettre à jour, j'ai une table dans ma base avec la dernière copie du fichier externe, que j'actualise en : 1. requête suppression, 2. requête ajout.

    Mon soucis vient que pour des raisons indépendantes de ma volonté, les fichiers peuvent parfois ne pas être présents ou disponibles (lecture seule). Et dans ce cas, ma macro de mise à jour plante.

    D'où ma question : comment puis-je tester que ma requête ajout a bien fonctionné ?
    Si elle a fonctionné, je lance la mise à jour. Sinon je passe pour cette fois.

    Merci

    Eric

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Bonjour

    Personnellement j'essaierai quelque chose comme cela :

    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
     
    public function EstFichierDispo() as boolean
      on error goto Err_EstFichierDispo
     
      dim result as boolean:result=false
      dim cheminNomFichier as string:cheminNomFichier="C:\TonChemin\TonFichier.txt"
      dim numFic as long:numfic=freefile()
     
      if dir(cheminNomFichier)<>"" then
           'Le fichier est là
            open cheminNomFichier for input as #numFic 'Essaye d'ouvrir le fichier en lecture
            close #numFic
            result=true
         else
            Result=false
      end if
     
    Exit_EstFichierDispo:
      EstFichierDispo=result
      exit function
     
    Err_EstFichierDispo:
      select case err.number
          case NumErreurFichierVerrouille 'Je ne me souviens plus du numéro d'erreur
             'OK fichier verrouillé, ignorer
             close #numFic
     
          case else
             'Erreur inattendue, avertir l'utilisateur
             msgbox "Erreur : " & err.number & ", " & err.description
     
       end select
     
       result=false
       resume Exit_EstFichierDispo
     
    end function
    Pour l'utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if EstFichierDispo() then
        'Déclencher les requêtes
      else
        Msbgox "Fichier indisponible ou manquant."
    end if
    Note que ce n'est pas parfais car, bien que le délais soit très court entre le test et l'exécution de la requête, le fichier pourrait exister et ne pas être bloqué au moment du test mais avoir été supprimé ou verrouillé au moment d'exécuter ta requête.

    On peut faire en sorte de garantir que le fichier soit disponible mais c'est plus complexe.

    A+

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Février 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Février 2015
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Je me suis inspiré de ton code : j'ai simplement mis un "on error goto" et déclenché les requêtes ajout (pour tester, si ça renvoie une erreur je ne mets pas à jour), suppression et ajout.

    A première vue ça fonctionne bien

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tester l'existence d'un enregistrement avant son ouverture
    Par Fredo67 dans le forum VBA Access
    Réponses: 2
    Dernier message: 28/01/2008, 17h15
  2. Réponses: 8
    Dernier message: 21/09/2007, 14h51
  3. [2000] Tester l'existence d'une requête
    Par Gabout dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 04/09/2007, 16h29
  4. Réponses: 2
    Dernier message: 19/05/2007, 16h38
  5. Voir une requête avant exécution
    Par RodEpsi dans le forum Bases de données
    Réponses: 1
    Dernier message: 04/03/2007, 17h57

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