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

Access Discussion :

[VBA] [SQL] Type incompatible dans le critère


Sujet :

Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 175
    Par défaut [VBA] [SQL] Type incompatible dans le critère
    Bonjours à tous,
    Voilà je suis débutant en VBA et travail sur Access 2003. J'ai essayé d'appliqué le tuto de cafeine mais sans succès, je rencontre un problème lorsque je veux sélectionner un critère le msg d'erreur: [FONT=Verdana]Erreur d'exécution '3464' Type de données incompatible dans l'expression du critère[/FONT], apparaît
    Lorsque je clic sur débogage le code renvoyé est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.lblStats.Caption = DCount("*", "HELICOPTER", SQLWhere) & " / " & DCount("*", "HELICOPTER")

    De plus lorsque je double clic sur un enregistrement pour ouvrir le formulaire de saisie, le msg d'erreur: [FONT=Verdana]Erreur d'exécution '3075': Erreur de syntaxe (operateur absent) dans l'expression '[Aircraft_Register]=3a-MSY'.[/FONT]
    Et lorsque je clic sur débogage le code est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "helicopter", acNormal, , "[Aircraft_Register] = " & Me.lstResults

    Aircraft_Register correspond à ma clé primaire, elle est de type texte. (ex:
    3a-MSY)
    Pouvez-vous m'aider, merci d'avance

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 30
    Par défaut
    quelle est la valeur de "SQLWhere" ?


    essaie plutot:
    DoCmd.OpenForm "helicopter", acNormal, , "[Aircraft_Register] = '" & Me.lstResults & "'"
    ta clé étant en texte, il faut mettre le paramètre entre quote.


    Alain

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 175
    Par défaut
    Merci Alain,
    J'ai changé mon code et ça marche lorsque je clic sur un enregistrement.

    J'ai placé un Debug.Print SQLWhere et j'ai effectué une recherche par critère sur le type d'appareil (AS 332) le même message d'erreur apparaît type 3464.
    Dans ma fenêtre d'exécution est renvoyée la valeur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    HELICOPTER!Aircraft_Register <> 0 And HELICOPTER!Helicopter_Family = ''
    HELICOPTER!Aircraft_Register <> 0 And HELICOPTER!Helicopter_Family = 'AS 332'

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 175
    Par défaut
    Voilà où j'en suis pour l'instant dans mon code:

    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
     
    Private Sub RefreshQuery()
    Dim SQL As String
    Dim SQLWhere As String
    SQL = "SELECT Aircraft_Register,Helicopter_Model,SN,Registration_History,Flotation_Status,Helicopter_Family,Country_Helicopter,Last_Update_Date,Last_Update_Person FROM HELICOPTER WHERE Aircraft_Register Is Not Null;"
    If Not Me.chkAircraft_Register Then
        SQL = SQL & " And HELICOPTER!Aircraft_Register like '*" & Me.txtRechAircraft_Register & "*' "
    End If
    If Not Me.chkCountry_Helicopter Then
        SQL = SQL & " And HELICOPTER!Country_Helicopter = '" & Me.cmbRechCountry_Helicopter & "' "
    End If
    If Me.chkFlotation_Status Then
        SQL = SQL & " And HELICOPTER!Flotation_Status = '" & Me.cmbRechFlotation_Status & "' "
    End If
    If Me.chkSN Then
        SQL = SQL & " And HELICOPTER!SN like '*" & Me.txtRechSN & "*' "
    End If
    If Me.chkHelicopter_Family Then
        SQL = SQL & " And HELICOPTER!Helicopter_Family = '" & Me.cmbRechHelicopter_Family & "' "
    End If
    SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
    SQL = SQL & ";"
    Debug.Print SQLWhere
    Me.lblStats.Caption = DCount("*", "[HELICOPTER]", SQLWhere) & " / " & DCount("*", "[HELICOPTER]")
    Me.lstResults.RowSource = SQL
    Me.lstResults.Requery
    End Sub

  5. #5
    Membre confirmé Avatar de Rcanada
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 130
    Par défaut
    Un petit aperçu de mon formulaire pour que tu voye à koi correspond le code que je t'ai envoyé...
    Images attachées Images attachées  

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 175
    Par défaut
    Merci pour ton aide,
    le code est vraiment différent de celui du tuto de cafeine, mais le résultat est impressionnant

  7. #7
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 134
    Par défaut que faut il faire si clé est du texte
    Citation Envoyé par Alain LF Voir le message
    quelle est la valeur de "SQLWhere" ?


    essaie plutot:
    DoCmd.OpenForm "helicopter", acNormal, , "[Aircraft_Register] = '" & Me.lstResults & "'"
    ta clé étant en texte, il faut mettre le paramètre entre quote.


    Alain
    bonjour, j'ai le meme souci, que faut il faire exactement lorsque la clé primaire est de type texte ?
    jai pas trop compris les paramètre entre Quote????

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Type incompatible dans une requête
    Par tleboukaka dans le forum Bases de données
    Réponses: 1
    Dernier message: 15/10/2007, 11h59
  2. Réponses: 9
    Dernier message: 05/10/2006, 08h31
  3. requête SQL : Type incompatible
    Par Bertr@nd dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 20/06/2006, 11h44
  4. [VBA] [SQL] Type incompatible dans le critere
    Par mimi1 dans le forum VBA Access
    Réponses: 3
    Dernier message: 05/05/2006, 21h18
  5. [LG] Erreur de type incompatible dans assignment
    Par Tuxico dans le forum Langage
    Réponses: 4
    Dernier message: 03/12/2005, 21h06

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