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 :

transfert d'une table vers 3 tables differentes


Sujet :

Requêtes et SQL.

  1. #21
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    227
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 227
    Points : 99
    Points
    99
    Par défaut
    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
     
    Public Sub test_iteration()
        Dim sqlQuery As DAO.QueryDef
        Dim sqlQuery2 As DAO.QueryDef
        Dim sqlQuery3 As DAO.QueryDef
        Dim rec As Recordset
        Dim Mba As Database, TabTemporary As Recordset, NumId As Variant
     
     
        Set rec = CurrentDb.OpenRecordset("Temporary_Table")
        Set sqlQuery = CurrentDb.QueryDefs("LegalEntityReq")
        Set sqlQuery2 = CurrentDb.QueryDefs("SuppliersReq")
        Set sqlQuery3 = CurrentDb.QueryDefs("ProductReq")
     
     
        rec.MoveFirst
        Do Until rec.EOF
     
            sqlQuery.Execute
            sqlQuery2.Execute
            sqlQuery3.Execute
     
            Reponse = MsgBox("Voulez-vous continuer ?", vbYesNo)
            If Reponse = 7 Then Exit Sub
        rec.MoveNext
     
        Loop
    Ens Sub
    voici mon code

    alors moi je veux enregistré ligne par ligne mais le probleme c'est qu'il enregistre tout d'un seul coup et quand il rentre dans la boucle il enregistre encre une fois toute les données ce qui veut dire arrivée a la fin de la boule j'ai des milliers de ligne .

    une solution peut etre ....



    ENREGISTREMENT LIGNE PAR LIGNE !!!!!

    MERCI

  2. #22
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Citation Envoyé par skillipo Voir le message
    ENREGISTREMENT LIGNE PAR LIGNE !!!!!
    C'est bien ce qu'on a fait plus haut que tu as changé. Domage.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Do Until TabTemporary.EOF
    ... 
        Msql = "INSERT INTO LegalEntity(Country, unit, plant) Values (" &   TabTemporary("Country") & ", " & TabTemporary("unit") & ", " & TabTemporary("plant") & ")"
     
    ... 
    Loop

  3. #23
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    227
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 227
    Points : 99
    Points
    99
    Par défaut
    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
     
     Public Sub test_iteration()
     
        Dim sqlQuery As DAO.QueryDef
        Dim sqlQuery2 As DAO.QueryDef
        Dim sqlQuery3 As DAO.QueryDef
        Dim rec As Recordset
        Dim tdb As DAO.TableDef
        Dim lField As DAO.Field
        Dim Mba As Database, Temporary_Table As Recordset, NumId As Variant
     
     
        Set Temporary_Table = CurrentDb.OpenRecordset("SELECT * FROM Temporary_Table", [dbOpenSnapshot])
        Set sqlQuery = CurrentDb.QueryDefs("LegalEntityReq")
        Set sqlQuery2 = CurrentDb.QueryDefs("SuppliersReq")
        Set sqlQuery3 = CurrentDb.QueryDefs("ProductReq")
     
        Do Until Temporary_Table.EOF
     
     
          sqlQuery.Execute
          sqlQuery2.Execute
          sqlQuery3.Execute
     
           Reponse = MsgBox("Voulez-vous continuer ?", vbYesNo)
           If Reponse = 7 Then Exit Sub
     
         Loop
    Voici mon code est franchement impossible de copier ligne par ligne .
    j'ai rajouté un MsgBox avec un test d'arret pour voir si il ya qu'une ligne a la fois enregistré mais il enregistre tte la table a chaque fois .

    mais sqlQuery1,2,3 sont des requetes que j'ai deja ecritent .

    je sais pas si j'ai une erreur dans mes declarations , mais ce qui est sure c'est que passe pas ligne par ligne.

  4. #24
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Citation Envoyé par skillipo Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        Set Temporary_Table = CurrentDb.OpenRecordset("SELECT * FROM Temporary_Table", [dbOpenSnapshot])
        Set sqlQuery = CurrentDb.QueryDefs("LegalEntityReq")
        Set sqlQuery2 = CurrentDb.QueryDefs("SuppliersReq")
        Set sqlQuery3 = CurrentDb.QueryDefs("ProductReq")
     
        Do Until Temporary_Table.EOF
     
          sqlQuery.Execute
          sqlQuery2.Execute
          sqlQuery3.Execute
     
         Loop
    je sais pas si j'ai une erreur dans mes declarations , mais ce qui est sure c'est que passe pas ligne par ligne.
    Si tu fais comme ca ne sert à rien de mettre une boucle. tu as non seulement changer ce qu'on avait fait plus haut, mais tu n'as pas non plus bien lu parce qu'il n'y avait pas de QueryDef déclarer encore moins à exécuter.

    Je reprend.
    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
    Dim Mba as Database, TabTempo As Recordset, NumId As Variant
    Set Mba = currentDB()
    Set TabTempo=Mba.OpenRecordset("Temporary_Table")
     
    Do Until TabTempo.EOF
         'Tu inserts dans la Tab1 l'enregistement en cour de TabTempo
         Sql1="INSERT INTO Tab1(Name, Prenom, adresse) Values(" & TabTempo("nom") & ", " & TabTempo("prenom") & ", " & TabTempo("adresse") & "
         DoCmd.RunSQL Sql1
     
         'Tu inserts dans la Tab2 l'enregistement en cour de TabTempo
         Sql2="INSERT INTO Tab2(Champ1, Champ2, ...) Values(" & TabTempo("Champ") & ", " & TabTempo("Champ") & ", ... "
         DoCmd.RunSQL Sql2
    
         'Tu inserts dans la Tab3 l'enregistement en cour de TabTempo
         Sql3="INSERT INTO Tab3(Champ1, Champ2, ...) Values(" & TabTempo("Champ") & ", " & TabTempo("Champ") & ", ... "
         DoCmd.RunSQL Sql3
    
    ' Tu passe à l'enregistrement suivant
    TabTempo.moveNext
    Loop

  5. #25
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    227
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 227
    Points : 99
    Points
    99
    Par défaut
    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
     
     Public Sub test_iteration()
     Dim Mba As Database, TabTempo As DAO.Recordset, NumId As Variant
     
     
        Set Mba = CurrentDb()
        Set TabTempo = Mba.OpenRecordset("Temporary_Table")
     
     
       Do Until TabTempo.EOF
         'insertion dans la LegalEntity l'enregistement en cour de TabTempo
         Sql1 = "INSERT INTO LegalEntity(Country, unit, plant) Values (" & TabTempo("Country") & ", " & TabTempo("unit") & ", " & TabTempo("plant") & ")"
         DoCmd.RunSQL Sql1
     
     
     
          TabTempo.MoveNext
        Loop
     
     End Sub
    il m'envoi :
    Erreur d'exection "3134"
    Erreur de synthaxe dans l'instruction "INSERT INTO"

    et quand je click sur debogage il m'envoi sur : DoCmd.RunSQL Sql1

    Voila Merci

  6. #26
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    227
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 227
    Points : 99
    Points
    99
    Par défaut
    j'ai fais un debug comme tu m'as montré en haut et ca donne ca :

    INSERT INTO LegalEntity(Country, unit, plant) Values (, , )
    INSERT INTO LegalEntity(Country, unit, plant) Values (NORWAY, , RO')
    INSERT INTO LegalEntity(Country, unit, plant) Values (NORWAY, , RO')
    INSERT INTO LegalEntity(Country, unit, plant) SELECT (Country, unit, plant) FROM TabTemporary
    INSERT INTO LegalEntity(Country, unit, plant) SELECT (Country, unit, plant) FROM TabTemporary

  7. #27
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    227
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 227
    Points : 99
    Points
    99
    Par défaut
    j'ai trouvé la reponse .

    falait faire comme ca :

    Sql1 = "INSERT INTO LegalEntity(Country, unit, plant) Values ('" & TabTempo("Country") & "', '" & TabTempo("unit") & "', '" & TabTempo("plant") & "')"

    mnt il me reste la gestion des clé etranger . Merci de ton aide (kelke idee ????)

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. copier coller d'une ligne vers nouvelle table (trigger)
    Par cedric190985 dans le forum SQL
    Réponses: 1
    Dernier message: 18/05/2011, 09h08
  2. [AC-2003] Faire pointer une table vers n tables liées
    Par ted the Ors dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 16/04/2010, 12h01
  3. [MySQL] href d'une donnée de ma table vers une autre donnée de ma table
    Par <-mini-> dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 27/06/2008, 09h00
  4. transfert d'une table vers 3 tables differentes
    Par skillipo dans le forum VBA Access
    Réponses: 0
    Dernier message: 21/11/2007, 17h42
  5. Réponses: 4
    Dernier message: 06/03/2007, 12h00

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