Empêcher conversion automatique des dates

Résolu
RuBarabaDom Messages postés 2 Date d'inscription jeudi 18 mars 2004 Statut Membre Dernière intervention 20 juin 2007 - 20 juin 2007 à 11:30
RuBarabaDom Messages postés 2 Date d'inscription jeudi 18 mars 2004 Statut Membre Dernière intervention 20 juin 2007 - 20 juin 2007 à 13:12
Bonjour à vous,

Comme le titre l'indique, j'ai un soucis avec les conversions de date d'Access.


Requête SQL : SELECT idErreur FROM ErreurRun WHERE DateErreur=#03/05/2007 15:07:48# AND Instrument = "I14"
Résultats : Aucun alors qu'il devrait me sortir une ligne.
Je passe dans création de requête, et la date est passée a #05/03/2007 15:07:48#
Si je switch de nouveau vers le SQL, ma requête n'a pas changé. Si, dans la création, je modifie et mets #03/05/2007 15:07:48# et que je rebascule sur SQL, j'obtiens SELECT ErreurRun.IdErreur FROM ErreurRun WHERE (((ErreurRun.DateErreur)=#5/3/2007 15:7:48#) AND ((ErreurRun.Instrument)="I14"));
Mise à part la modif automatique de mise en forme de la requête par Access qui ne gêne en rien, on remarquera que la date a été également modifiée.
Bien sûr, il n'y a pas de problème si j'avais 21/05/2007, Access ne pouvant le convertir.
Dans mes paramètres régionaux, je suis en français, Access est en français, alors je ne vois pas pourquoi il essaie de me faire une conversion américaine !
Ainsi, j'ai le problème dans mon code, quand je lui envoie ma première requête, attendant comme retour un Id et qu'il ne trouve rien.
Un deuxième problème s'y ajoute quand Access m'enregistre une date en la modifiant (l'utilisateur entre 03/05/2007 dans un formulaire et c'est 05/03/2007 qui est enregistré).
J'ai vu sur un autre forum en ASP qu'une solution consistait à obliger de passer par des paramètres régionaux choisi avec "Session.Lcid"
mais je n'ai pas trouvé l'équivalent sur VBA et même dans ce cas, je ne sais pas si je résoudrai tous mes problèmes.

Merci d'avance.

Ru Baraba Dom
A voir également:

2 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
20 juin 2007 à 11:37
toujours vu qu'il fallait mettre    #MM/DD/YYY#

evite QBE ^^ fais que du SQL hardore, plus de soucis ainsi :p

Renfield
Admin CodeS-SourceS- MVP Visual Basic
3
RuBarabaDom Messages postés 2 Date d'inscription jeudi 18 mars 2004 Statut Membre Dernière intervention 20 juin 2007
20 juin 2007 à 13:12
Comme je fais de l'import de fichiers Excel préformatés, je ne voulais pas m'amuser à faire de la conversion, mais si je dois en passer par là, ce ne sera pas trop compliqué.
Comme dans mes tables, j'étais en affiche "date,général" affichage à la française, j'ai trouvé ça un peu louche.
Donc, dans mon code, je récupère la date dans la table, je fais ensuite une recherche avec, et pop, ça ne marche pas, la date étant déjà convertie.

[...]
iDate = Requête.ReturnValue("DateValidation", "Test", "idTest", tc)If Requête.ReturnValue("idErreur", "ErreurRun", "DateErreur", "#" & iDate & "# AND Instrument " & """" & iInstr & """") 0 Then
[...]

Public Function ReturnValue(select_field, Table, search_field, Value As Variant) As Variant
Dim FieldValue As Variant
Dim Strsql As String
Dim dbCur As Database
Dim vue As Recordset
   
Set dbCur = CurrentDb
Strsql = "SELECT " & select_field & " FROM " _
    & Table & " WHERE " & search_field & "=" & Value


Debug.Print Strsql
Set vue = dbCur.OpenRecordset(Strsql)
If Not vue.EOF Then
    FieldValue = vue(select_field)
    If FieldValue <> "" Then
        ReturnValue = FieldValue
    End If
End If
vue.Close
Set vue = Nothing
Set dbCur = Nothing
End Function

Par contre, ça fonctionne avec la conversion :If Requête.ReturnValue("idErreur", "ErreurRun", "DateErreur", "#" & Format(iDate, "MM/DD/YYYY hh:mm:ss") & "# AND Instrument " & """" & iInstr & """") 0 Then

Je trouve ça assez surprenant comme comportement, mais bon.

Ru Baraba Dom
0
Rejoignez-nous