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 :

Comment dupliquer ligne suivant valeur Champ3


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Inscrit en
    Octobre 2007
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 128
    Points : 76
    Points
    76
    Par défaut Comment dupliquer ligne suivant valeur Champ3
    Bonjour
    j'execute : 1 macro Access + macro Excel + 1 macro Access : ce n'est pas tres joli mais ca marche et je me demande s'il est possible de tout faire avec une seule requete SQL ACCESS ?

    il s'agit de relever le chiffre dans colonne C ( colonne "SAP Qty" dans "Exemple_SAP.xlsx" ) : Si zero ou 1 : Ne rien faire mais si > 1 : Dupliquer la ligne ( colonne A + colonne B + colonne C ) en autant de fois et avec incrementation dans colonne "no d'ordre" ( si possible sur 3 chiffres comme 001 002 003 etc.. )

    Voir le resultat souhaité dans "Resultat_SAP.xlsx"

    Je signale que mon macro Excel me permet d'obtenir le resultat voulu en partant de la derniere ligne mais je ne sais pas si la requete SQL fait pareil ?

    si pas possible de faire une telle requete SQL : est il possible d'executer macro Excel à partir d1 macro ACCESS ( car je voudrais tout faire d'un seul clci )

    je suis sous win 7 et Office 2010

    Merci et bonne Année !

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


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

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 692
    Points : 57 238
    Points
    57 238
    Billets dans le blog
    40
    Par défaut Bonne année 2013 !
    Bonjour,

    une petite procédure qui va piocher dans la table SAP([SAP Fixed Asset], [no d'ordre], [SAP Qty]) et donner le résultat dans la table SAP_resultat.
    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
    32
    33
    34
    35
    36
    37
    38
    Public Sub resultat()
    Dim strSQL As String
    Dim rst As DAO.Recordset
    Dim rst_resultat As DAO.Recordset
    Dim i As Integer
     
    ' recopier les lignes pour [SAP Qty] <=1
    CurrentDb.Execute "INSERT INTO SAP_Resultat ([SAP Fixed Asset], [no d'ordre], [SAP Qty]) " & _
                    " SELECT [SAP Fixed Asset], [no d'ordre], [SAP Qty] FROM SAP " & _
                    " WHERE [SAP Qty]<=1", dbFailOnError
     
     
    strSQL = "SELECT [SAP Fixed Asset], [no d'ordre], [SAP Qty] FROM SAP " & _
                    " WHERE [SAP Qty]>1" ' on récupère les lignes avec [SAP Qty]>1
    Set rst = CurrentDb.OpenRecordset(strSQL)
    Set rst_resultat = CurrentDb.OpenRecordset("SAP_Resultat")
     
     
    With rst
        .MoveFirst
        While Not .EOF
            For i = 1 To .Fields("[SAP Qty]") ' on boucle sur [SAP Qty]
                rst_resultat.AddNew
                rst_resultat.Fields("[SAP Fixed Asset]") = .Fields("[SAP Fixed Asset]")
                rst_resultat.Fields("[no d'ordre]") = Format(i, "000")
                rst_resultat.Fields("[SAP Qty]") = .Fields("[SAP Qty]")
                rst_resultat.Update
            Next
            .MoveNext
        Wend
    End With
     
    rst.Close
    Set rst = Nothing
    rst_resultat.Close
    Set rst_resultat = Nothing
     
    End Sub

  3. #3
    Membre régulier
    Inscrit en
    Octobre 2007
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 128
    Points : 76
    Points
    76
    Par défaut
    Desolé mais ca ne marche pas !
    1) C'est à creer avec icone MODULE ou VISUAL BASIC sous ACCESS ? ( quelle difference entre les 2 ? )
    2) "SAP_Resultat" doit-elle etre une table à l interieur d'une base de données ou un fichier exterieur de cette base de données ( et à quel format ? )

    Merci !

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


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

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 692
    Points : 57 238
    Points
    57 238
    Billets dans le blog
    40
    Par défaut
    bonsoir,

    1) à coller dans un module.

    2) oui, je suis parti de deux tables dans la bdd: SAP_Resultat ([SAP Fixed Asset], [no d'ordre], [SAP Qty]) et SAP([SAP Fixed Asset], [no d'ordre], [SAP Qty])

Discussions similaires

  1. Comment incrementer Champ3 suivant valeur de Champ2
    Par toto92 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 26/12/2012, 15h21
  2. Supprimer ligne suivant valeur
    Par isarian dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 08/12/2011, 14h14
  3. Reporter valeur enregistrement sur plusieurs lignes suivantes
    Par oarnold dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 06/03/2008, 17h52
  4. Réponses: 2
    Dernier message: 13/04/2007, 16h35
  5. Comment allez vers la ligne suivante d'un dbgrid
    Par Karim1971 dans le forum Bases de données
    Réponses: 7
    Dernier message: 12/05/2006, 11h57

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