Partager via

ACCESS - Critère date dans une requête ajout.

Anonyme
2021-01-17T13:24:30+00:00

Bonjour,

J'ai deux tables

SALES et SALESw de structure presque identique.

Je veux ajouter des enregistrements de SALES dans SALESw en prenant comme critère Année(Date())-1.

J'obtiens un ajout de 0 enregistrements alors que la table source en contient.

Si je supprime la condition de date, ma requête sélectionne les enregistrements de SALES.

Ma requête :

INSERT INTO SALESw ( [INVOICE NUMBER], [DATE INVOICE], [CUSTOMER NUMBER], PRODUCT, [FAMILY CODE], QUANTITY, DISCOUNT, [NET PLN] )

SELECT SALES.[INVOICE NUMBER], SALES.[DATE INVOICE], SALES.[CUSTOMER NUMBER], SALES.PRODUCT, SALES.C_FAMART AS [FAMILY CODE], SALES.QUANTITY, SALES.DISCOUNT, SALES.[NET PRICE (PLN)] AS [NET PLN]

FROM SALES

WHERE (((SALES.[DATE INVOICE])=Year(Date())-1))

ORDER BY SALES.[DATE INVOICE] DESC;

Je ne comprends pas quel est le problème?

La condition de date?

Merci pour une aide précieuse.

Microsoft 365 et Office | Access | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

5 réponses

  1. Anonyme
    2021-01-17T18:53:15+00:00

    Nous utilisons un service de traduction pour assister nos utilisateurs. Veuillez nous excuser pour les éventuelles erreurs grammaticales.

    Ça a l’air mieux. Mais ma suggestion était une faute de frappe. Il aurait dû être <#1/1/2021#. Cela aurait éliminé les dates de 2021. Si vous vouliez montrer seulement l’année précédente, vous pouvez utiliser:

    < DateSerial (Année (Date()),1,1)

    Cela permettra de retourner les dates avant l’année en cours.

    Content d’avoir pu vous aider.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2021-01-17T14:45:01+00:00

    J'ai trouvé la faute.

    Mon where doit être :

    WHERE (((Year([SALES].[DATE INVOICE]))=Year(Date())-1))

    Bonne fin de journée.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Hecatonchire 53,780 Points de réputation Modérateur bénévole
    2021-01-17T14:44:08+00:00

    Bonjour

    En gros Year(Date())-1 donne une année et non une date (ex : Year(#01/17/2021#)-1=>2020) que tu utilises sur un champ date (avec jour/mois/Année)

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2021-01-17T14:35:12+00:00

    Nous utilisons un service de traduction pour assister nos utilisateurs. Veuillez nous excuser pour les éventuelles erreurs grammaticales.

    Salut RAPACE, je suis un conseiller indépendant et va essayer d’aider.

    Vos critères n’ont pas de sens. Quel type de données est DATE-ANED ? S’il s’agit d’un type de données date/heure, les critères ne fonctionnent pas. S’il contient une valeur d’un an, pourquoi avoir un champ distinct pour cela?

    Si ce que vous cherchez est de copier tous les documents qui étaient de l’année dernière, alors la clause WHERE devrait ressembler à ceci:

    OÙ [datefield] < #1/1/2020#

    Si cela ne fonctionne pas, veuillez fournir des informations sur le type de données et les valeurs que contiennent vos champs. De cette façon, je peux fournir une clause WHERE qui fera ce que vous voulez.

    Bonjour Scott,

    Merci d'avoir répondu.

    J'utilise ce critère dans des requêtes de création de table.

    Quel type de données est DATE-ANED ? Je suppose qu'il y a y une erreur de frappe, je n'ai pas cité un tel champ.

    DATE.INVOICE est de type date/heure, en effet : Date, abrégé

    et ceci dans les deux tables.

    Je ne veux pas entrer de valeur de date fixe.

    "OÙ [datefield] < #1/1/2020#" a l'inconvénient de sélectionner aussi les dates de 2021.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  5. Anonyme
    2021-01-17T14:16:17+00:00

    Nous utilisons un service de traduction pour assister nos utilisateurs. Veuillez nous excuser pour les éventuelles erreurs grammaticales.

    Salut RAPACE, je suis un conseiller indépendant et va essayer d’aider.

    Vos critères n’ont pas de sens. Quel type de données est DATE-ANED ? S’il s’agit d’un type de données date/heure, les critères ne fonctionnent pas. S’il contient une valeur d’un an, pourquoi avoir un champ distinct pour cela?

    Si ce que vous cherchez est de copier tous les documents qui étaient de l’année dernière, alors la clause WHERE devrait ressembler à ceci:

    OÙ [datefield] < #1/1/2020#

    Si cela ne fonctionne pas, veuillez fournir des informations sur le type de données et les valeurs que contiennent vos champs. De cette façon, je peux fournir une clause WHERE qui fera ce que vous voulez.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire