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 :

[TABLE]Récupérer et stocker une valeur


Sujet :

Access

  1. #1
    Membre éclairé Avatar de stéphane_ais2
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 792
    Points : 891
    Points
    891
    Par défaut [TABLE]Récupérer et stocker une valeur
    Bonjour,

    Je souhaite récupérer la valeur d'une zone de texte (qui est dans un état) dont la source contrôle est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Format(Date();"Date, complet")
    pour l'ajouter comme donnée d'un champ (doss_resco_d) de la tblDossiers.

    Pourriez-vous m'orienter vers le bon chemin...? svp...

    Merci pour vos réponses

    SE
    Si le monde explose, la dernière voix audible sera celle d’un expert, disant que la chose est impossible. - P. Ustinov

  2. #2
    Membre éclairé Avatar de stéphane_ais2
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 792
    Points : 891
    Points
    891
    Par défaut
    J'ai essayé de définir une variable sur l'évenement fermeture de l'état
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim D As String
    D = Me.txtDateEdition
    puis j'ai mis une msgbox pour contrôler la valeur renvoyée. Et cela fonctionne.

    Mais si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim D as date
    D = Me.txtDateEdition
    cela me renvoie une erreur d'incompatibilité de type...
    Je ne comprends pas pourquoi?

    SE
    Si le monde explose, la dernière voix audible sera celle d’un expert, disant que la chose est impossible. - P. Ustinov

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    529
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 529
    Points : 464
    Points
    464
    Par défaut
    salut,
    salut vous n'avez qu'à changer la proriété Format de votre txtDateEdition en la maitant à date.
    propriété/format/date.
    Bonne chance.
    Merci.
    Deux, n'apprendront pas; le timide et l'arrogant

  4. #4
    Membre éclairé Avatar de stéphane_ais2
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 792
    Points : 891
    Points
    891
    Par défaut
    Merci Hocine pour ta réponse...
    Mais le format de cette zone de texte indépendante est déjà précisée...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =Format(Date();"Date, complet")
    Non?

    SE
    Si le monde explose, la dernière voix audible sera celle d’un expert, disant que la chose est impossible. - P. Ustinov

  5. #5
    Membre éclairé Avatar de stéphane_ais2
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 792
    Points : 891
    Points
    891
    Par défaut
    En fait si j'utilise la fonction Date pour attribuer à la variable la valeur du jour cela fonctionne...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim D As Date
    D = Date
    ...

    SE
    Si le monde explose, la dernière voix audible sera celle d’un expert, disant que la chose est impossible. - P. Ustinov

  6. #6
    Membre éclairé Avatar de stéphane_ais2
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 792
    Points : 891
    Points
    891
    Par défaut
    Je reviens sur ma question initiale qui consiste à récupérer ma valeur et à la stocker dans la table pour l'enregistrement qui fait l'objet de l'état.
    J'ai écris ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Dim db As DAO.Database
    Dim rst As DAO.Recordset
    Dim D As Date
    D = Date
    Set db = CurrentDb()
    Set rst = db.OpenRecordset("tblDossiers")
    rst.AddNew
    rst!doss_resco_d = D
    rst.Update
    rst.Close
    Set rst = Nothing
    Set db = Nothing
    Cela ne fonctionne pas car un enregistrement est requis dans une table liée. C'est normal.
    Comment faut-il que je fasse pour ajouter la nouvelle valeur uniquement sur l'enregistrement concerné?

    Merci pour vos réponses

    SE

    EDIT : la méthode AddNew n'est pas adéquate. Quelle méthode puis-je utiliser?
    Si le monde explose, la dernière voix audible sera celle d’un expert, disant que la chose est impossible. - P. Ustinov

  7. #7
    Membre éclairé Avatar de stéphane_ais2
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 792
    Points : 891
    Points
    891
    Par défaut
    Bonjour,

    Je ne tente pas de faire remonter mon post...

    Je ne sais pas quelle méthode utilisée pour répondre à mon problème...
    Est-ce que la propriété
    peut être utile?

    Merci de bien vouloir m'aiguiller...

    SE
    Si le monde explose, la dernière voix audible sera celle d’un expert, disant que la chose est impossible. - P. Ustinov

  8. #8
    Membre confirmé
    Avatar de Petogaz
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 479
    Points : 580
    Points
    580
    Par défaut
    salut,

    as-tu essayé avec la fonction Cdate ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim D as date 
    D = CDate(Me.txtDateEdition)
    et bien entendu pour stocker la valeur il faut passer par une requête d'ajout.

    Cela ne fonctionne pas car un enregistrement est requis dans une table liée. C'est normal.
    Comment faut-il que je fasse pour ajouter la nouvelle valeur uniquement sur l'enregistrement concerné?
    il me semble que ta table Dossier est liée à une table primaire quelconque et ses tables ont une intégrité référentielle. ce qui veux dire tu ne paux ajouter une donnée dans ta table dossier si cette données n'existe pas pas dans la table primaire.

  9. #9
    Membre éclairé Avatar de stéphane_ais2
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 792
    Points : 891
    Points
    891
    Par défaut
    Merci pour ta réponse Petogaz...
    La fonction semble répondre à mon besoin...

    Tu dis
    Il me semble que ta table Dossier est liée à une table primaire quelconque et ses tables ont une intégrité référentielle. ce qui veux dire tu ne paux ajouter une donnée dans ta table dossier si cette données n'existe pas pas dans la table primaire.
    Oui je suis d'accord. C'est ce que je disais aussi
    Cela ne fonctionne pas car un enregistrement est requis dans une table liée. C'est normal.
    Ma question porte précisement sur le fait d'ajouter une valeur (celle de la variable D) dans un champ d'un enregistrement déjà existant...l'enregistrement qui fait l'objet de l'état sur lequel je récupére la date d'édition sous la forme de la variable D.

    SE
    Si le monde explose, la dernière voix audible sera celle d’un expert, disant que la chose est impossible. - P. Ustinov

  10. #10
    Membre confirmé
    Avatar de Petogaz
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 479
    Points : 580
    Points
    580
    Par défaut
    si je comprend tu veux remplacer la valeur existante du champ doss_resco_d par ta valeur de D ?
    si c'est le cas il faut utiliser la méthode à la place de dans ta procédure. c'est donc une mise à jour que tu veux faire ?
    dis moi si j'ai saisi ta question.

  11. #11
    Membre éclairé Avatar de stéphane_ais2
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 792
    Points : 891
    Points
    891
    Par défaut
    Oui c'est bien cela sauf que le champ n'a pas encore de valeur avant de lui attribuer celle de la variable D...
    J'ai essayé ça :
    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
    Dim db As DAO.Database
        Dim rst As DAO.Recordset
        Dim D As Date
        Dim f As Form
        D = Date
        Set db = CurrentDb()
        Set rst = db.OpenRecordset("tblDossiers", dbOpenDynaset)
        Set f = Forms!frmEleves!sfEleves.Form
        rst.Edit
        rst!num_eleve = f!num_eleve
        rst!doss_resco_d = D
        rst.Update
        rst.Close
        Set rst = Nothing
        Set db = Nothing
    Cela semble fonctionner mais donne des résultats curieux dans la tbl...
    Je vais regarder...

    SE
    Si le monde explose, la dernière voix audible sera celle d’un expert, disant que la chose est impossible. - P. Ustinov

  12. #12
    Membre éclairé Avatar de stéphane_ais2
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    792
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 792
    Points : 891
    Points
    891
    Par défaut
    C'est résolu.
    Merci à Petogaz pour le conseil de la méthode Edit

    Pour information je laisse le code qui fonctionne :
    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
    16
    17
    18
    19
    20
    Dim db As DAO.Database
        Dim rst As DAO.Recordset
        Dim D As Date
        Dim f As Form
     
        D = Date
        Set db = CurrentDb()
        Set rst = db.OpenRecordset("tblDossiers", dbOpenDynaset)
        Set f = Forms!frmEleves!sfEleves.Form
     
        rst.FindFirst "[num_eleve] = " & f!num_eleve
        If rst.NoMatch = False And IsNull(rst!doss_resco_d) Then
            rst.Edit
            rst!doss_resco_d = D
            rst.Update
        End If
     
        rst.Close
        Set rst = Nothing
        Set db = Nothing
    ...

    SE
    Si le monde explose, la dernière voix audible sera celle d’un expert, disant que la chose est impossible. - P. Ustinov

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

Discussions similaires

  1. tableau+récupérer indice d'une valeur choisie
    Par jacko2 dans le forum Langage
    Réponses: 3
    Dernier message: 14/07/2008, 14h24
  2. Réponses: 1
    Dernier message: 22/04/2008, 20h35
  3. trouver une table a partir d une valeur
    Par chaky furtz dans le forum Langage SQL
    Réponses: 5
    Dernier message: 28/01/2008, 19h57
  4. [VB2008E] Où stocker une valeur dans les items d'une combobox ?
    Par dsolheid dans le forum Windows Forms
    Réponses: 2
    Dernier message: 19/01/2008, 19h14
  5. Stocker une valeur cachee dans un mail (.msg)
    Par Phil1973 dans le forum VBA Outlook
    Réponses: 1
    Dernier message: 20/07/2007, 10h39

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