IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

erreur de date dans requete SELECT vers zone de texte en DAO


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 166
    Points : 96
    Points
    96
    Par défaut erreur de date dans requete SELECT vers zone de texte en DAO
    Bonjour,
    J'ai l'erreur 3464 : Type de données incompatible dans l'expression du critère

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Set db = CurrentDb
    serie = Me.CSA.Value
    rdv = Me.LISTE_RDV.Column(0)
    SQL = "SELECT [T_DATE_ORIGINE].[Date_Reunion],[T_DATE_ORIGINE].[Type_Reunion], [T_DATE_ORIGINE].[Service] FROM [T_DATE_ORIGINE] WHERE [T_DATE_ORIGINE].[CSA] = '" & serie & "' AND [T_DATE_ORIGINE].[Date_Reunion] = '" & rdv & "' ;"
    Set rst = db.OpenRecordset(SQL, dbOpenSnapshot, dbReadOnly)
    Me.DATE.Value = rst("Date_Reunion")
    Me.Modifiable47.Value = rst("Type_Reunion")
    Me.CELLULE.Value = rst("Service")
    Je pense que mon erreur vient de la gestion de rdv qui est au format date...

    J'ai fait avec le debug, ? sql etc. je suis passé en enlevant les quotes, en mettant les # rien y fait.


  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    il faudrait essayer avec cette fonction à ajouter dans un module de code VBA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    'conversion des dates au format SQL pour requête
    Public Function DateToSQL(ByVal dDate As Date) As String
       DateToSQL = Format$(dDate, "\#m-d-yyyy\#")
    End Function
    Ensuite si vos variables sont au format texte ou variant et après avoir vérifié que les données d'origine sont bien des dates :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    serie = DateToSQL(Me.CSA.Value)
    rdv = DateToSQL(Me.LISTE_RDV.Column(0))
    puis écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SQL = "SELECT Date_Reunion,Type_Reunion, Service] FROM T_DATE_ORIGINE WHERE CSA = " & serie & " AND Date_Reunion = " & rdv
    Je suis un peu surpris de la ligne Me.DATE.Value = rst("Date_Reunion") puique l'on passe dans le where la date de cette réunion...

    @+

    Philippe

  3. #3
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut Philippe et forzaxelah,

    pour ce que tu veux obtenir tu pourrais éventuellement utiliser dlookup() (RechDom) ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =RechDom("Date_Reunion";"T_DATE_ORIGINE";"[CSA]=" & Format([CSA];"\#m/j/aa\#") & " AND [Date_Reunion]=" & Format([LISTE_RDV];"\#m/j/aa\#"))
    (avec les requery appropriés...)


  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    Salut diem,

    Comme la requête d'origine retourne plusieurs champs d'un enregistrement je suis resté sur DAO qui est plus performant dans ce cas que x fonctions de domaines. Ta solution a le mérite d'être plus simple à mettre en oeuvre.

    Bonnes fêtes mon ami

    Philippe

    Ps: Diem, je suis en train de préparer ton cadeau pour le nouvel an...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 166
    Points : 96
    Points
    96
    Par défaut
    C'est bon! Merci beaucoup!!!

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 166
    Points : 96
    Points
    96
    Par défaut
    Euh, finalement...

    J'ai bien fait comme tu as dit (module etc.)

    Voici un code d'ajout dans une table:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    Private Sub Commande180_Click()
    Dim QCDS, serie, ETAT, ETAPE, DECLENCHEUR, DESCRIPTION, PILOTE As String
    Dim rst As DAO.Recordset
    Dim db As DAO.Database
    Dim SQL, SQL1, SQL2 As String
    Dim date_decl, date_prev As Date
     
    'Set db = CurrentDb
     
    QCDS = Me.FicheQCDS.Value
    serie = Me.CSA.Value
    ETAT = Me.ETAT.Value
    ETAPE = Me.ETAPE.Value
    DECLENCHEUR = Me.DECLENCHEUR.Value
    date_decl = Me.DATE_DECLENCHEUR.Value
    DESCRIPTION = Me.DESCRIPTION.Value
    PILOTE = Me.PILOTE.Value
    date_prev = DateToSQL(Me.DELAI_INIT.Value)
     
     
    Set db = CurrentDb
    Set rst = db.OpenRecordset("T SUIVI ACTIONS", dbOpenTable)
    rst.AddNew
    rst.Fields("N°").Value = QCDS
    rst.Fields("CSA").Value = serie
    rst.Fields("ETAPE").Value = ETAPE
    rst.Fields("DECLENCHEUR").Value = DECLENCHEUR
    rst.Fields("DATE_DECLENCHEUR").Value = date_decl
    rst.Fields("ACTION").Value = DESCRIPTION
    rst.Fields("PILOTE").Value = PILOTE
    rst.Fields("DATE PREVUE").Value = date_prev
    rst.Fields("ETAT").Value = ETAT
    rst.Update
    J'ai l'erreur 13 , incompatibilité de type sur la ligne suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     date_prev = DateToSQL(Me.DELAI_INIT.Value)
    Par contre dans le module, peux tu expliquer pourquoi on ne met pas MM/DD/YYYY ?


    Si vous pouviez m'expliquer mes difficultés, sachant que dans mes tables, les champs de date sont spécifiés Date/Heure.??
    Ce que j'en comprends, c'est une incompatibilité entre notre système de date DD/MM/YYYY et celui de SQL qui est du type MM/DD/YYYY ???

    Merci pour l'aide!

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour,

    cette fonction DateToSQL() n'est utile que pour convertir une date vers le format US lorsqu'une date intervient dans une clause WHERE d'une requête construite en VBA.

    Dans le cas ici, il ne faut pas l'utiliser.

    @+

    philippe

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/02/2012, 15h49
  2. Probleme de date dans requete SQL vers base de donnée MS Access
    Par Uren dans le forum Persistance des données
    Réponses: 1
    Dernier message: 04/08/2008, 13h06
  3. formater un champ date dans un select
    Par sbeu dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 24/04/2006, 16h44
  4. Pb critère date dans requete
    Par STANDBOY dans le forum Access
    Réponses: 1
    Dernier message: 27/03/2006, 19h13
  5. [INSERTION DATE] dans requete d'insertion et mysql
    Par vincedjs dans le forum Requêtes
    Réponses: 9
    Dernier message: 03/02/2006, 17h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo