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

IHM Discussion :

fermer un recorset par docmd.close [AC-2007]


Sujet :

IHM

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2010
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 117
    Points : 99
    Points
    99
    Par défaut fermer un recorset par docmd.close
    Bonjour à tous

    Dans le but d'optimiser mon appli j'applique la méthode du maintient d'un accès permanent à la Dorsale par un formulaire ouvert et caché.Au passage merci loufab ton tuto http://loufab.developpez.com/tutorie...misation/#LV-C m'a bien inspirer!

    Tout va bien et même rapidement mais à la fermeture de l'appli j'ai systématiquement Erreur d'exécution 91 variable objet ou variable de bloc with non définie qui est levée

    MonFormulaireCaché
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Form_Close()
     
       ' rsAlwaysOpen.close -->provoque error d'exécution 91
        DoCmd.Close , "rsAlwaysOpen"   'ne lève pas d'Erreur       
        Set rsAlwaysOpen = Nothing
     
    End Sub

    Donc pour fermer le Recordset j'utilise la méthode DoCmd.close mais est-ce bien "orthodoxe"? en tout cas ça ne me lève pas d'erreur

    Merci de me donnez votre avis j'aimerais bien savoir

    Bonne soirée à tous
    sbc

  2. #2
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Bonsoir,

    Je ne connais pas l'exemple, mais, si je ne m'abuse, une fois que tu as fermé le formulaire, tu n'as pas besoin de mettre quoi que ce soit à "nothing".
    Je soupçonne que ton erreur est sur la 2ème ligne (que tu peux supprimer) ?

  3. #3
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 044
    Points
    16 044
    Par défaut
    Bonsoir,

    Si je comprend bien, tu ouvres une connexion permanente au moyen d'un recordset (créé lors de l'ouverture d'un formulaire masqué).

    Pour autant que j'aie bien compris, le simple fait de fermer ton application devrait donc suffire, mais...

    Si ton application devient plus ou moins complexe, le risque est que tu te retrouves avec des erreurs, et la création de base de sauvegarde (bd1, bd2, etc...).

    Un pro pourra peut-être confirmer ou infirmer mes propos, mais tout objet que tu crées doit être fermé et libéré.

    Donc si tu déclares un recordset, tu dois explicitement le fermer et le libérer avant de quitter ton application.

    Comment déclares-tu le recordset en question (code) ?

    Comment quittes-tu ton application et quel est le nom du formulaire masqué ?

    Domi2

  4. #4
    Membre régulier
    Inscrit en
    Janvier 2010
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 117
    Points : 99
    Points
    99
    Par défaut
    Bonsoir papy turbo

    En fait l'erreur est sur
    que j'ai remplacé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.Close , "rsAlwaysOpen"
    Puis je libère la référence
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set rsAlwaysOpen = Nothing
    Bon c'est peut être que je pinaille, car c'est la fermeture de l'Application qui ferme ce formulaire.
    Donc le Recorset sera forcément fermé mais je pensais que c'était plus "propre"

    J'ai testé en supprimer carrément tout le code sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Form_Close()
    et ça va impec

    En tout cas merci pour ta suggestion
    Bonne soirée

  5. #5
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Super.

    Maintenant, Domi me colle des doutes : j'avais cru comprendre que "rsAlways" était en fait un formulaire et non pas un recordset ?
    Me trompe-je ?

    Si c'est bien le cas, j'espère que c'est évident pour toi que
    - les formulaires n'ont pas de méthode .Close (les recordsets : oui )
    - effectivement, la fermeture de l'application va tout fermer, sans problème.

    Les nouvelles versions d'access (depuis ? 2003, 2007 ?) semblent fermer tout sans planter.
    Ce qui peut bloquer la fermeture d'une ancienne version (typique dans Axs 2000), c'est d'avoir une variable globale qui pointe sur un objet (formulaire, mais surtout base de données...) et qui n'est jamais mise à Nothing.

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

Discussions similaires

  1. Fermer fenêtre ouverte par un window.open()
    Par NikoBe dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 15/10/2006, 12h47
  2. Fermer la fenêtre par JMenuItem
    Par raph707 dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 28/09/2006, 18h26
  3. Fermer une div par un clic
    Par lhulard dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 15/09/2006, 14h58
  4. Fermer BDD access par le code
    Par elendila dans le forum Access
    Réponses: 7
    Dernier message: 22/08/2006, 15h31
  5. empecher le user de fermer un frame par la croix
    Par maxxou dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 07/06/2004, 13h17

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