Bonjour,
Je ne sais pas, si je suis sur le bon forum...
Grace à une requête TDC, j'affiche les enregistrements de tous les carnets de commande dont les OV (Ordre de Vente) sont en cour.
Lorsque qu'un OV n’apparaît plus dans le prochain carnet de commande, celui-ci est enregistré dans une table HISTORIQUE avec un champ supplémentaire FinCarnetCde qui est une date, puis supprimé de la table des OV en cours.
Jusque là tout est OK.
Mon souci est que Vendredi mon "Chef" m'a demandé d'inclure l'historique.
Et là, je PATAUGE depuis 4 jours. Je n'arrive pas a inclure dans mes données les enregistrements historisés.
Les enregistrements historisés ont une date de début et une date de fin.
Ma question est comment inclure les enregistrements historisés dans ma requête ci-dessous:
Code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
Set IDEFIX = CurrentDb
'Reconstuction de la requête "rqyQtéCapTotalEXW"
'Constituer le nom de la nouvelle requête
sNomRQ = "rqyQtéCapTotalExw"
'construction de la nouvelle requête
sql = "PARAMETERS [Forms]![frmChDteExw]![SemaineD] Value, [Forms]![frmChDteExw]![AnneeD] Value;"
sql = sql & " SELECT rqyQtéCap.[Dte Fin Prévue], rqyQtéCap.DteCarnetCdeXLS, rqyQtéCap.Qté, rqyQtéCap.[Statut des OF],"
sql = sql & " NumSemaine([DteCarnetCdeXLS]) AS Semaine, rqyQtéCap.idCAP, rqyQtéCap.LC, rqyQtéCap.CAP, rqyQtéCap.idIPU,"
sql = sql & " rqyQtéCap.idClient, rqyQtéCap.Client, rqyQtéCap.idArticle, rqyQtéCap.[Code Article],"
sql = sql & " rqyQtéCap.Désignation, rqyQtéCap.[Dte Ddée EXW], rqyQtéCap.[Dte Expédition], rqyQtéCap.[Dte expédition modifiée], rqyQtéCap.Retard,"
sql = sql & " rqyQtéCap.[Magasin expedition], rqyQtéCap.[Point expedition], rqyQtéCap.OV, rqyQtéCap.OF"
sql = sql & " FROM rqyQtéCap"
sql = sql & " WHERE ((rqyQtéCap.DteCarnetCdeXLS) Between InvDatePart(1,[Forms]![frmChDteExw]![SemaineD],"
sql = sql & " [Forms]![frmChDteExw]![AnneeD]) And (InvDatePart(1,[Forms]![frmChDteExw]![SemaineD],"
sql = sql & " [Forms]![frmChDteExw]![AnneeD])+13))"
Select Case Me.gprStatutOF
Case 1
ClauseAND = ClauseAND & " AND [Statut des OF] = '" & "livrée" & "' "
Case 2
ClauseAND = ClauseAND & " And [Statut des OF] = '" & "non livrée" & "' "
Case 3
ClauseAND = ClauseAND & " And [Statut des OF] like '" & "" & "' "
'ClauseAND = ClauseAND & " And [Statut des OF] is null"
Case 4
ClauseAND = ClauseAND & " AND ([Statut des OF] Is Null Or [Statut des OF] Is Not Null)"
End Select
If Not Me.chkCAP Then
ClauseAND = ClauseAND & " AND idCAP like '*" & Me.cmbCAP & "*' "
End If
If Not Me.chkIPU Then
ClauseAND = ClauseAND & " AND idIPU like '*" & Me.cmbIPU & "*' "
End If
If Not Me.chkClient Then
ClauseAND = ClauseAND & " AND idClient like '*" & Me.cmbClient & "*' "
End If
If Not Me.chkCdeArticle Then
ClauseAND = ClauseAND & " AND idArticle like '*" & Me.cmbCodeArticle & "*' "
End If
If Not Me.ChkMagasin Then
ClauseAND = ClauseAND & " AND [Magasin expedition] like '*" & Me.cmbMagasin & "*' "
End If
Select Case Me.grpRetard
Case 1
ClauseAND = ClauseAND & " AND [Retard] like '" & "Retard" & "' "
Case 2
ClauseAND = ClauseAND & " AND [Retard] like '" & "Pas retard" & "' "
Case 3
ClauseAND = ClauseAND & " AND [Retard] like '" & "" & "' "
Case 4
ClauseAND = ClauseAND & " AND ([Retard] is null or [Retard] is not null)"
End Select
Select Case Me.grpOF
Case 1
ClauseAND = ClauseAND & " AND [OF] is not null "
Case 2
ClauseAND = ClauseAND & " AND [OF] like '" & "" & "' "
Case 3
ClauseAND = ClauseAND & " AND ([OF] is null or [OF] is not null) "
End Select
Select Case Me.grpLC
Case 1
ClauseAND = ClauseAND & " AND [LC] like '" & "x" & "' "
Case 2
ClauseAND = ClauseAND & " AND [LC] like '" & "" & "' "
Case 3
ClauseAND = ClauseAND & " AND ([LC] is null or [LC] is not null) "
End Select
If Len(ClauseAND) = 0 Then
GoTo AménagerLaQueueDuSQL
Else
sql = sql & ClauseAND
End If
AménagerLaQueueDuSQL:
sql = sql & " ORDER BY rqyQtéCap.[Dte Expédition];"
'Debug.Print sql
'supprime la raquête si elle existe
If ExistQuery(sNomRQ) Then DoCmd.DeleteObject acQuery, sNomRQ
'créer la nouvelle requête
Set maReq = IDEFIX.CreateQueryDef(sNomRQ, sql) |
Ci-joint un aperçu du formulaire.
Merci d'avance de votre précieuse aide.
Christian