|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre du Club
![]() Inscription : avril 2002 Messages : 124 ![]() |
Bonjour,
Meilleurs voeux pour la nouvelle année J'ai un problème avec la requete suivante Code :
UPDATE Tbl_DataNavette_NAV INNER JOIN TMP_HDebCondPrec ON Tbl_DataNavette_NAV.Numéro = TMP_HDebCondPrec.Numéro SET Tbl_DataNavette_NAV.DebCondPrec = [HCondecprec]; la requette TMP_HDebCondPrec Code :
J'ai commencer par essayer en une seul requete : Code :
Merci pour votre aide |
||||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour Tornade69,
Bonne année 2011 à toi aussi. Ce message apparaît, entre autres, quand Access trouve plusieurs enregistrements à mettre à jour pour la même clé. Si tu veux poster la liste de tes tables concernées, avec leur clé primaire, ainsi que ce que tu veux obtenir "en français", nous pourrons étudier le problème.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#3 | ||
|
Membre du Club
![]() Inscription : avril 2002 Messages : 124 ![]() |
Merci,
J'ai 3 colonnes (pour faire au plus simple) Date Lieu Horaire Je dois calculer par rapport à chaque date, et lieu quel est l'horaire précédent de passage. donc j'ai fait une requete qui calcul par rapport à une date et un lieu, la valeur max inférieur à la valeur courante de l'horaire. Code :
Malheureusement, je suis obliger de stocker la valeur. car quand cette requête est ensuite utilisé par une autre requete, et exploiter depuis Excel ... cela met plus 2 heures à faire la mise a jour. (sans cette colone a calculé, il met 2 min) d'ou la solution de stocker la valeur. Sauf que cela fonctionne très bien en requete sélection, mais pas en mise à jour. NB: je fais aussi au passage une conversion en seconde Merci Tornade |
||
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Tu n'as pas, réellement, répondu à la question. Donc, si j'ai bien compris, la table en cause est la suivante :
Table Tbl_DataNavette_NAV : - Date - Lieu - Horaire - Horaire_precedent ==> clé primaire Date/Lieu/Horaire. 2 questions :
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : avril 2002 Messages : 124 ![]() |
Bonjour,
Je précise, la clé primaire est un champs numéro auto, basic. Pas de clé primaire composée. Oui sachant aussi qu'il peut ne pas avoir d'horaire précédent. Par contre il peut exister pour une même date, un même horaire, un même lieu, mais un véhicule différent. en fait la table comporte plus de champs, seulement les significatifs pour cette requete : num : numauto véhicule : texte lieu : texte date : date horaire : heure horaire précédent : entier long (stockage des infos en secondes) Toutes les données (sauf horaire précédent) sont issue d'un import. L'objectif est de calculer l'horaire précédent pour ensuite calculer le temps d'attente entre 2 passages de véhicule. Donc pour un jour donné, il y a le premier passage, qui n'a pas d'horaire précédent (c'est normal), et parfois comme 2 véhicules partent même temps, c'est la raison pour une même, un même horaire, et même lieu. J'espère avoir été plus clair. Merci |
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour Tornade69,
Si, même avec un identifiant unique (num), cela ne fonctionne pas, je pense que la requête intermédiaire "n'a pas le temps" de travailler, en quelque sorte. Essaies ceci, via l'assistant : Créer une requête R1 : - ajout table Tbl_DataNavette_NAV (FROM) ; - ajout table Tbl_DataNavette_NAV (renommée par Access Tbl_DataNavette_NAV_1) (FROM) ; - lier par Date et Lieu (JOIN) ; - sélection Date et Lieu (SELECT) ; - sélectionner Horaire de Tbl_DataNavette_NAV (SELECT) ; - sélectionner Horaire de Tbl_DataNavette_NAV_1 (SELECT) ; - critères Horaire de Tbl_DataNavette_NAV_1 < Horaire de Tbl_DataNavette_NAV (WHERE). ==> donne la liste de tous les horaires inférieurs à tous les enregistrements de Tbl_DataNavette_NAV. Créer une requête R2 : - ajout requête R1 (FROM) ; - type "Création de table" => table R2_tb (INSERT) ; - regroupement (GROUP BY) ; - sélection Date et Lieu (SELECT) ; - sélectionner Horaire de Tbl_DataNavette_NAV (SELECT) ; - sélectionner Max(Horaire de Tbl_DataNavette_NAV_1) (SELECT). ==> crée une table contenant la liste des enregistrements de Tbl_DataNavette_NAV avec l'horaire immédiatement précédent à l'horaire de base. Créer une requête R3 : - ajout table Tbl_DataNavette_NAV (FROM) ; - ajout table R2_tb (FROM) ; - type "mise à jour" (UPDATE) ; - lier par Date, Lieu, Horaire (JOIN) ; - mise à jour "Horaire_precedent de Tbl_DataNavette_NAV" = "Horaire de R2_tb" (qui est le Max précédemment calculé dans R2). ==> mise à jour finale de la table initiale. A tester.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#7 | ||
|
Membre du Club
![]() Inscription : avril 2002 Messages : 124 ![]() |
En fait j'ai eu un flash ce matin, et j'ai fait une requete création de table direct
Code :
Le plus drôle c'est que je n'ai pas de double dans la table final ??? C'est pas très propre, et surtout beaucoup moins bien, mais cela fonctionne. Par contre j'ai pas eu l'idée de remettre à jour la table final ... Un grand merci pour ton aide, cela faisait plusieurs heures que je callais sur cette fonction. PS : J'ai fait un test sur SQL et la elle fonctionne ... Moi je comprends pas Tornade |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com