Bonjour,
J'ai un formulaire qui contient 3 textes_box , une liste_box et un bouton de commande :
-2 texte_box contiennent des dates à référencer : Texte_DateDebut et Texte_DateFin sous le format jj/mm/aaaa hh :mm
-1 texte_box contient un numéro de porte à référencer : Texte_Porte
-La liste_box afficher les résultats : Liste_Vrac
Tout fonctionne très bien lorsque je lance la requête SQL (ci-dessous) par le biais du bouton de commande.
La liste_box est composé de 6 colonnes (cf exemple ci dessous):
Journee : 30/06/2014
heure debut : 30/06/2014 17:00
heure fin : 30/06/2014 23:30
PFC destinataire : RENNES
porte : 60
Nombre : 1335
Maintenant, on me demande d’apporter deux améliorations à ce formulaire :
1) A chaque nouvelle donnée enregistrée dans la liste_box, les anciennes données ne doivent pas disparaitre de la liste_box.
Les nouvelles données devront s’incrémenter avec les anciennes données
2) Dans la liste_box, les anciennes données et les nouvelles données devront être classées par ordre chronologique de date de début et par numéro de porte
Je dois vous vous avouer que je suis bloqué et que je ne sais pas par où commencer..
Voici la le code vba sans ces deux améliorations :
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
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 Option Compare Database Dim Vporte As String Dim txt_ChaineSQL As String Dim strSQLSELECT As String Dim strSQLFROM As String Dim strSQLWHERE As String Dim strSQLGROUPBY As String Dim strSQLHAVING As String Dim strSQLORDERBY As String Dim objSpeech As Object Dim strPhrase As String Dim intPitch As Integer Private Sub Cmd_vrac_Click() Vdatedebut = DateAuFormatUS(Me.Texte_DateDebut) Vdatefin = DateAuFormatUS(Me.Texte_dateFin) Vdatedebut = CDate(Texte_DateDebut) Vdatefin = CDate(Texte_dateFin) Vporte = Val(Texte_porte) With Me.Liste_Vrac .RowSourceType = "Table/Requête" .ColumnCount = 6 ' nombre de colonne que dois avoir le formulaire .BoundColumn = 1 ' la colonne de reference strSQLSELECT = "SELECT CVDate(Fix(([EventTime]-5/24))) AS journee, Min(dbo_vwItemEventHistory.EventTime) AS [heure debut], Max(dbo_vwItemEventHistory.EventTime) AS [heure fin], T_vracs.PFC_Destinataire, T_vracs.PORTE, Count(dbo_vwItemEventHistory.ItemID) AS CompteDeItemID" strSQLFROM = "FROM ((dbo_vwItemEventHistory INNER JOIN dbo_vwParts ON dbo_vwItemEventHistory.PartID = dbo_vwParts.ID) INNER JOIN [table_Affich-general] ON dbo_vwParts.DisplayName = [table_Affich-general].[Chute (format access)]) INNER JOIN T_vracs ON [table_Affich-general].[Nom Porte principale] = T_vracs.PFC_Destinataire" strSQLWHERE = "WHERE (((dbo_vwItemEventHistory.ItemEventTypeID) = 4) And ((dbo_vwItemEventHistory.ResultTypeID) = 23) And (([table_Affich-general].Allée) = 'vrac') AND (dbo_vwItemEventHistory.EventTime) >=#" & Format(Vdatedebut, "MM/dd/yyyy HH:mm") & "# And (dbo_vwItemEventHistory.EventTime) <=#" & Format(Vdatefin, "MM/dd/yyyy HH:mm") & "#)" strSQLGROUPBY = "GROUP BY CVDate(Fix(([EventTime]-5/24))), T_vracs.PORTE, T_vracs.PFC_Destinataire" strSQLHAVING = "HAVING ((T_vracs.PORTE) = '" & Vporte & "')" strSQLORDERBY = "ORDER BY CVDate(Fix(([EventTime]-5/24))) DESC;" txt_ChaineSQL = strSQLSELECT & vbCrLf & _ strSQLFROM & vbCrLf & _ strSQLWHERE & vbCrLf & _ strSQLGROUPBY & vbCrLf & _ strSQLHAVING & vbCrLf & _ strSQLORDERBY Debug.Print txt_ChaineSQL .RowSource = txt_ChaineSQL .Requery End With End Sub
Partager