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

Macros et VBA Excel Discussion :

ADO Excel fermé - Problème aléatoire sauvegarde des modifications


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Novembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2014
    Messages : 2
    Par défaut ADO Excel fermé - Problème aléatoire sauvegarde des modifications
    Bonjour à tous,

    C'est ma première intervention sur ce forum. Avant de vous contacter, j'ai beaucoup travaillé à partir notamment comme premier départ du cours de Silkyroad sur la lecture/écriture dans des fichiers excel fermés, et j'ai mis en place une macro VBA qui me permet de lire et écrire dans un fichier excel fermé que j'utilise comme base de données (dans ses limites contournées avec quelques astuces (clés, reconnaissance de type) car je n'ai aujourd'hui pas d'autres choix.
    Cela fonctionne globalement très bien sauf sur quelques points, dont deux majeurs : Problème aléatoire de sauvegarde des modifications, et gestion de l'accès multiple au fichier excel.

    L'objet de ce post est de vous présenter le premier point et de voir avec vous si vous avez rencontré ce problème et si vous possédez une solution.

    La connexion au fichier excel fermé est réalisée en VBA avec ADODB. J'utilise comme c'est obligé un recordset pour récupérer le résultat d'une requête de sélection.
    Par contre, je réalise les fonctions UPDATE et INSERT sans recordset, soit en requête normale, soit en requête paramétrée. C'est un choix du fait de mes besoins de réaliser mes mises à jour sans passer par le recordset. Et 95% du temps, cela fonctionne très bien.

    Cependant, aléatoirement, lors de certaines mises à jour (UPDATE ou INSERT), la mise à jour s'effectue bien dans le fichier excel (propriété iAffected correcte, retour de contrôle par une requête sélection montre la mise à jour). Par contre, à la fermeture de la connexion, la mise à jour disparait car une nouvelle requete sélection de contrôle me renvoie l'état précédent. Donc le fichier excel fermé n'a pas enregistré la mise à jour qui a été pourtant bien réalisée.

    Mes questions :
    => Connaissez-vous cette problématique, et si oui, a-t-elle une solution ?
    => Existe-t-il un moyen/paramètre (dans l'objet connexion ou autre), de contrôler la sauvegarde du fichier excel fermé à la fermeture de la connexion ?
    => Existe-t-il un moyen de savoir si un fichier excel fermé à bien été enregistré, de la même manière que l'on sait si une mise à jour a été réalisée avec iAffected.

    Ci-dessous mon code actuel pour l'insertion dans la base :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    'Fonction gérant une création/mise à une base de données (excel fermé)
    Sub insertOuUpdateBdd(texte_SQL As String, BddEx As String)
        'Définit la requête.
        Cmd.Execute iAffected, , adExecuteNoRecords 'ou Cnn.Execute texte_SQL, iAffected, adExecuteNoRecords si exécution sans objet command
        'Si tout va bien, cela permet de s'assurer que l'écriture a fonctionné.
        If iAffected = 0 Then
            'Debug.Print "Records Affected = " & iAffected
            MsgBox "Records Affected = " & iAffected
        End If                     
    End Sub
    Je vous remercie par avance pour votre considération, et votre support.

    En espérant avoir donné suffisamment de précision.

    Luckydigit

  2. #2
    Nouveau candidat au Club
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Novembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur validation
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2014
    Messages : 2
    Par défaut
    Bonjour,

    Suite à la poursuite de mes recherches, voici l'information que j'ai trouvée sur le site http://www.xtremevbtalk.com de l'utilisateur herilane.
    http://www.xtremevbtalk.com/showthre...628#post969628.

    "The usual SQL commands like UPDATE and INSERT INTO work nicely with Excel tables. Obviously the Excel file should not be open elsewhere if you try to do this, or you will get some rather bizarre behaviour, in addition to the memory leak mentioned above. (The changes will be applied to a read-only copy which gets opened in a hidden instance of Excel. Definitely not something I’d recommend.)"

    Cela n'apporte pas de solution au problème, mais confirme qu'il s'agit d'une bizarrerie qui peut arriver avec une telle utilisation d'Excel qui reste ouvert dans une instance invisible et que toute connexion ne se fait qu'en lecture seule.

    La seule méthode que j'ai à ce jour pour remettre le fichier excel utilisé en mode écriture et d'écrire à la main dedans et d'enregistrer normalement.

    Mais ce n'est pas une méthode très efficace.

    Il serait intéressant de savoir si une parade plus efficace existe.

    Je vous remercie par avance pour votre considération,

    Luckydigit

Discussions similaires

  1. Problème de sauvegarde des données avec ADO.net
    Par xave4552 dans le forum Framework .NET
    Réponses: 2
    Dernier message: 20/02/2013, 05h26
  2. Problème de sauvegarde des modifications sur Eclipse
    Par hypnotis dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 21/03/2010, 20h14
  3. Sauvegarde des modifs à la sortie d'un formulaire
    Par Jik70 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 02/05/2006, 11h13
  4. [PDE] Problème pour sauvegarder une modif dans un éditeur
    Par simsky dans le forum Eclipse Java
    Réponses: 11
    Dernier message: 11/08/2005, 16h05
  5. Problème de sauvegarde des locales
    Par PANAYE Nicolas dans le forum XMLRAD
    Réponses: 1
    Dernier message: 04/08/2005, 10h51

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