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 :

Multiplier les And dans Sql Insert Into


Sujet :

Requêtes et SQL.

  1. #1
    Membre actif 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
    Points : 217
    Points
    217
    Par défaut Multiplier les And dans Sql Insert Into
    Slt,

    J'aimerai faire un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO Table1 ( IdSalarié, JourDeTravail, MatinAprèsMidiSoir, TrancheHoraire )
    SELECT 5 AS Expr1, "Lundi" AS Expr2, "Matin" AS Expr3, "08:30:00" AS Expr4;
    Mais auquel je puisse rajouter à la fin un "And" pour faire du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO Table1 ( IdSalarié, JourDeTravail, MatinAprèsMidiSoir, TrancheHoraire )
    SELECT 5 AS Expr1, "Lundi" AS Expr2, "Matin" AS Expr3, "08:30:00" AS Expr4 and Table1 ( IdSalarié, JourDeTravail, MatinAprèsMidiSoir, TrancheHoraire )
    SELECT 5 AS Expr1, "Lundi" AS Expr2, "Matin" AS Expr3, "09:00:00" AS Expr4;
    Etc... Afin de pouvoir lancer une seule et même requeteAjout avec les critères d'heures qui change !
    Mais je n'arrive pas a faire comprendre ça avec l'interface de requete Accèss !
    Enfin cette Requete ira en Vba après, et encoder du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunRql INSERT INTO Table1 (IdSalarié,Jour...,Matin...,Tranche...) Forms!FormulaireTruc!IdSalarié, Forms!FormulaireTruc!Jour...,Etc..., #08:00:00#;
    Et comment faire pour sur cette requete rajouter
    #08:30:00#, #09:00:00#, #09:30:00#,etc...
    de façon a repeter IdSalarié, Jour, Matin, mais que l'heure qui change !!
    Est-ce possible???
    Merci d'avance...
    La connaissance ne vaut que si elle est partagée par tous et pour tous!
    Access et moi c'est mais en fait on s' bien !
    Ps: Je comprend très vite quand on m'explique longtemps !!

  2. #2
    Membre actif
    Avatar de Trini
    Homme Profil pro
    Dresseur de puce
    Inscrit en
    Juillet 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dresseur de puce

    Informations forums :
    Inscription : Juillet 2005
    Messages : 189
    Points : 264
    Points
    264
    Par défaut
    Salut Sam,

    Pourquoi tu veux pas faire plusieurs requetes qui s'éxécutent à la suite, en ligne de code, ça ne pose aucun problème en VBA ?

    @+

  3. #3
    Membre actif 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
    Points : 217
    Points
    217
    Par défaut
    Slt Trini
    J'y ai pensé mais je me suis dis :
    Si c'est possible en une seule pourquoi en faire Wat's milles!!!
    C'est tout !!
    Ce n'est qu'une redonnance !
    Même Id
    Même Jour
    Même Matin
    Pour une série d'heures!!
    Mais si c'est pas possible tanpis !
    j'les ferai toutes !
    La connaissance ne vaut que si elle est partagée par tous et pour tous!
    Access et moi c'est mais en fait on s' bien !
    Ps: Je comprend très vite quand on m'explique longtemps !!

  4. #4
    Membre averti

    Profil pro
    Inscrit en
    Mai 2004
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 236
    Points : 310
    Points
    310
    Par défaut
    Il suffit de faire un boucle qui liste ta série d'heure et au final ça ne fait qu'une requête.

  5. #5
    Membre actif 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
    Points : 217
    Points
    217
    Par défaut
    Heu excuse fdarven
    Mais faire une boucle??? moi qui suis nul je ne sais pas faire ça??!!
    C'est faire une requete qui retrace ma série d'heure et rajouter le résultat de cette requete a la place de mon #08:00:00# actuel ??
    Du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunRql INSERT INTO Table1 (IdSalarié,Jour...,Matin...,Tranche...)  Forms!FormulaireTruc!IdSalarié, Forms!FormulaireTruc!Jour...,Etc..., Select R_TrancheHoraire.Horaire ;
    C'est ça?
    La connaissance ne vaut que si elle est partagée par tous et pour tous!
    Access et moi c'est mais en fait on s' bien !
    Ps: Je comprend très vite quand on m'explique longtemps !!

  6. #6
    Membre averti

    Profil pro
    Inscrit en
    Mai 2004
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 236
    Points : 310
    Points
    310
    Par défaut
    Tu dis que tu as une série d'heures, donc il suffit de stocker cette série d'heures quelque part table, tableau ... et ensuite de boucler sur cette liste et d'exécuter ta requête d'insert à chaque passage de ta boucle.

  7. #7
    Membre actif
    Avatar de Trini
    Homme Profil pro
    Dresseur de puce
    Inscrit en
    Juillet 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dresseur de puce

    Informations forums :
    Inscription : Juillet 2005
    Messages : 189
    Points : 264
    Points
    264
    Par défaut
    Re,

    Bon allez , soit, un petit exemple :
    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
     
     
    Sub MAJ_Table1
     
    Dim tHeure(3)   ' 3 heures différentes
    Dim I as Byte
     
      ' Les 3 heures....
    tHeure(1)="08:30:00"
    tHeure(2)="09:30:00"
    tHeure(3)="10:30:00"
     
     
    For I = 1 to 3
     
      DoCmd.RunRql "INSERT INTO Table1 ( IdSalarié, JourDeTravail,      MatinAprèsMidiSoir, TrancheHoraire ) SELECT 5 AS Expr1, 'Lundi' AS Expr2, 'Matin' AS Expr3, tHeure(I) AS Expr4;"
     
    Next
    @+

  8. #8
    Membre actif
    Avatar de Trini
    Homme Profil pro
    Dresseur de puce
    Inscrit en
    Juillet 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dresseur de puce

    Informations forums :
    Inscription : Juillet 2005
    Messages : 189
    Points : 264
    Points
    264
    Par défaut
    Re,

    J'ai fait une petite bourre sur tHeure dans le SQL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      DoCmd.RunSql "INSERT INTO Table1 ( IdSalarié, JourDeTravail,      MatinAprèsMidiSoir, TrancheHoraire ) SELECT 5 AS Expr1, 'Lundi' AS Expr2, 'Matin' AS Expr3, " &  tHeure(I) & " AS Expr4;"
    C'est ça de faire plusieurs trucs en même temps ....

    @+

  9. #9
    Membre actif 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
    Points : 217
    Points
    217
    Par défaut
    Re,
    Bon étant donné qu'il ya une valeur répétitive dans ce truc et qui va l'etre de façon récurrente j'ai cru bon de créer une table (T_Horaire) qui retrace chaque jour de la semaine et l'ensemble des horaires pour chaque jour !
    Ce qui donne en gros:
    Jour;Horaire
    Lundi;08:00:00
    Lundi;08:30:00
    Etc..
    Mardi;08:00:00
    Mardi;08:30:00
    Etc..
    Mercredi;08:00:00
    Mercredi;08:30:00
    ETc...
    Etc...
    Ensuite pour chaque nouveau commercial, je voudrai simplement ajouter a une table que j'ai Appelé T_SalariéTrancheHeure tous les enregistrements de la table T_Horaire a la table T_SalariéTrancheHeure
    Comme ça j'ai pour chaque Salarié l'ensemble des tranches !
    J'ai écris ceci en code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "INSERT INTO T_SalariéTrancheHeure (JourTravaillé,TrancheHeureTravaillé,IdSalarié)Select T_Horaire.Jour,T_Horaire.Horaire,Forms!F_Fonction!NumSalarié From T_Horaire;"
    Mais il ne trouve pas le
    Forms!F_Fonction.NumSalarié
    Est-ce que cela vient du fait que F_Fonction est un sous form !!??
    Pourtant il est bien intitulé comme ça dans le form principal???
    La connaissance ne vaut que si elle est partagée par tous et pour tous!
    Access et moi c'est mais en fait on s' bien !
    Ps: Je comprend très vite quand on m'explique longtemps !!

  10. #10
    Membre actif
    Avatar de Trini
    Homme Profil pro
    Dresseur de puce
    Inscrit en
    Juillet 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dresseur de puce

    Informations forums :
    Inscription : Juillet 2005
    Messages : 189
    Points : 264
    Points
    264
    Par défaut
    Re,

    Ecrit déjà plutôt cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DoCmd.RunSQL "INSERT INTO T_SalariéTrancheHeure (JourTravaillé,TrancheHeureTravaillé,IdSalarié)Select T_Horaire.Jour,T_Horaire.Horaire, " & Forms!F_Fonction!NumSalarié & " From T_Horaire;"
    Mais si le DoCmd se trouve dans le formulaire principal et que NumSalarié est dans un sous-formulaire, là c'est plus bon !
    - Peut-tu m'indiquer le nom du controle contenant le sous-formulaire (pas le nom du sous-formualire) ?
    - NumSalarie est-il bien dans le sous formulaire ?
    - Le DoCmd est éxécuté dans le Formulaire principal ou dans le SousFrm ?

    A de suite,

  11. #11
    Membre actif 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
    Points : 217
    Points
    217
    Par défaut
    Bien
    Peut-tu m'indiquer le nom du controle contenant le sous-formulaire (pas le nom du sous-formualire) ?
    F_Fonction verification faite avec l'ordre de tabulation !
    - NumSalarie est-il bien dans le sous formulaire ?
    OUI
    Le DoCmd est éxécuté dans le Formulaire principal ou dans le SousFrm ?
    Dans le sous formulaire car je dois aussi désactivité le bonton si la liste déroulante "Service" n'a pas la valeur "Commercial" et cette liste est dans le sous form !
    Et j'ai suivi un autre post auquel tu répond la soluce suivante
    Private Sub Form_Error(DataErr As Integer, Response As Integer)

    if DataErr = <code de l'erreur> then Response=AcDataErrContinue

    End Sub
    Pour enlever le code d'erreur suite a l'ajout sur des enregsitrements en doublons !!
    Moi ma table T_SalariéTrancheHeure comporte trois champs:
    IdSalarié
    JourTravaillé
    TrancheHoraireTravaillé

    Les trois en clef primaire ! Et rien d'autre ! Ce code pourrai etre utile non? qu'en pense tu???
    Il est possible d'en faire une adaptation sur le DoCmd. ci dessus??
    La connaissance ne vaut que si elle est partagée par tous et pour tous!
    Access et moi c'est mais en fait on s' bien !
    Ps: Je comprend très vite quand on m'explique longtemps !!

  12. #12
    Membre actif
    Avatar de Trini
    Homme Profil pro
    Dresseur de puce
    Inscrit en
    Juillet 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dresseur de puce

    Informations forums :
    Inscription : Juillet 2005
    Messages : 189
    Points : 264
    Points
    264
    Par défaut
    Re,

    Pour la gestion d'erreur en cas de doublons, ça doit marcher aussi pour ton cas.

    Aloooors pour ce qui est du champ dans le sous-formulaire
    Cela devrait suffir !

    Salut,

  13. #13
    Membre actif 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
    Points : 217
    Points
    217
    Par défaut
    ben
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "INSERT INTO T_SalariéTrancheHeure (JourTravaillé,TrancheHeureTravaillé,IdSalarié)Select T_Horaire.Jour,T_Horaire.Horaire, Me.NumSalarié From T_Horaire ;"
    Toujours la demande de critère ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "INSERT INTO T_SalariéTrancheHeure (JourTravaillé,TrancheHeureTravaillé,IdSalarié)Select T_Horaire.Jour,T_Horaire.Horaire, " & Forms!F_Fonction!NumSalarié & " From T_Horaire;"
    aussi
    Et j'ai essayé aussi dans le form principal même résultat ..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "INSERT INTO T_SalariéTrancheHeure (JourTravaillé,TrancheHeureTravaillé,IdSalarié)Select T_Horaire.Jour,T_Horaire.Horaire, Forms!F_Fonction!NumSalarié  From T_Horaire;"
    Pourtant je me suis inspiré d'une SQL INSERT que j'ai faite qui marche super bien qui fait référence a deux champs dans le form et c'est écris pareil !!??
    La connaissance ne vaut que si elle est partagée par tous et pour tous!
    Access et moi c'est mais en fait on s' bien !
    Ps: Je comprend très vite quand on m'explique longtemps !!

  14. #14
    Membre actif 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
    Points : 217
    Points
    217
    Par défaut
    Ben si y en a qui comprenne??? Moi PAS !
    Voilà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "INSERT INTO T_SalariéTrancheHeure (JourTravaillé,TrancheHeureTravaillé,IdSalarié)Select T_Horaire.Jour,T_Horaire.Horaire, forms!F_Salarié!IdSalarié  From T_Horaire;"
    ça ça marche quand le bouton est dans le form principal
    et ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "INSERT INTO T_SalariéTrancheHeure (JourTravaillé,TrancheHeureTravaillé,IdSalarié)Select T_Horaire.Jour,T_Horaire.Horaire,forms!F_Fonction!NumSalarié From T_Horaire;"
    ça marche pas quand le bouton est dans le sous form ???
    PS:IdSalarié dans le sous form s'appelle NumSalarié !!
    doit y avoir un truc du genre
    form!F-Salarié!forms!F_Fonction!NumSalarié
    pas beau ça
    Mais sinon je vois pas ce qui cloche :
    et p'y j'aime po po comprendre
    La connaissance ne vaut que si elle est partagée par tous et pour tous!
    Access et moi c'est mais en fait on s' bien !
    Ps: Je comprend très vite quand on m'explique longtemps !!

  15. #15
    Membre actif
    Avatar de Trini
    Homme Profil pro
    Dresseur de puce
    Inscrit en
    Juillet 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dresseur de puce

    Informations forums :
    Inscription : Juillet 2005
    Messages : 189
    Points : 264
    Points
    264
    Par défaut
    Re,

    Avec les '&' sur Me!numSalarié dans le SQL comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DoCmd.RunSQL "INSERT INTO T_SalariéTrancheHeure (JourTravaillé,TrancheHeureTravaillé,IdSalarié)Select T_Horaire.Jour,T_Horaire.Horaire, " & Me!NumSalarié & " From T_Horaire;"
    T'as essayé ?
    Dans le sous formulaire, OK !

    @+

  16. #16
    Membre actif 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
    Points : 217
    Points
    217
    Par défaut
    TROP FORT TRINI
    Impec !
    Du bonheur !
    Je désactive et réactive mon bouton ! Super !
    Mais quand à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if DataErr = <code de l'erreur> then Response=AcDataErrContinue
    Je n'arrive pas a récupérer le N° de l'erreur qui spécifie les doublons !
    si je fais NON je recupère "2501" qui est l'erreur du RunSQL pas executé !
    Mais l'erreur des doublons ...
    Même si je force l'execution de la requete !
    Bien sur rien ne s'ajoute (heureusement car a chaque click 162 enregistrements!!)
    dommage !! a moins que c'est ce N° qu'il faut mettre ???
    Remarque le bouton est désactivé et n'est acitivé que sur MAJ de ma liste donc je pourrai inclure la procédure d'ajout sur AfertMaj selon mon critère et cela devrai le faire !

    Merci encore Trini de ta patience avec un boulet comme moi !!
    La connaissance ne vaut que si elle est partagée par tous et pour tous!
    Access et moi c'est mais en fait on s' bien !
    Ps: Je comprend très vite quand on m'explique longtemps !!

  17. #17
    Membre actif
    Avatar de Trini
    Homme Profil pro
    Dresseur de puce
    Inscrit en
    Juillet 2005
    Messages
    189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dresseur de puce

    Informations forums :
    Inscription : Juillet 2005
    Messages : 189
    Points : 264
    Points
    264
    Par défaut
    Re,

    Un autre truc aussi, emploies plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Currentdb.execute ""INSERT INTO........" , DbFailOnERror
    que
    Qaund tu utilises Docmd.runsql, Access n'indique pas l'erreur par un Msgbox, y passe sans faire la mise à jour, tranquille
    Sinon l'erreur pour doublon c'est 3022.

    Si moi je suis patient, toi tu n'as pas l'air d'en manquer non plus

    Salut,

  18. #18
    Membre actif 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
    Points : 217
    Points
    217
    Par défaut

    A la seule différence que moi c'est parce que je rame !!!
    Merci pour ton astuce !!
    J'vais me le garder dans un coin !!! 8)
    Moi, ça fait deux mois que j'ecris des codes !!
    Avant je sais même pas que ça existait
    T'imagine comment j'galère !!!
    Surtout quand je vois des KADORS comme vous!!
    Mais j'apprend, je suis perceverent !!!
    Maso peut-etre mais j'aime ça !
    Aller bonne nuit et merci encore !!!
    La connaissance ne vaut que si elle est partagée par tous et pour tous!
    Access et moi c'est mais en fait on s' bien !
    Ps: Je comprend très vite quand on m'explique longtemps !!

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

Discussions similaires

  1. Comment valider une de deux Option dans un Sql (Insert into)
    Par r.mehdi dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 15/05/2008, 16h20
  2. [SQL] Problème de guillemets dans un INSERT INTO SELECT
    Par Lenezir dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 25/02/2008, 14h21
  3. [SQL] SQL syntax error dans fonction insert into
    Par scarfesse dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 21/12/2007, 13h25
  4. Syntaxe requete SQL insert into dans VBA
    Par @rkane dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 12/12/2006, 22h03
  5. Pb d'écriture intempestive dans table avec SQL insert into
    Par pete_shifter dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 10/11/2005, 11h51

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