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 :

ecriture de Recordset avec erreur


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 8
    Points : 5
    Points
    5
    Par défaut ecriture de Recordset avec erreur
    Bonsoir, j' ai un souci avec la déclaration d'un recordset qui me renvoie une erreur "Opérateur Absent".Ci-dessous la requête, pouvez-vous m'aider ? Merci.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim aDb As DAO.Database
    Dim aRst As DAO.Recordset
     
        Set aDb = CurrentDb
        Set aRst = aDb.OpenRecordset("SELECT COUNT (*) FROM PRODUIT WHERE PRODUIT.PRESTATION = " & [Forms]![AJOUT_ACTION]![PRESTATION])

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    ton champ Prestation est de quel type?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Points : 503
    Points
    503
    Par défaut
    Salut,

    pense aussi à ajouter après le "count(*)"
    soit, donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*) AS compteur FROM PRODUIT

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Prestation est de type Variant par défaut.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Quand je mets:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*) AS compteur FROM PRODUIT
    Cela ne change rien j'ai toujours le même message d'erreur à savoir :

    Erreur de syntaxe (Opérateur absent) dans l'expression 'PRODUIT.PRESTATION=AAA25B'

    Apparemment il manque un opérateur dans cette expression ...mais lequel ?
    Merci de votre aide.

  6. #6
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 131
    Points : 129
    Points
    129
    Par défaut
    Essaye çà pour voir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set aRst = aDb.OpenRecordset("SELECT COUNT (*) FROM PRODUIT WHERE PRODUIT.PRESTATION = """ & [Forms]![AJOUT_ACTION]![PRESTATION]) & """"

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par willcartley Voir le message
    Essaye çà pour voir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set aRst = aDb.OpenRecordset("SELECT COUNT (*) FROM PRODUIT WHERE PRODUIT.PRESTATION = """ & [Forms]![AJOUT_ACTION]![PRESTATION]) & """"
    Je mettrais des simple quotes (Enfin c'est à tester):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set aRst = aDb.OpenRecordset("SELECT COUNT (*) FROM PRODUIT WHERE PRODUIT.PRESTATION = "'" & [Forms]![AJOUT_ACTION]![PRESTATION]) & "'"

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Aucune des solutions proposées ne fonctionnent, me renvoi un message "incompatibilité de type" pour la solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set aRst = aDb.OpenRecordset("SELECT COUNT (*) FROM PRODUIT WHERE PRODUIT.PRESTATION = """ & [Forms]![AJOUT_ACTION]![PRESTATION]) & """"
    et erreur sur la syntaxe sur la dernière solution:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set aRst = aDb.OpenRecordset("SELECT COUNT (*) FROM PRODUIT WHERE PRODUIT.PRESTATION = "'" & [Forms]![AJOUT_ACTION]![PRESTATION]) & "'"

  9. #9
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par pphil972 Voir le message
    Aucune des solutions proposées ne fonctionnent, me renvoi un message "incompatibilité de type" pour la solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set aRst = aDb.OpenRecordset("SELECT COUNT (*) FROM PRODUIT WHERE PRODUIT.PRESTATION = """ & [Forms]![AJOUT_ACTION]![PRESTATION]) & """"
    et erreur sur la syntaxe sur la dernière solution:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set aRst = aDb.OpenRecordset("SELECT COUNT (*) FROM PRODUIT WHERE PRODUIT.PRESTATION = "'" & [Forms]![AJOUT_ACTION]![PRESTATION]) & "'"
    La parenthèse fermante était mal placée... désolé -> il faut la déplacer à la fin

    Set aRst = aDb.OpenRecordset("SELECT COUNT (*) FROM PRODUIT WHERE PRODUIT.PRESTATION = "'" & [Forms]![AJOUT_ACTION]![PRESTATION] & "'")

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    La dernière solution ne correspond pas non plus car la syntaxe est erronnée. Merci ....

  11. #11
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 131
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par pphil972 Voir le message
    Prestation est de type Variant par défaut.
    Tu peux mettre le type variant pour un champ d'une table Access?
    Si ce champ est numérique, essaye çà:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set aRst = aDb.OpenRecordset("SELECT COUNT (*) FROM PRODUIT WHERE PRODUIT.PRESTATION = " & [Forms]![AJOUT_ACTION]![PRESTATION] & ";")
    Si texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set aRst = aDb.OpenRecordset("SELECT COUNT (*) FROM PRODUIT WHERE PRODUIT.PRESTATION = """ & [Forms]![AJOUT_ACTION]![PRESTATION] & """;")
    Edit: Effectivement, attention aussi à la parenthèse...

Discussions similaires

  1. [ADOX]Source d'un recordset avec un catalogue
    Par jacma dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 09/10/2005, 12h25
  2. Manipulation de Recordset avec DAO
    Par Sinclar dans le forum VBA Access
    Réponses: 5
    Dernier message: 26/09/2005, 20h19
  3. RecordSet avec donnée variable
    Par Chris094 dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 31/08/2005, 11h03
  4. recordset et erreur 80040e10
    Par Mad666 dans le forum ASP
    Réponses: 3
    Dernier message: 28/04/2004, 14h26
  5. Modifier le nom d'une base de donnée avec erreur sy
    Par mmn dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/11/2003, 10h12

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