Sommaire Divers Comment insérer automatiquement la date d'un champ dans le code SQL d'une requête ?
PROBLEME DE DATE DANS UNE REQUETE ?

.....  WHERE DUpdate =#" & GetDateSQL() & "# " .......

Lorsque vous écrivez une requête avec QBE pas de problème.Access prend une date dans un champ "22/12/97 13:19:26" et la transforme automatiquement SQL en #12/22/97 01:19:26 PM#.
Lorsque vous passez cette requête en Access Basic, il faut prévoir cet automatisme.
Cette fonction n'est pas la meilleure solution mais elle a cependant l'avantage de régler ce problème.

 

Function GetDateSQL () As Variant
On Error GoTo GetDate_Err
' La valeur du champ DUpdate est récupéré dans le formulaire ouvert

' Vous adapterez ce nom de champ à votre usage personnel.

    Ch_H = Mid(Me!DUpdate, 10, 2)   ' *** Prends l'heure dans la chaîne
    Ch_D = Right(Me!DUpdate, 6)     ' *** Prends les 6 derniers caractères
    Ch_M = Mid(Me!DUpdate, 4, 2)    ' *** Prends le mois dans la chaîne
    Ch_J = Left(Me!DUpdate, 2)      ' *** Prends le jour dans la chaîne
    If Ch_H > 12 Then
        Ch_H = Ch_H - 12
        ' *** Si l'heure est inférieure à 10 on met un zéro en début de chaîne
        If Len(Ch_H) = 1 Then Ch_H = "0" & Ch_H
        ' *** Sortie de la chaîne
        GetDateSQL = Ch_M & "/" & Ch_J & "/" & Mid(Me!DUpdate, 7, 3) & Ch_H & Ch_D & " PM"
        Exit Function
      Else
        GetDateSQL = Ch_M & "/" & Ch_J & "/" & Mid(Me!DUpdate, 7, 12) & " AM"
        Exit Function
    End If

GetDate_Exit:
    Exit Function
GetDate_Err:
    MsgBox Err & " Chaîne date SQL fausse.", 48, "Opération sur Date"
    Resume GetDate_Exit
End Function

Début de page

Les informations contenues dans ces pages sont données à titre purement amical et sans aucune garantie. L'auteur ne saurait être tenu pour responsable de toute utilisation qui pourrait en être faite.