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 :

[FORMULAIRE & SQL][2k] Mise à jour d'un champ impossible, pourquoi ?


Sujet :

Access

  1. #1
    Membre averti Avatar de soforever
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    276
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 276
    Points : 306
    Points
    306
    Par défaut [FORMULAIRE & SQL][2k] Mise à jour d'un champ impossible, pourquoi ?
    Bonjour,

    Lorsque j'exécute ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    DoCmd.RunSQL ("Update ContactClient set ValiderAction = true, TexDateCloture = " & Date & "
    where NumChronoContact = " & num & "
    and year(DateContact) = year(#" & dateCourante & "#)")
    Il m'affiche une erreur : "Le champ "TexDateCloture" n'est pas un champ pouvant être mis à jour"

    Je ne comprends l'erreur... ca vient d'un type de champ, de la requête...

    Si il vous manque des informations pour me faire profiter de votre expérience, je reste dans le coin. Merci


    EDIT : je vois que quelques personnes ont lu mon post mais personne n'a pu/voulu/su y répondre... Si vous n'avez que des pistes ou des questions je suis tout ouïe car je bloque sans savoir quoi modifier... Encore merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Passes-tu par une autre requête, ou effectues-tu la mise à jour sur la table ?
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Membre averti Avatar de soforever
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    276
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 276
    Points : 306
    Points
    306
    Par défaut
    J'effectue la requête sur la table... et je viens de comprendre mon erreur !

    Merci de m'avoir fait ouvrir les yeux.

    En fait "TexDateCloture" est le nom du champ texte dans mon formulaire. Je pensais que comme ce champ avait sa "source" référencé dans ses propriétés, il ferait la mise à jour ensuite.

    Je viens de changer le nom par le nom de ce champ dans la table et tout marche... A l'exception de la date qu'il m'affiche dans le champ...

    En effet, lorsque je clique il m'affiche bien la date dans le bon format, mais je souhaitais la date du jour (date système) et la je me retrouve avec le "30/12/1899"

    Aurais tu une idée pour ce problème ou je crée un nouveau topic ?

    Merci encore

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Datecourante, c'est quoi ?

    Pour avoir l'année en cours, c'est Year(Date())

    Tu peux aussi faire Cint(Format(Date(),"yyyy")
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Membre averti Avatar de soforever
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    276
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 276
    Points : 306
    Points
    306
    Par défaut
    DateCourante est juste une variable pour préter à confusion en rien la date du jour stockée...

    Merci pour tes propositions pour l'année en cours mais, sans abuser, c'est le mois et l'année qu'il me faut sous la forme DD/MM/YYYY
    Je ne sais pas ou placer Month()...

    Je vais essayer la solution : Cint(Format(Date(),"DD/MM/yyyy") et je reviens te dire si ça a marché

    Merci

  6. #6
    Membre averti Avatar de soforever
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    276
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 276
    Points : 306
    Points
    306
    Par défaut
    Arfff

    Même en intégrant ta solution il me retourne la même date...

    J'ai voulu stocker tout ca dans une variable voir ce qu'il stockait :

    Dtoday = Date // ici Date = 03/05/2007 et Dtoday = 00:00:00

    Même chose quand j'utilise format() ou Cint(Format())

    Et je ne vois pas d'ou ca vient... je continue à tester

  7. #7
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Il faut alors enlever le Cint.
    Si tu veux le jour, le mois et l'année, c'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Format(Dat(), "dd/mm/yyyy")
    C'est une chaîne de caractère qui est renvoyée.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  8. #8
    Membre averti Avatar de soforever
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    276
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 276
    Points : 306
    Points
    306
    Par défaut
    J'avais testé sans le Cint.

    Voilà mon code actuel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DoCmd.RunSQL ("Update ContactClient set ValiderAction = true, DateCloture = " & Format(Date, "dd/mm/yyyy") & " 
    where NumChronoContact = " & num & " and year(DateContact) = year(#" & dateCourante & "#)")
    J'ai aussi essayé pour comprendre de stocker Format(Date, "dd/mm/yyyy") dans une variable mais rien n'y fait... il me retourne et me stock toujours le 30/12/1899, date à laquelle access commence son référencement...

    Je ne veux pas t'ennuyer et désolé si je ne "tilt" pas vite mais access s'ouvre chaque jour un peu plus à moi...

    EDIT : Au delà du simple problème, je ne comprends pas pourquoi dans "Date()" il retourne effectivement la date du jour dans son format abrégé... et qu'il ne sache pas l'afficher et le stocker correctement.

    Penses-tu que ca puisse venir de ma table ou de mon formulaire ?

  9. #9
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Date() renvoie non pas une date, mais un entier.
    L'affichage, c'est toi qui le détermine.
    Il y a aussi Now() qui lui renvoie un double.

    Comme je l'ai mentionné, Format(Date(), "dd/mm/yyyy") ne tiendra pas dans un champ date, puisque c'est un texte.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  10. #10
    Membre averti Avatar de soforever
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    276
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 276
    Points : 306
    Points
    306
    Par défaut
    Excuse moi j'avais donc mal lu et par conséquent mal compris.

    Je viens donc de modifier ma table je viens de passer le champ en texte.

    Et... CA MARCHE !

    Merci beaucoup !

    Tu les as pas volé tes 3k6 messages

    Je te remercie et fait un chti "commit" en l'état actuel des choses !

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

Discussions similaires

  1. boucle PL\SQL de mise à jour d'un champ
    Par marieo dans le forum PL/SQL
    Réponses: 2
    Dernier message: 28/08/2011, 15h45
  2. [AC-2003] Requête SQL pour Mise à jour de champs dans un formulaire suite à une saisie
    Par sunshine44 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 28/01/2010, 16h25
  3. mise à jour d'un champ dans un formulaire
    Par DiverSIG dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 30/03/2006, 19h42
  4. Réponses: 2
    Dernier message: 21/12/2005, 13h08
  5. Réponses: 2
    Dernier message: 12/02/2003, 15h26

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