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 :

Requete ODBC toujours en lecture seule ?


Sujet :

Macros et VBA Excel

  1. #1
    Membre chevronné Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : juillet 2007
    Messages : 659
    Points : 2 054
    Points
    2 054
    Par défaut Requete ODBC toujours en lecture seule ?
    Bonjour à tous

    J’ai posté sur le forum Vba Access, mais je n’ai pas de réponse

    Je souhaite faire des ajouts et des modifications dans des tables (Extension : .FIC)

    Mon problème est je voudrais savoir si une table ou une requête, ouverte ou faite via Vba Excel à partir une OBDC dans une base de données, est toujours en lecture seule.
    Ou bien que ces bases sont réellement protégées.
    Ce qui ne devrait pas être le cas, puisqu’on m’a assuré qu’elle était totalement ouverte.
    (Quoique lockedits = true)

    Depuis ce matin quoique je fasse c’est le message que j’obtiens
    Soit : » Mis à jour impossible. La base de données ou l’objet est en lecture seule. »
    Soit : » L’opération doit utiliser une requête qui peut être mise à jour. »

    J’ai cherché partout et comme j’aimerais bien arrêter d’user le soleil…………..

    Si quelqu’un sait,

    Par avance merci,

    Jean Pierr
    Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
    ---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2005
    Messages : 1 751
    Points : 2 328
    Points
    2 328
    Par défaut
    Bonjour,
    Citation Envoyé par Jean-Pierre49 Voir le message
    Quoi que je fasse, soit on indique que l’objet est en lecture seule,
    Ou bien avec le code ci-dessus : « L’opération doit utiliser une requête qui peut être mise à jour. »

    D’ou ma question : est-ce que systématiquement les requêtes on autres, ouvertes avec des ODBC (Hors Access) sont en lecture seule ?
    Ou y a t’il une possibilité.
    ODBC est juste une couche de connectivité vers un SGBD.
    En principe, il n'y a aucune restriction en écriture.

    Dans ton cas particulier, apparemment tu utilises un driver ODBC intentionnellement bridé en écriture (Hyperfile 7 de l'éditeur PC Soft).

    Peut-être y-a-t'il d'autres versions de driver ODBC pour hyperfile qui n'ont pas cette limitation ?
    J'ai ouï dire que pour Hyperfile 9 le driver ODBC est en lecture-écriture.

    Bon courage,
    =JBO=
    _

  3. #3
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    18 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 18 442
    Points : 53 475
    Points
    53 475
    Billets dans le blog
    128
    Par défaut
    Bonsoir

    Je ne suis pas certain d'avoir tout compris...

    Cela étant, si Excel pointe vers une base de données, c'est a priori en lecture seule (par exemple via MSQuery), quelle que soit la nature de la base de données... Access ou autre.

    Pourrais-tu être plus précis sur ce que tu souhaites réaliser, ainsi que la configuration dans laquelle tu évolues (Requête dans Excel vers une base de quel type, modification par Access d'une table liée Excel, ...)

    La diversité des situations impose quelques précisions supplémentaires...

    Merci
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Membre chevronné Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : juillet 2007
    Messages : 659
    Points : 2 054
    Points
    2 054
    Par défaut
    Bonjour a Tous,

    Oui, =JBO= , Hyperfile 7 semble posé ce problème mais je n’ai pas Hyperfile 9 pour faire un test.


    Ceci étant et pour réponde à Pierre ,
    Je fait des requêtes via Excel dans notre GPAO développée sous Windev, remonter les résultats, les traiter, pas de problème.
    Mon souhait était de pouvoir écrire dans ces bases sans passer par la GPAO.

    Mon Code test :


    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
        Set Donnees = DAO.OpenDatabase(NomSourceODBC, True, False, MoteurODBC & FichierODBC)
        TexteRequete = "SELECT Trim(Cocli), Trim(Libretxt1) " & _
                            "FROM Client " & _
                                "WHERE (Cocli='RBL')"
        Set Requete = Donnees.OpenRecordset(TexteRequete, DAO.dbOpenDynaset)
        Requete.LockEdits = False ' mettre en lecture ecriture
            ' Requete.Fields(0).DataUpdatable Toujours True donc pas modifiable
     
     
        With Requete
             .Edit ' Mise a jour impossible. la base ou l'objet est en lecture seule
             !Cocli = "RBLA"
             .Update
             .Close
        End With
    Je vous remercie tous deux de vous êtes penché sur mon problème

    Jean-Pierre
    Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
    ---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------

  5. #5
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    18 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 18 442
    Points : 53 475
    Points
    53 475
    Billets dans le blog
    128
    Par défaut
    Je ne connais pas Hyperfile, mais je pense que si tu travailles avec un objet ODBC, il vaut mieux utiliser DbOpenDynamic que DbOpenDynaset
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Requete = Donnees.OpenRecordset(TexteRequete, DAO.dbOpenDynamic)
    De plus, je placerais la propriété LockEdit au moment de l'ouverture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Requete = Donnees.OpenRecordset(Name:=TexteRequete, Type:=dbOpenDynamic, lockedit:=dbPessimistic)
    Cela t'aide-t'il?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Membre chevronné Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : juillet 2007
    Messages : 659
    Points : 2 054
    Points
    2 054
    Par défaut
    Bonjour Pierre,

    Non, j'avais déja essayé des variantes de ce que tu me donne
    et j'ai systhématiquement "Argument non valide" pour dbOpenDynamic
    et dbPessimistic ne donne pas le resultat escompté : toujours en lecture seule

    Je pense, malheureusement, comme dit =JBO= que hyperfile 7 boque la lecture ecriture. et comme c'est le seul pilotes que j'ai je me retourve bloqué sur mon idée.

    Merci

    Jean-Pierre
    Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
    ---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    novembre 2003
    Messages
    18 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : novembre 2003
    Messages : 18 442
    Points : 53 475
    Points
    53 475
    Billets dans le blog
    128
    Par défaut
    Il faudrait voir si ton GPAO est écrit en Hyperfile, ou si c'est une appli externe qui fait appel au serveur Hyperfile... (Si tu "attaques" Hyperfile via un code externe dans ton GPA0, c'est qu'il y a moyen d'écrire via un ODBC...)

    Autre piste:

    As-tu accès au fichier ODBC? Il y a peut-être dans ce fichier un verrou qui a priorité sur le code utilisé par la suite...

    Il serait peut-être intéressant de créer ton accès ODBC de toutes pièces pour voir si tu as une propriété que tu peux basculer à ton profit...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Membre chevronné Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : juillet 2007
    Messages : 659
    Points : 2 054
    Points
    2 054
    Par défaut
    La GPAO est sous Windev.

    L’ODBC est la suivante

    MoteurODBC = "ANA=C:\PROGRAM FILES\CLIPPER 4\WCLIP.WD7\WCLIP.WDD;"
    NomSourceODBC = "CMIE4"
    FichierODBC = ";REP=C:\CMIE4\;"

    Les fichiers des bases sont en extension .fic ils ne sont ni protégés ni cryptés je peu y faire des modifications en dur via Wdmap .

    J’ai bien les fichiers Dll d’hyperfile 7 mais la je suis sec .



    Jean pierre
    Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
    ---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------

Discussions similaires

  1. Le repertoire reste toujours en "lecture seule"
    Par _vince_ dans le forum Windows XP
    Réponses: 3
    Dernier message: 23/07/2011, 18h27
  2. [AC-2003] Liaison ODBC Oracle en lecture seule
    Par Aegnor dans le forum VBA Access
    Réponses: 1
    Dernier message: 15/12/2010, 15h48
  3. les requêtes ODBC toujours en leture seule?
    Par Jean-Pierre49 dans le forum VBA Access
    Réponses: 1
    Dernier message: 02/04/2008, 20h34
  4. Requete de suppression et lecture seule
    Par mamoure31 dans le forum Access
    Réponses: 24
    Dernier message: 08/01/2006, 19h33
  5. requete en lecture seule
    Par mvg dans le forum InterBase
    Réponses: 8
    Dernier message: 04/02/2004, 18h21

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