1. #1
    Nouveau membre du Club
    Femme Profil pro
    Alternant
    Inscrit en
    octobre 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Alternant
    Secteur : Finance

    Informations forums :
    Inscription : octobre 2016
    Messages : 63
    Points : 34
    Points
    34

    Par défaut Erreur Requete SQL dans VBA

    Bonjour à tous,

    Je cherhe a compter les nombre d'enregistrement selon un critère. Mais j'ai un problème dans la ligne de mon code ci dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     str_SQL = "SELECT Count (*)  FROM bd WHERE  (((bd.[Retour Emetteur]) Like " * OK * "));"
    J'ai un message d'erreur type 13: Incompatibilité de type

    Pourtant je pense avoir bien référencé vba

    quelqu'un aurait une idée d'où peut venir le problème ?

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    novembre 2006
    Messages
    18 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : novembre 2006
    Messages : 18 383
    Points : 140 027
    Points
    140 027

    Par défaut

    Bonjour,

    Quel est le type de données que contient la colonne [Retour Emetteur] de ta table ?

    Ce n'est sans doute pas du texte !
    Si vos yeux piquent à cause des fautes d'orthographe, c'est un don que vous pouvez exploiter en cliquant ici.

    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Alternant
    Inscrit en
    octobre 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Alternant
    Secteur : Finance

    Informations forums :
    Inscription : octobre 2016
    Messages : 63
    Points : 34
    Points
    34

    Par défaut

    elles sont bien de type Texte

    Mais le colonne contient des phrases avec le signe: "/" . Du genre: KO/en attente

    Je doit changer le format de ma colonne? Ou bien l'écriture de ma requete SQL dans VBA?

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Developpeur VBA migrant tranquillement vers C# et VB.Net =]
    Inscrit en
    juillet 2007
    Messages
    12 319
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Developpeur VBA migrant tranquillement vers C# et VB.Net =]
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2007
    Messages : 12 319
    Points : 27 141
    Points
    27 141

    Par défaut

    Salut,

    pour le type texte, utilises des apostrophes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str_SQL = "SELECT Count (*)  FROM bd WHERE  (((bd.[Retour Emetteur]) Like '*OK*'));"
    Pas de question technique par MP, je ne réponds pas

    Apprendre à programmer avec Access 2016

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    novembre 2006
    Messages
    18 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : novembre 2006
    Messages : 18 383
    Points : 140 027
    Points
    140 027

    Par défaut

    Écris plutôt comme ceci (des espaces sont de trop et les quotes sont mal équilibrés !) :

    str_SQL = "SELECT bd.[Retour Emetteur] FROM bd WHERE (((bd.[Retour Emetteur]) Like '*OK*'));"
    Si vos yeux piquent à cause des fautes d'orthographe, c'est un don que vous pouvez exploiter en cliquant ici.

    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  6. #6
    Nouveau membre du Club
    Femme Profil pro
    Alternant
    Inscrit en
    octobre 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Alternant
    Secteur : Finance

    Informations forums :
    Inscription : octobre 2016
    Messages : 63
    Points : 34
    Points
    34

    Par défaut

    J'ai essayer vos deux réponses

    Mais j'ai un méssage d'erreur 3061: trop peu de paramètre. 1 attendu.

    :/ peut etre qu'il faut une paranthèse en plus

  7. #7
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    novembre 2006
    Messages
    18 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : novembre 2006
    Messages : 18 383
    Points : 140 027
    Points
    140 027

    Par défaut

    ... mais pourtant :

    Si vos yeux piquent à cause des fautes d'orthographe, c'est un don que vous pouvez exploiter en cliquant ici.

    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  8. #8
    Nouveau membre du Club
    Femme Profil pro
    Alternant
    Inscrit en
    octobre 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Alternant
    Secteur : Finance

    Informations forums :
    Inscription : octobre 2016
    Messages : 63
    Points : 34
    Points
    34

    Par défaut

    Oui chez moi aussi ça marche sur SQL. Mais sur VBA ca veut pas
    Je vais refaire le code peut etre que je fais une erreur sans m'en rendre compte

    Au passage voici Mon code complet:

    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
     
    Sub Nombre2()
     
    Dim oRst2 As DAO.Recordset
     
    Dim fld As DAO.Field
    Dim oRst3 As DAO.Recordset
     
    Set oDb = CurrentDb
     
    Set oRst2 = oDb.OpenRecordset("bd", dbOpenTable)
     
     
      str_SQL = "SELECT Count(*)FROM bd WHERE(((bd.[Retour_Emetteur])Like'*OK/Position Soldée*'));"
     
     
     
        int_Count = CurrentDb.OpenRecordset(str_SQL).Fields("Retour_Emetteur").Value
     
     
        Set oRst3 = oDb.OpenRecordset("Table1", dbOpenTable)
     
        oRst3.Edit
     
        oRst3.Fields("Nombre2").Value = int_Count  
     
        oRst3.Update
     
        oRst3.MoveNext
     
    End Sub
    Merci pour votre aide

  9. #9
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    novembre 2006
    Messages
    18 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : novembre 2006
    Messages : 18 383
    Points : 140 027
    Points
    140 027

    Par défaut

    Quel code compliqué !

    Si je comprends : tu veux inscrire dans Table1.Nombre2, le nombre d'occurrences de « OK/Position soldée » qui se trouvent dans la table bd.

    Une requête MàJ ferait l'affaire...


    SQL de la requête

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE Table1 SET Table1.Nombre2 = DCount("*","bd","[Retour Emetteur] like '*OK/Position Soldée*'");

    Et la sub :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Option Compare Database
    Option Explicit
     
     
    Public Sub Nombre2()
      DoCmd.SetWarnings False
      DoCmd.OpenQuery "rMaJTable1"
      DoCmd.SetWarnings True
    End Sub
    Si vos yeux piquent à cause des fautes d'orthographe, c'est un don que vous pouvez exploiter en cliquant ici.

    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  10. #10
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    novembre 2006
    Messages
    18 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : novembre 2006
    Messages : 18 383
    Points : 140 027
    Points
    140 027

    Par défaut

    Et si tu veux éviter d'enregistrer la requête, tu peux la créer à la volée :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Option Compare Database
    Option Explicit
     
     
     
    Public Sub Nombre2()
      DoCmd.SetWarnings False
      DoCmd.RunSQL "UPDATE Table1 SET Table1.Nombre2 = " _
                     & "DCount(""*"",""bd"",""[Retour Emetteur] like '*OK/Position Soldée*'"");"
      DoCmd.SetWarnings True
    End Sub
    Si vos yeux piquent à cause des fautes d'orthographe, c'est un don que vous pouvez exploiter en cliquant ici.

    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  11. #11
    Nouveau membre du Club
    Femme Profil pro
    Alternant
    Inscrit en
    octobre 2016
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 25
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Alternant
    Secteur : Finance

    Informations forums :
    Inscription : octobre 2016
    Messages : 63
    Points : 34
    Points
    34

    Par défaut

    Parfait ça marche très bien

    Merci de votre patience. Et de m'avoir fait découvrir cette requête

    Très bonne journée

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

Discussions similaires

  1. probleme requete SQL dans VBA
    Par sylvmand dans le forum VBA Access
    Réponses: 5
    Dernier message: 08/03/2012, 15h17
  2. [AC-2007] Agregation requete SQL dans VBA avec combobox
    Par kimai dans le forum VBA Access
    Réponses: 5
    Dernier message: 22/03/2011, 05h23
  3. erreur requete SQL dans une JSP
    Par shada dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 25/08/2008, 15h57
  4. erreur requete SQL dans un listBox
    Par Namson dans le forum VB.NET
    Réponses: 4
    Dernier message: 24/04/2008, 16h06
  5. compter avec une requete SQL dans VBA
    Par michael1971 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/01/2008, 10h20

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