RuBarabaDom
Messages postés2Date d'inscriptionjeudi 18 mars 2004StatutMembreDernière intervention20 juin 2007
-
20 juin 2007 à 11:30
RuBarabaDom
Messages postés2Date d'inscriptionjeudi 18 mars 2004StatutMembreDernière intervention20 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:
Échec de la conversion de la date et/ou de l'heure à partir d'une chaîne de caractères
RuBarabaDom
Messages postés2Date d'inscriptionjeudi 18 mars 2004StatutMembreDernière intervention20 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.
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.