Bonjour,
Je suis désespéré , je n'arrive pas à mettre en oeuvre une procédure avec la fonction DATEAAD, voici dans un premier temps mon code qui fonctionne :

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
 
 string connectionString = null;
 OleDbConnection cnn;
 string sql = null;
 OleDbDataReader reader;
 
 string RechMSTPE18 = "MSTPE";
 string RechEmail19 = "NON";
 
 string date1 = DateTime.Now.ToShortDateString();   // DAte J
 
 
 connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\resources\BDD.accdb;Persist Security Info=False";
 sql = "Select * from Tble_MES_bds_121 WHERE " +
         "(Date_MES IS NULL)" + // Recherche uniquement si il y a une date vide
         " AND (Email LIKE ? + '%')" + // Recherche si dans colonne email il y a NON
         " AND (Statut LIKE ? + '%')"; // Recherche du mot MSTPE
 
     //   trois conditions sur quatre pour poursuivre mon code
 
     cnn = new OleDbConnection(connectionString);
     cnn.Open();
     OleDbCommand cmd = new OleDbCommand(sql, cnn);
 
     cmd.Parameters.AddWithValue("@Email", RechEmail19);
     cmd.Parameters.AddWithValue("@Statut", RechMSTPE18);
     cmd.Parameters.AddWithValue("@Date_fin_MSTPE", date1);
 
     reader = cmd.ExecuteReader();
 
     while (reader.Read())
 
     { //  ICI mon code  }
 
     reader.Close();
     cmd.Dispose();
     cnn.Close();
Maintenant que ça fonctionne, j'aimerais ajouter en supplément une autre valeur, dans la colonne (DATE_fin_MSTPE) je dois chercher une date et lui extraire 7 jours et si = date1 alors mon code démarre :

Et là, je suis incapable de le faire fonctionner.

A des fins d'entraînement, j'ai écrit ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
 sql = "Select * FROM Tble_MES_bds_121 WHERE (Date_fin_MSTPE LIKE ? + '%')"; // ce code tout simple fonctionne
Du coup j'ai le doute de savoir si je fais bien, ou mettre DATEADD (dans le SELECT, en se servant de SET).
Dans la condition WHERE comme je le pense, honnêtement j'ai tout essayé.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
 
sql = "SELECT * FROM Tble_MES_bds_121 WHERE (DATEADD(dd, -7, Date_fin_MSTPE) LIKE ? + '%')";
sql = "SELECT * FROM Tble_MES_bds_121 WHERE (DATEADD(d, -7, Date_fin_MSTPE) LIKE ? + '%')";
sql = "SELECT* FROM Tble_MES_bds_121 WHERE (DATEADD(day, -7, Date_fin_MSTPE) LIKE ? + '%')";
sql = "SELECT * FROM Tble_MES_bds_121 WHERE ((DATEADD(dd, 7, CONVERT(Date_fin_MSTPE))) Like  ? + '%')";
sql = "SELECT * FROM Tble_MES_bds_121 WHERE (Date_fin_MSTPE=DATEADD(dd,-7,Date_fin_MSTPE) LIKE ? + '%')";
Aucun ne fonctionne !
Je viens de tester une autre solution, c'est d'ajouter 7 jours à ma date1 (now) et mon histoire fonctionne comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
   string date1 = DateTime.Now.AddDays(7).ToShortDateString();   // DAte J + 7 jours
Je contourne mon problème..., mais est-ce la bonne solution....?

Une âme charitable aurait-elle la solution ?

Par avance, merci.