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

Access Discussion :

Cmd Modifier à problème


Sujet :

Access

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 107
    Points : 52
    Points
    52
    Par défaut Cmd Modifier à problème
    Bonjour,
    Après

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Set rst = db.OpenRecordset("SELECT * FROM tequipement WHERE (code_equipement = '" & Me.TxtInitial & Me.txtnomequip & Me.txtordre & "')")
    With rst
                .Edit
                !code_equipement = Me.TxtInitial & Me.txtnomequip & Me.txtordre
                e
                !nom_usuel = Me.txtnomusuel
                !etat = Me.txtetat
                !date_dacquisition = Me.txtdateacquisition
                .Update
            End With
    je recois comme message:
    Aucun enregistrement en cours
    Je ne comprends pas.
    : :
    Merci

  2. #2
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    c'est que ton reccord est vide

    essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set rst = db.OpenRecordset("SELECT tequipement.* FROM tequipement WHERE (code_equipement = '" & Me.TxtInitial & Me.txtnomequip & Me.txtordre & "')")
    A+

  3. #3
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour,

    A mon avis c'est que ton recordset s'ouvre sans aucun enregistrement. Tu dois donc avoir d'emblée rst.EOF. Tu pourrais le tester, d'ailleurs.
    D0nc aucun enregistrement dans la table avec le code(texte?) que tu appelles.
    D'après ton programme, tu ne cherches qu'un enregistrement à mettre à jour. Pourquoi pas un UpDate dans ce cas?

    A+

    pgz

  4. #4
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 107
    Points : 52
    Points
    52
    Par défaut
    Salut,
    Je m'excuse mais mon code marche sauf que si la modification concerne l'une des valeurs de test du code sql ie ou ou alors je recois le message: Aucun enregistrement en cours
    Merci

  5. #5
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    désolé je ne comprends pas ce que tu veux dire par:

    Je m'excuse mais mon code marche sauf que si la modification concerne l'une des valeurs de test du code sql ie
    c'est quoi cette modification? est-ce que les 3 champs doivent être renseigné?
    A+

  6. #6
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 107
    Points : 52
    Points
    52
    Par défaut
    Slt,
    En un mot comment modifier la valeur sur laquelle l'on definit un critère (sql)?
    Merci

  7. #7
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    parce que la valeur du critère doit être soit l'un ou l'autre des zones de texte?

  8. #8
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 107
    Points : 52
    Points
    52
    Par défaut
    Slt,
    est-ce que les 3 champs doivent être renseigné?
    On peut les modifier independamment.
    Merci

  9. #9
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    En un mot comment modifier la valeur sur laquelle l'on definit un critère (sql)?
    A mon avis en rédigeant le critère avec les anciennes valeurs.

    pgz

  10. #10
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    ma question est la suivante

    Est-ce que le "code_equipement" est composé des trois champs et est-ce que le code_equipement est bien du texte?

    tu peux aussi faire un msgbox avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    msgbox "select ....."
    pour visualiser ta requête sql

  11. #11
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 107
    Points : 52
    Points
    52
    Par défaut
    Slt,
    Est-ce que le "code_equipement" est composé des trois champs et est-ce que le code_equipement est bien du texte?
    Oui
    Bien quecode_equipement ne soit pas ma clef dans la table, son contenu est obtenu par trois zones de saisie
    exple:code_equipement=Vass01 ou txt1=V,txt2=ass,txt3=01.
    Je l'ai fait ainsi car il y a un tri sur la 1re lettre saisie.
    L'enregistrement de code_equipement est du type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    !code_equipement=txt1&txt2&txt3
    J'aurais crée une variable qui recois l'element sur lequel se trouve le critère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM tequipement WHERE (code_equipement = '" & Me.TxtInitial & Me.txtnomequip & Me.txtordre
    mais ici, ce element (code_equipement) est constitué de 3 zones de saisie. Et c'est là je ne sais comment faire.
    Merci

  12. #12
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    dommage que je n'aie pas vu avant

    corrige ton code du sql de la façon suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set rst = db.OpenRecordset("SELECT * FROM tequipement WHERE (code_equipement = '" & Me.TxtInitial & Me.txtnomequip & Me.txtordre & "');")
    met un ; à la fin du sql!!!! c'est bête de n'avoir pas vu avant!!!!

  13. #13
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 107
    Points : 52
    Points
    52
    Par défaut
    Slt,
    J'utilise Access 2k3;
    met un ; à la fin du sql
    Est-ce important : :

  14. #14
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    heu, le point-virgule ne va pas changer grand chose...

    la clé de recherche est composé de 3 valeurs dont une au moins a été modifiée
    donc il ne trouve pas d'enregistrement correspondant c'est logique

    c'est ce que disais pgz d'ailleurs
    A mon avis en rédigeant le critère avec les anciennes valeurs.

  15. #15
    Membre éclairé
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2005
    Messages
    511
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Mars 2005
    Messages : 511
    Points : 678
    Points
    678
    Par défaut
    Attention
    heu, le point-virgule ne va pas changer grand chose...
    Le point virgule est indispensable pour terminer une requête sql

    d'autre part une valeur à été modifiée mais si elle exite dans la table en question elle sera trouvée naturellement

    A+

  16. #16
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    En un mot comment modifier la valeur sur laquelle l'on definit un critère (sql)?
    A mon avis en rédigeant le critère avec les anciennes valeurs.


    Bien quecode_equipement ne soit pas ma clef dans la table, son contenu est obtenu par trois zones de saisie
    Si une clé est disponible, pourquoi ne pas l'utiliser pour appeler l'enregistrement?

    pgz

  17. #17
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 107
    Points : 52
    Points
    52
    Par défaut
    Slt,
    c'est ce que disais pgz d'ailleurs
    Citation:
    A mon avis en rédigeant le critère avec les anciennes valeurs.
    Anciennes valeurs : : :

  18. #18
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Le point virgule est indispensable pour terminer une requête sql

    d'autre part une valeur à été modifiée mais si elle exite dans la table en question elle sera trouvée naturellement
    Le point virgule est certes indispensable en SQL, mais dans du vba c'est pas utile.

    sinon j'ai cru comprendre qu'on a affaire à un formulaire indépendant et que le but est de modifier l'enregistrement en cours en utilisant une clé de recherche qui n'est pas la clé primaire de la table.
    donc effectivement si un enregistrement existe avec le code_equipement modifié il va le trouver mais j'ai l'impression que le but est de retrouver l'enregistrement correspondant à l'ancienne valeur de code_equipement.

    donc :
    Si une clé est disponible, pourquoi ne pas l'utiliser pour appeler l'enregistrement?
    ou

    A mon avis en rédigeant le critère avec les anciennes valeurs.

  19. #19
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Citation Envoyé par Alexandre Sahli
    Attention
    heu, le point-virgule ne va pas changer grand chose...
    Le point virgule est indispensable pour terminer une requête sql

    d'autre part une valeur à été modifiée mais si elle exite dans la table en question elle sera trouvée naturellement

    A+
    Le point virgule est optionnel sous Access

  20. #20
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 107
    Points : 52
    Points
    52
    Par défaut
    Slt,
    Finalement, j'ai crée une variable (mavar) qui reçoit le contenu de Code_equipement après clique sur la zone de liste (la zone de liste affiche les données enregistrées). Et alors j'arrive à modifier l'une des 3 zones de saisie (txt1, txt2, txt3).
    Merci à tous de votre aide.

Discussions similaires

  1. Script à modifier, problème avec le if de ma checkbox
    Par Monostone dans le forum Programmation et administration système
    Réponses: 0
    Dernier message: 25/11/2009, 16h47
  2. ALTER MODIFY problème de parenthèse
    Par ldims24 dans le forum SQL
    Réponses: 1
    Dernier message: 30/06/2008, 14h37
  3. Réponses: 10
    Dernier message: 11/01/2007, 10h22
  4. [Liste Modifiable] Problème avec la valeur par défault
    Par fusion_sadam dans le forum Access
    Réponses: 3
    Dernier message: 16/06/2006, 11h00
  5. Problème avec affichage d'une table modifiée
    Par auriolbeach dans le forum Access
    Réponses: 6
    Dernier message: 31/10/2005, 15h45

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