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 :

instruction conf.edit vba


Sujet :

VBA Access

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 112
    Par défaut instruction conf.edit vba
    bonjour,

    je voudrais savoir ce que fait l'instruction conf.edit car j'ai une erreur

    merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    edit est lié à un recordset, à mon avis tu as un recordset de mal déclaré.

    Il faudrait le code qui va avec.

    Starec

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 112
    Par défaut
    voila le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DoCmd.OpenForm "MenuPrincipal"      ' j'ouvre le menu principal
     
        DoCmd.SetWarnings False
        Conf.MoveFirst
        Conf.Edit

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Comme je te l'ai dit Conf est une recordset, où et comment est-il déclaré ?

    Tu devrais avoir dans ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Conf as DAO.Recordset
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Conf = currentDb.OpenRecordset(...)
    où quelque chose qui s'en approche.

    Ce code vient-il de toi ou d'un copier-coller ?

    Starec

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 112
    Par défaut
    oui le conf est bien declarer plus haut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim Conf As Recordset
    Set Conf = Bds.OpenRecordset("Config")
    c un copier coller du code

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 112
    Par défaut
    merci de ton aide mais j'ai encore besoin de toi

    en fait la table config est une table attaché odbc a sql server

    pourrai tu me dire comment faire pour changer l'enregistrement sur la table config sql server je te passe la suite du code
    merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Conf.Edit
        ' faut mettre à jour le date fin quand on démarre la base vide
        Conf![DateFin] = Int(DateAdd("d", Conf![JoursAvance], Now()))
        Conf.Update
        Conf.Close
        DoCmd.SetWarnings True

  7. #7
    Invité
    Invité(e)
    Par défaut
    Re

    Attention, as-tu déjà fait cette manip ?

    Es-tu sûr de pouvoir écrire sur les tables, peut-être es-tu en lecture seule ?
    Pour le savoir ouvre ta table et essaye de modifier une valeur. (la table liée, pas la table sur le serveur).

    Starec

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 112
    Par défaut
    c exactement ca je ne peut pas changer de valeur dans la table liés car en lecture seule mais il faut que je la change dans sql server

  9. #9
    Invité
    Invité(e)
    Par défaut
    Re

    Je n'ai pas trop l'habitude de ce sujet, voici des hypothèes

    1 - Connection direct au serveur par ADO, il y'a du code sur la FAQ et faits des recherches sur le forum.

    2 - Sinon si tu veux passer sur Access, il faut que le serveur te donne l'autorisation, va voir avec ton Administrateur système.

    Starec

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 112
    Par défaut
    c'est moi qui m'occupe de change de sgbd donc g toutes les autorisation faut il que j'ouvre ma base et que je fasse une requete qui modifie la ligne?

    je ne comprend toujours pas pourquoi

    ne marche pas

    alors que si je fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function requete()
    Dim sql As String
    sql = "insert into Compteurs values (10, 'azerty')"
    DoCmd.RunSQL sql
    End Function
    il n'y a aucun probleme

  11. #11
    Invité
    Invité(e)
    Par défaut
    Re

    A priori tu veux faire une mise à jours sur ta table "Config" et sur tous les champs, par contre tu ne parcours pas ta table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    While not conf.Eof
    ...
    Wend
    Starec

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 112
    Par défaut
    en fait ouai je peut ajouter un enregistrement

    comment pourrais je modifier la valeur d'un champ

    ex: ajouter 10 a un entier ou concatener "vba" a un varchar

  13. #13
    Invité
    Invité(e)
    Par défaut
    Re

    Je pense que le problème vient que tu ouvres un recordset sur ta table Config, mais que tu ne parcours pas ta table.

    Essaye un code de ce style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Conf.MoveFirst
    While Not Conf.EOF
        Conf.Edit
        ' faut mettre à jour le date fin quand on démarre la base vide
             Conf("DateFin") = Int(DateAdd("d", Conf![JoursAvance], Now()))
        Conf.Update
        Conf.MoveNext
    Wend
    Conf.Close
    dans la mesure ou dateFin est bien un champ de ta table config.

    Starec

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 112
    Par défaut
    merci je vais essayer

    en fait la table config ne contient qu'un seul enregistrement et pas plus

  15. #15
    Invité
    Invité(e)
    Par défaut
    Bonjour

    S'il n'y a qu'un seul enregistrement pourquoi tu t'embête avec un recordset, fait une requête en SQL de mise à jour.

    Tu as un tuto dans les pages tuto du forum Access, trés bien fait sur le SQL lié à Access.

    Starec

  16. #16
    Membre Expert

    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
    Par défaut
    Bonjour,

    Pour information...

    Pour qu'un recordset provenant d'une table liée via ODBC soit modifiable, il faut que la table soit indexée.
    Alors soit tu crées un index "unique" sur le serveur, soit tu crées un pseudo-index côté Access.

    Dans le cas où tu ajoutes cet index unique côté serveur, il faut "mettre à jour" la fichier MDB Access (c'est à dire, supprimer la table liée, puis la recréer pour que le nouvel index soit pris en compte).
    _

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 112
    Par défaut
    merci JBO c'est donc pour ca que j'ai le message "objet en lecture seule" il suffit d'ajouter un index????

Discussions similaires

  1. Instruction Iff en VBA
    Par taisherg dans le forum VBA Access
    Réponses: 7
    Dernier message: 18/06/2007, 10h15
  2. [VBA-A]Problème avec instruction SendKeys
    Par m_haj dans le forum VBA Access
    Réponses: 4
    Dernier message: 27/04/2006, 13h00
  3. [VBA][Excel]CheckBox non editable
    Par Pollux dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/01/2006, 10h03
  4. probleme code vba ne s'execute pas apres instruction sql
    Par arnogef dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 29/12/2005, 12h34
  5. Aide débutant instruction VBA tableau Excell
    Par damien33 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/09/2005, 10h31

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