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

Requêtes et SQL. Discussion :

INSERT + SELECT TOP...argument incorrect


Sujet :

Requêtes et SQL.

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de samlepiratepaddy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 320
    Par défaut INSERT + SELECT TOP...argument incorrect
    Slt,
    Je crois que je ne suis pas bon en SQL brut dans le VBA.....
    En fait, je souhaite :
    Ajouter a la T_Affectation
    Les NumProspect de la T_Prospect
    dont le CodePostal est égal a celui de mon form
    Et ajouter aussi le TrigrammeTélépro et le trigrammeCommercial pour chaque IdProspect....
    Et j'ai fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ValiderAffectation_Click()
    DoCmd.RunSQL "INSERT INTO T_Affectation ( NumProspect, QuelTélépro, QuelCommercial )", "SELECT TOP 200 T_Prospect.N°Prospect, F_ChoixProspectPourAffectation.Télépro, F_ChoixProspectPourAffectation.Commercial FROM T_Prospect,WHERE (((T_Prospect.CodePostal)=[ComboCodePostal]));"
    End Sub
    Et bien vous savez quoi..... ça marche pas !!!
    Piste...Si la table a aujourd'hui n'a pas encore plus de 200 enregistrements est-ce que cela affecte le SELECT TOP 200 ????
    Sinon je vois pas ce qui cloche....
    Quelqu'un a une idée..
    Merci d'avance

  2. #2
    Expert éminent

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Par défaut
    Que viens faire la virgule avant le select ?

  3. #3
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 598
    Billets dans le blog
    67
    Par défaut
    1ère essai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub ValiderAffectation_Click() 
    Dim monSQL As String 
     
    DoCmd.RunSQL "INSERT INTO T_Affectation ( NumProspect, QuelTélépro, QuelCommercial ) SELECT TOP 200 T_Prospect.N°Prospect, F_ChoixProspectPourAffectation.Télépro, F_ChoixProspectPourAffectation.Commercial FROM T_Prospect,  F_ChoixProspectPourAffectation WHERE (T_Prospect.CodePostal=" & Me!ComboCodePostal & " );" 
     
    End Sub
    Qu'est-ce qui relie les tables T_Prospect et F_ChoixProspectPourAffectation

    si c'est NumProspect alors il faut ajouter à ta clause where:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    And (T_Prospect.NumProspect = F_ChoixProspectPourAffectation.NumProspect)
    @+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  4. #4
    Membre éclairé Avatar de samlepiratepaddy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 320
    Par défaut
    Merci de vos réponses et j'ai rectifié avec ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ValiderAffectation_Click()
    DoCmd.RunSQL "INSERT INTO T_Affectation ( NumProspect, QuelTélépro, QuelCommercial ) SELECT TOP 200 T_Prospect.N°Prospect, F_ChoixProspectPourAffectation.Télépro, F_ChoixProspectPourAffectation.Commercial FROM T_Prospect,WHERE (((T_Prospect.CodePostal)=" & Me.ComboCodePostal & "));"
    End Sub
    Mais ça coince au FROM (Erreur de syntaxe dans la clause FROM)
    Pourtant c'est toujours écrit comme ça dans les requetes de l'interface (mode SQL)????
    Quand à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE (((T_Prospect.CodePostal)=" & Me.ComboCodePostal & "))
    il est vrai qu'il faut la valeur COMBO et non le Texte !!!enfin je crois !!
    Heu désolé pour ces erreurs , mais ce n'est que la deuxième SQL que j'ecris en dur dans VBA, avant je passais toujours par l'interface Access...
    Alors j'ai beaucoup, beaucoup, beaucoup de mal....
    Ps: ce Form n'a pas de source, il ne sert que de "préselection" pour choisir et limiter le Nbr de prospect a affecter !

  5. #5
    Expert éminent

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Par défaut
    Et bien, passe par l'interface Access dans un premier temps et ensuite seulement fais un copier coller en VBA quand ça fonctionne

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 598
    Billets dans le blog
    67
    Par défaut
    Oui c'est ca teste ta requête avec l'interface ça ira plus vite:

    et la ton erreur vient de :

    la virgule, comme je t'ai dit en haut il faut mettre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FROM T_Prospect,  F_ChoixProspectPourAffectation WHERE
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  7. #7
    Membre éclairé Avatar de samlepiratepaddy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 320
    Par défaut
    Je sais bien Tofalu
    Mais voila ce que me sort l'interface :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "INSERT INTO T_Affectation ( NumProspect, QuelTélépro, QuelCommercial )SELECT TOP 200 T_Prospect.N°Prospect, [Formulaires]![F_ChoixProspectPourAffectation]![Télépro] AS Expr1, [Formulaires]![F_ChoixProspectPourAffectation]![Commercial] AS Expr2 FROM T_Prospect, WHERE (((T_Prospect.CodePostal)=[ComboCodePostal]));"
    Et je pense que ça va coincer au
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE (((T_Prospect.CodePostal)=[ComboCodePostal]));"
    a cause de la valeur et tel quel, J'ai le m^me problème
    (Erreur de syntaxe dans la clause FROM)
    Alors c'est la raison du post !!!
    Sinon je bidouille je cherche et très souvent je trouve mais là????
    Et malgré de vains essais différents, toujours ce même msg...
    ça me gave grave !!!
    Psour UserJ'ai essayé aussi, mais il me réclame le
    F_ChoixProspectPourAffectation
    comme une source ???
    Hors que ce formulaire n'a PAS de source !
    Le dernier code essayé et le plus cohérent je pense est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "INSERT INTO T_Affectation ( NumProspect, QuelTélépro, QuelCommercial ) SELECT TOP 200 T_Prospect.N°Prospect, F_ChoixProspectPourAffectation.Télépro, F_ChoixProspectPourAffectation.Commercial FROM T_Prospect, WHERE (((T_Prospect.CodePostal)=" & Me.ComboCodePostal & "));"
    Mais le bug est au FORM !
    Alors je sèche

  8. #8
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 598
    Billets dans le blog
    67
    Par défaut
    OK

    donc si j'ai compris F_ChoixProspectPourAffectation
    est un formulaire ?

    @+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  9. #9
    Membre éclairé Avatar de samlepiratepaddy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 320
    Par défaut
    Si tu veux, moi j'essai de faire simple pour m'y retrouver !!
    A force de voir les autres faire, je fais comme eux
    F_blabla (Formulaire)
    T_blibli (Table)
    R_bloblo (Requete)
    Etc...
    Alors peut-etre vois-tu mieux mon problème...
    Merci de ta patience, en tout cas...

  10. #10
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 598
    Billets dans le blog
    67
    Par défaut
    Dans ce cas ton sql est complètement faut désolé

    les références [Formulaires]![F_ChoixProspectPourAffectation]![Télépro] ..
    n'ont rien à faire dans un select !

    tu peux me donner la table source de ton formulaire F_ChoixProspectPourAffectation et les champs de cette table ?

    @+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  11. #11
    Membre éclairé Avatar de samlepiratepaddy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 320
    Par défaut
    Ben comme déja dis au-dessus ce form n'a pas de source
    Il ne me sert qu'avec quelques Txtbox indépendant a trier, filtré avec des listes, les prospects sur lequels je dois faire une affectation a des opérateurs, simplement pour avoir un "Visuel" plus propre qu'une requte en dur !, d'ou la requete Insert !
    Je veux bien lui en donner une affectation, mais je ne vois pas Pourquoi puisqu'aucun champ de cette source ne sera dans le formulaire !
    Quand a
    les références [Formulaires]![F_ChoixProspectPourAffectation]![Télépro] ..
    n'ont rien à faire dans un select !
    C'etait simplement l'interface de la requete en SQL !
    Qui d'ailleurs, quand je note le code postal fonctionne parfaitement mais je souhaite automatiser tout ça !
    Voila ce que j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "INSERT INTO T_Affectation ( NumProspect, QuelTélépro, QuelCommercial ) SELECT TOP 200 T_Prospect.N°Prospect, F_ChoixProspectPourAffectation.Télépro, F_ChoixProspectPourAffectation.Commercial FROM T_Prospect, WHERE (((T_Prospect.CodePostal)=" & Me.ComboCodePostal & "));"
    Mais toujours le bug sur FROM...
    Si t'y comprend quelque chose je suis preneur !

  12. #12
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 598
    Billets dans le blog
    67
    Par défaut
    On apprend des choses:

    alors vire ta virgule avant le where (3ème fois)
    et mets des forms devant le formulaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "INSERT INTO T_Affectation ( NumProspect, QuelTélépro, QuelCommercial ) SELECT TOP 200 T_Prospect.N°Prospect, Forms!F_ChoixProspectPourAffectation!Télépro, Forms!F_ChoixProspectPourAffectation!Commercial FROM T_Prospect WHERE (((T_Prospect.CodePostal)=" & Me.ComboCodePostal & "));"
    @+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  13. #13
    Membre éclairé Avatar de samlepiratepaddy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 320
    Par défaut
    Quel c.. je fais !
    Bien sur!
    J'ai enlevé celle avant SELECT mais pas celle là !
    Enfin ça marche !!!!
    Je vais rebidouiller tout ça car y'a un critère que j'ai oublié mais c'est facile, au lieu d'aller prendre dans la T_Prospect se sera dans une requete !
    Et pour finir, à la fin, j'ai du mettre [ComboCodePostal] au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...)=" & Me.ComboCodePostal & "));"
    car Combo.. est une liste déroulante et se doit etre du "texte" et nom un format numérique mais ça marche !
    Merci encore !!!!!

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

Discussions similaires

  1. [INSERT][SELECT] insert avec un select imbriqué
    Par narmataru dans le forum SQL
    Réponses: 11
    Dernier message: 06/03/2013, 03h04
  2. select top @maVar * from
    Par sacrejohn dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/10/2005, 16h39
  3. [insert][select] Subqueries not allowed
    Par Invité dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/09/2005, 11h56
  4. Problème avec select top
    Par franculo_caoulene dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 10/12/2004, 14h55
  5. insert-select sur 2 base différente
    Par gskoala dans le forum Paradox
    Réponses: 2
    Dernier message: 16/11/2004, 15h11

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