Empêcher conversion automatique des dates [Résolu]

RuBarabaDom 2 Messages postés jeudi 18 mars 2004Date d'inscription 20 juin 2007 Dernière intervention - 20 juin 2007 à 11:30 - Dernière réponse : RuBarabaDom 2 Messages postés jeudi 18 mars 2004Date d'inscription 20 juin 2007 Dernière intervention
- 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
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 20 juin 2007 à 11:37
3
Merci
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

Merci Renfield 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 120 internautes ce mois-ci

Commenter la réponse de Renfield
RuBarabaDom 2 Messages postés jeudi 18 mars 2004Date d'inscription 20 juin 2007 Dernière intervention - 20 juin 2007 à 13:12
0
Merci
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
Commenter la réponse de RuBarabaDom

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.