Date incorrecte dans requête Access

Résolu
Bonjour,

J'ai créé une base de donnée sous Access 2000 et je rencontre un problème que je n'arrive pas à résoudre.

En effet, lorsque je rentre des données dans le formulaire, les données se retrouvent dans la table sans problème (j'ai un formulaire avec un sous-formulaire et donc 2 tables différentes).
Par contre, j'ai créé une requête pour avoir la date de réception (table 1) et la date de traitement (table 2) et à chaque fois les données sont fausses.
Je ne comprends pas, dans la table et le formulaire, les informations sont exactes mais dans le résultat de la requête, toutes les dates deviennent identiques (alors qu'elles ne le sont pas dans la table et le formulaire).

Merci de m'aider à comprendre (précision : je n'utilise pas le mode SQL)
Configuration: Windows 2000 Internet Explorer 6.0

15 réponses

  1. IL faut effectuer la relation avec deux champs dits "Communs"

    Exemple :
    Table Articles
    CodeArticle --> Relation avec le champ RefArticle
    Libellé
    Date Achat

    Table Mouvements
    RefArticle ---> Relation avec le champs CodeArticle de la table Articles
    DateMvt
    etc.....
    2
    1. Bonjour,

      Pour t'aider il faudrai nous donner soit la requete sql soit le parametrage de ta recherche.
      0
      1. J'ai utilisé l'assistant pour créer ma requête en utilisant les deux tables et j'ai utilisé les champs date de réception (table 1) et date de traitement (table 2). J'ai relié ces deux champs étant donné qu'ils ne sont pas de la même table.
        J'aimerai que le résultat me donne (ce qui serait les bonnes données) :

        Date de réception |Date de traitement
        04/05/2009 | 05/05/2009
        04/05/2009 | 05/05/2009

        Et non pas (ce qui est donné actuellement comme résultat) :

        Date de réception |Date de traitement
        04/05/2009 | 04/05/2009
        04/05/2009 | 04/05/2009
        0
        1. J'ai oublié :

          La date de réception est par défaut celle du jour Date()
          Et la date de traitement ne peut pas être inférieur à la date de réception >=Date()
          Et dans le formulaire et la table, ça marche.
          0
          1. Il ne faut pas lier des dates ensemble directement il n'arrivera jamais à lier correctement les infos.

            Pour retrouver des infos tu dois passer par une clef primaire ou par plusieurs champs.

            Tu devrai pouvoir afficher la requete sql généré par l'assistant peux tu la fournir?

            Je travaille exclusivement en requete SQL ce qui permet d'etre sûr de ce que l'on veut avoir et une requete est plus lisible pour trouver une erreur de parametrage de l'assistant.
            0
            1. Je ne savais pas que l'on ne pouvais pas relier des dates.

              Voici le SQL :

              SELECT [Table-prototype-demande].N°, [Table-prototype-demande].[Réception le], [Table-secondaire-traitement].[Traitement le]
              FROM [Table-secondaire-traitement] INNER JOIN [Table-prototype-demande] ON [Table-secondaire-traitement].[Traitement le] = [Table-prototype-demande].[Réception le]
              WHERE ((([Table-prototype-demande].[Réception le]) Between [Date de début] And [Date de fin]) AND (([Table-secondaire-traitement].[Traitement le]) Between [Date de début] And [Date de fin]));

              Merci en tout cas !
              0
              1. bonjour
                Oui il faut en premier vérifier les relations entre les deux tables

                bonne journée
                0
                1. qmike : mais si je ne peux pas les relier ensemble alors que ces deux champs sont dans des tables différentes, je ne vois pas comment faire ?
                  Sachant que dans ma table 1, j'ai une clé primaire qui est le numéro automatique.
                  Dans la seconde, je n'en ai pas défini.
                  0
                  1. Si tu ne veux pas effectuer des relations entre cex deux tables
                    Tes résultats seront toujours faussés

                    Access est une base de données relationnelle
                    0
                    1. Pour l'instant les deux tables sont reliés par ces deux champs (date de réception dans la table 1 et date de traitement dans la table 2).
                      Mais comme il s'agit de dates et que je ne peux, si j'ai bien compris, pas les relier, je ne vois pas comment je peux faire.
                      0
                      1. Il faut un lien entre tes 2 tables.

                        Je prends un exemple concret : Une Facture ( en gras la clef unique de la table qui permet d'identifier une information cela peut etre 1 ou 2 champ)

                        Table Facture :
                        N° Facture
                        Date
                        Montant Total

                        Table Ligne de Facture:
                        N° Facture
                        N°Ligne

                        Libellé de l'objet
                        Montant de l'objet
                        Nombre d'Objet

                        Si je veux traiter les montants je ne fait pas de liens sur les montants mais le N° Facture.

                        Tu dois faire un truc du même style pour retrouver tes dates.
                        0
                        1. pas du tout
                          Ta dexième table doit etre dotée un champ RefFacture en relation avec le champ Nuémro de facture de la première table
                          0
                          1. Ce RefFacture peut avoir le même nom et accessoirement faire partie de la clef primaire.

                            La relation n'est pas forcément obligatoire.

                            Je code du SQL à longueur d'année sur différentes bases de données (Oracle, Sql Server, DB2, MySql, PostgreSql pour ne citer que celles là) je ne me base pas sur Access pour l'exemple.

                            Il est là uniquement pour expliquer la relation entre 2 tables. de manière simple
                            0