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 :

Créer une requete sous vba Access [AC-2003]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Avril 2007
    Messages
    1 245
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 245
    Par défaut Créer une requete sous vba Access
    Bonjour,

    J'essaie en vain de créer une requete sous vba access mais en vain .
    J'ai un message d'erreur 3141 "dans l instruction select, un mot reservé ou un argument est mal orthographié, ou absent, ou la ponctuation est incorrecte"

    Je vous joins ci dessous la requete

    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
    Private Sub trafic_matin()
     
        Liste_nbre_colis_triés_matin.Value = 0 'initialisation de la liste box trafic matin
     
        Dim rst1 As DAO.Recordset
        Dim str1 As String
       str1 = ""
     
    str1 = "SELECT Count(dbo_vwItemData.ItemID) AS [nbre net de colis traités], CVDate(Fix(([DischargeEventTime]-(5/24)))) AS jour"
     
    str1 = str1 & "FROM (dbo_vwItemData INNER JOIN dbo_vwParts ON dbo_vwItemData.DischargePartID = dbo_vwParts.ID) INNER JOIN [table_Affich-general] ON dbo_vwParts.DisplayName = [table_Affich-general].[Chute (format access)]"
     
    str1 = str1 & "WHERE ((([table_Affich-general].Type) <> RJT & ((dbo_vwItemData.DischargeEventTime) >= (CVDate(Fix(Now() - (5 / 24))) + (5 / 24)) And (dbo_vwItemData.DischargeEventTime) <= (CVDate(Fix(Now() - (5 / 24))) + ((25 / 2) / 24))))"
     
    str1 = str1 & "GROUP BY CVDate(Fix(([DischargeEventTime]-(5/24))))"
     
    str1 = str1 & "ORDER BY Count(dbo_vwItemData.ItemID) DESC;"
     
     
        Set rst1 = CurrentDb.OpenRecordset(str1, dbOpenDynaset)
        txt_trafic_matin.Value = rst1(0)
        rst1.Close
        Set rst1 = Nothing
     
    End Sub

  2. #2
    Membre Expert
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut
    Bonjour,

    Et en rajoutant un espace à la fin de chaque ligne de concaténation ?

  3. #3
    Membre éprouvé
    Inscrit en
    Avril 2007
    Messages
    1 245
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 245
    Par défaut
    cela ne change rien , j 'ai toujours l'erreur qui s'affiche

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2012
    Messages : 23
    Par défaut
    Bonjour,

    Vous avez essayé de mettre la totalité de la sélection en une ligne de commande?

    Ou déclarer 5 str différentes:

    str1 = SELECT ....
    str2 = str1 & FROM ... INNER JOIN... ON...
    str3 = str1 & str2 & ...

    Ainsi de suite, ça expliquerais l'erreur.

  5. #5
    Membre éprouvé
    Inscrit en
    Avril 2007
    Messages
    1 245
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 245
    Par défaut
    cela ne marche toujours pas.
    Il faut savoir j'ai cree cette requete en mode creation et je l ai affiche en mode sql.
    Je pensais ensuite qu il suffisait de recopier ce code sql et de le coller simplement dans le Private Sub().
    Mais non , je dois apparemment reprendre le code sql et l adapter en language vba.
    Et la je suis coince car je suis pas tres fort en VBA Access.
    Y aurait il quelqu un qui pouurait m aider a adapter cette requete sql en vba Access.
    Merci

  6. #6
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    13 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 13 152
    Billets dans le blog
    47
    Par défaut
    salut,

    ligne 13, à la fin de la clause WHERE, il manquerait pas une parenthèse fermante ?

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

Discussions similaires

  1. [AC-2003] Créer une requête sous vba access
    Par facteur dans le forum VBA Access
    Réponses: 1
    Dernier message: 15/01/2013, 12h03
  2. [AC-2007] Temps d'execution d'une requete sous VBA 4 minutes
    Par sihamelm dans le forum VBA Access
    Réponses: 6
    Dernier message: 24/11/2012, 00h04
  3. [AC-2003] Créer une Requête depuis VBA Access
    Par Goupo dans le forum VBA Access
    Réponses: 4
    Dernier message: 08/02/2011, 00h08
  4. Réponses: 7
    Dernier message: 26/04/2008, 10h48
  5. Comment effacer et créer une requete Access ??
    Par Mustard007 dans le forum Bases de données
    Réponses: 1
    Dernier message: 01/11/2005, 23h15

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