Condition Where avec Date dans commande SQL

Bonjour à tous,

Je dispose d'une table avec un champ formaté en "Date Générale" et d'un formulaire avec une combobox elle aussi formaté sous les mêmes conditions, elle se nomme" C_Inter_Date"

Je souhaites créer un recordSet en fonction du choix de la combobox, mais ma commande Sql passe bien ( pas d'erreur) mais aucun enregistrement est trouvé alors que sa ne devrait pas être le cas:

en debug.print, j'ai ce résultat qui me parît correct:

[QUOTE]Select * from Calls where [Calls].[Date_Interaction]=30/04/2020[/QUOTE]

Private Sub C_Inter_Date_AfterUpdate()
    Dim db As Database
    Dim rs As Recordset
    Dim chaineSQL As String, i&

    For i = 0 To C_Inter_Date.ListCount
        If CStr(C_Inter_Date) = C_Inter_Date.ItemData(i) Then
            Set db = CurrentDb
            chaineSQL = " Select * from Calls where [Calls].[Date_Interaction]=" & C_Inter_Date

            Debug.Print chaineSQL
            Set rs = db.OpenRecordset(chaineSQL)
            If rs.RecordCount > 0 Then

Avez vous une idée ?

Merci

Bonjour,

La date n'est pas à mettre entre apostrophes ?

'30/04/2020'

Bonjour Pedro22 et merci pour ta réponse, j'ai essayé de mettre des apostrophes mais le résultat est identique

S'agissant probablement d'un soucis de reconnaissance de la date, tu peux aussi utiliser la fonction CAST pour forcer le format date.

CAST(expression AS type)

Bonjour,

Dans la base, les dates sont elles au format dates ou sont-ce du texte?

Sinon, essayer de convertir ta combobox (texte) en date, avant de lancer la commande...

Private Sub C_Inter_Date_AfterUpdate()
    Dim db As Database
    Dim rs As Recordset
    Dim chaineSQL As String, i&
   Dim maDate As Date
    For i = 0 To C_Inter_Date.ListCount
        If CStr(C_Inter_Date) = C_Inter_Date.ItemData(i) Then
            maDate = CDate(C_Inter_Date)
            Set db = CurrentDb
            chaineSQL = " Select * from Calls where [Calls].[Date_Interaction]=" & maDate

            Debug.Print chaineSQL
            Set rs = db.OpenRecordset(chaineSQL)
            If rs.RecordCount > 0 Then

De la même manière, CStr(C_Inter_Date) transforme C_Inter_Date de String en String...

Pedro: La fonction " CAST" n'est pas reconnu dans VBA

pijaku: j'avais déjà essayé le CDATE direct dans la chaine SQL sa ne passait pas, j'ai ressayer comme tu me l'as indiqué, c'est pas mieux

Suite à une réponse sur le forum Développez, j'ai essayé comme ceci:

chaineSQL = " Select * from Calls where [Calls].[Date_Interaction]= #" & C_Inter_Date & "#"

Et sa fonctionne nickel

Merci à vous

Rechercher des sujets similaires à "condition where date commande sql"