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

VBA Access Discussion :

Type de donnée incompatible dans l'expression du critére


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 64
    Points : 31
    Points
    31
    Par défaut Type de donnée incompatible dans l'expression du critére
    Bonjour a tous,
    Mon problème est le suivant, je cherche a afficher différents enregistrement se trouvant dans ma base de donnée en fonction de la date.
    Un champ permet a l'utilisateur d'entrée une date et cela va lui permettre d'afficher tous les enregistrements avec cet même date.


    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
     
    Dim db As DAO.Database
        Set db = DBEngine.OpenDatabase("C:\Documents and Settings\Pierre Wandel\Bureau\Stage pompier\LPFF.mdb")
     
     
        Dim rst As DAO.Recordset
        Dim SQL As String
        SQL = "SELECT * From Groupe Where Date_MEP = '" & Date_generique.Value & "';"
        Set rst = db.OpenRecordset(SQL, dbOpenForwardOnly, dbReadOnly)
     
     
        rst.MoveFirst
        Dim nbGroupe As Integer
        nbGroupe = 0
        While Not rst.EOF
        nbGroupe = nbGroupe + 1
        If nbGroupe = 1 Then
     
     
        Dim ID_resultat As Variant
        ID_resultat = DLookup("Groupe.[ID]", "Groupe", "[ID] = " & Forms!Groupe_Actuel!ID)
        'MsgBox ID_resultat
     
     
        Dim Nummat_resultat As Variant
        Nummat_resultat = DLookup("Commande.[Num_matricule]", "Commande", "Commande.[ID]=" & Forms!Groupe_Actuel!ID)
        'MsgBox Nummat_resultat
     
     
        Dim Nom_resultat As Variant
        Nom_resultat = DLookup("Chefs.[Nom_chef]", "Chefs", "Chefs.[Num_matricule]= " & Nummat_resultat)
        'MsgBox Nom_resultat
     
     
        Dim id_lieu_strat_resultat As Variant
        id_lieu_strat_resultat = DLookup("Esta.[id_LS]", "EstA", "Esta.[ID]=" & Forms!Groupe_Actuel!ID)
        'MsgBox id_lieu_strat_resultat
     
     
        Dim lieu_strat_resultat As Variant
        lieu_strat_resultat = DLookup("Lieux_strat.[Nom_lieux_Strat]", "Lieux_strat", "Lieux_strat.[id_LS]= " & id_lieu_strat_resultat)
        'MsgBox lieu_strat_resultat
     
     
     
        Nom_chef.Value = Nom_resultat
        Nom_Lieux_Strat.Value = lieu_strat_resultat
        Vehicule_tete.Value = resultat_vehicule & " " & resultat_vehicule2 & " " & resultat_vehicule3
     
     
        Dim SQL2 As String
        SQL2 = "SELECT EstDansGroupe.[Type], EstDansGroupe.[NSI] From EstDansGroupe Where EstDansGroupe.[ID] =" & Forms!Groupe_Actuel!ID
        Set rst = db.OpenRecordset(SQL2, dbOpenForwardOnly, dbReadOnly)
     
     
        Dim nbCCF As Integer
        Dim Trig As Variant
        nbCCF = 0
        '.MoveFirst
        While Not rst.EOF
            ' code
            Trig = DLookup("Appartient.[Trigramme]", "Appartient", "Appartient.[Type]='" & Trim(rst(0)) & "' AND Appartient.[NSI]=" & rst(1))
            If Trim(rst(0)) = "VLTT" Then
                Vehicule_tete.Value = rst(0) & " " & rst(1) & " " & Trig
            Else
                nbCCF = nbCCF + 1
                If nbCCF = 1 Then
                    Vehicule_1.Value = rst(0) & " " & rst(1) & " " & Trig
                End If
                If nbCCF = 2 Then
                    Vehicule_2.Value = rst(0) & " " & rst(1) & " " & Trig
                End If
                If nbCCF = 3 Then
                    Vehicule_3.Value = rst(0) & " " & rst(1) & " " & Trig
                End If
                If nbCCF = 4 Then
                    Vehicule_4.Value = rst(0) & " " & rst(1) & " " & Trig
                End If
            End If
        Wend
     
        End If
     
        Wend
        rst.Close
     
        db.Close
    Le probléme c'est que l'erreur type de donnée incompatible dans l'expression du critére apparait et que je ne voi pas du tout ou est l'erreur.
    Je pense qu'elle se trouve dans les 6 premieres lignes.
    Si vous pouvez m'aider à trouver l'erreur ca serai sympa !

    Merci d'avance...

  2. #2
    lvr
    lvr est déconnecté
    Membre extrêmement actif Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    910
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 910
    Points : 1 363
    Points
    1 363
    Par défaut
    Voilà comment j'ai fait dans une de mes bases:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim v As String, d As Date
    d = CDate(v)
    v = CStr(CDate(Format(d, "dd/mm/yy")))
     
    Me.Filter = Me.Filter + " And date_doc>=#" + v + "#"
    Je dirais que la première chose à faire est de t'assurer que la date est dans un format que Access va comprendre:
    Ce que je fais souvent, c'est faire une double conversion voire triple ( je ne suis plus très sur de pourquoi cette triple conversion ici)

    La deuxième chose (et plus importante) est d'utiliser des "#" pour entourer ta date au lieu des tes "'". N'oublie pas: on est dans du microsoft et pas sous Oracle !

    Laurent

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 64
    Points : 31
    Points
    31
    Par défaut
    L'erreur provient de la requete et du set rst mais je ne comprend toujours pas pourquoi !!!!

    Ok le soucis c'est que je ne vois pas du tout ou je dois mettre ton code pour que cela fonctionne !!!

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Dans ta chaine SQL, remplace les ' par des # pour voir.

    Starec

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 64
    Points : 31
    Points
    31
    Par défaut
    Ca plante quand je les remplace !!!

  6. #6
    Invité
    Invité(e)
    Par défaut
    Re

    A quel format est le champ "Date_MEP"

    Starec

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 64
    Points : 31
    Points
    31
    Par défaut
    au format DATE/HEURE

  8. #8
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Points : 9 860
    Points
    9 860
    Par défaut
    Bonjour,

    le problème c'est que dans la première version, il avait mis des '..' pour rentrer les dates dans les tables...
    Donc il entrait des chaîne de caractère et non des dates.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  9. #9
    lvr
    lvr est déconnecté
    Membre extrêmement actif Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    910
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 910
    Points : 1 363
    Points
    1 363
    Par défaut
    Est-ce que tu as repris le code tel que je l'avais marqué ?

Discussions similaires

  1. Type des données incompatibles dans l'expression du critère
    Par niclalex dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 01/12/2007, 05h35
  2. Requête: type de donnée incompatible dans l'expression du critère
    Par abambad dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 31/10/2007, 15h48
  3. Réponses: 5
    Dernier message: 31/08/2007, 13h01
  4. Réponses: 7
    Dernier message: 22/08/2006, 17h10
  5. Réponses: 3
    Dernier message: 22/05/2006, 19h23

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