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

Access Discussion :

[Access 2003] forcer num auto pour 6 requetes


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Points : 10
    Points
    10
    Par défaut [Access 2003] forcer num auto pour 6 requetes
    bonjour,
    je vous expose ma situation:
    je dispose d une bdd sous access, et de 6 requetes pour exporter vers des fichiers texte.
    jusque la tout va bien, grace a votre aide.
    vient ensuite le probleme, je dois arriver a creer un numero d envoi qui soit le meme pour les 6 requetes.....
    en fait les 6 requetes correspondent aux differentes etapes de la commande des produits.
    j ai ajouté l identifiant NUM_ENV dans une nouvelle table que j ai nommé NUM_ENV, avec comme tuples:
    -NUM_ENV(cle primaire)
    -NUM_LIV
    -NUM_COM

    et je n arrive pas a faire en sorte de recuperer le num env et l attribuer au bloc des 6 requetes....
    cela agira comme un compteur en gros
    c est a dire par exemple que la commande num_com 12 a ete livree aujourd hui, et le num_env 1, correspond au prmier envoi de cette commande
    une meme commande peut etre renouvelée et donc num_env pass a num_env 2
    j espere que j ai ete clair.....

    si vous avez une idée comment je devrais proceder je suis preneur, merci

  2. #2
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Bonjour,

    Pas grand chose. Désolé, mais c'est pas total clair, ton exposé.

    En gros, tu as
    - des commandes
    - pour chaque commande, tu peux avoir de 1 à n Envois (ou expéditions...), numérotés de 1 à n ?

    Ce qui est mal barré, c'est en plus le Num_Liv : numéro de livraison ? Je soupçonne que celui là est un NumAuto, ou tout au moins un numéro que s'incrémente à chaque envoi, quel que soit la commande concernée ? Comme les n°s de facture, par exemple ?

    Correct ?
    Quel est ton problème ?

    Et puis, encore merci à tous d'éviter les termes genre 'tuples'. J'ai pas été aux écoles, et ça me donne la migraine . Champ, enregistrement, tout ça, je connais bien.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Points : 10
    Points
    10
    Par défaut
    oui c est ca
    j ai procedé de la sorte:
    j ai crée une requete dans une autre requete, ce qui me renvoie le num_env identique pour les 6 fichiers

  4. #4
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Désolé, je ne comprends toujours pas.
    Ni ce que tu as (quelles sont les tables, leurs champs, leurs relations), ni ce que tu veux faire (qu'y a t'il dans les requêtes ? qu'est-ce qu'elles font ?)

    Tu veux juste passer un paramètre à chaque requête ? spécifier le Num_env extrait de la 1ère ?

    Merci d'être plus précis, avec un exemple en clair (pas besoin des 6 requêtes. Si tu résous une fois le problème, les 5 autres seront itou).

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Points : 10
    Points
    10
    Par défaut
    je sais que ce n est pas evident d expliquer le probleme, je pense l aovir resolu:
    en fait je dispose d une bdd , avec tables:
    -clients,
    -commande,
    -atricle commandes,
    -livraison,
    -num_env,
    et les 6 requetes:
    -01_entete_de_la_commande
    -02_engagement_de_commande
    -03_ligne_de_commandes
    -04_donnees_clientes
    -05_message_de_la_commande
    -06_enregistrement_de_controle


    elles sont toutes exportées avec une macro ("transferer texte")
    il me reste certains poins a revoir et j ai bouclé
    pour une meme commande le num_env sera le meme, et est automatiquement incrementé de 1 a la prochaine commande...
    j espere avoir ete plus clair cette fois

  6. #6
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Si je comprends bien, tes 6 requêtes sont les 6 parties d'une même commande que tu vas envoyer l'une après l'autre dans un fichier texte (= la commande, ou peut être plutôt, un espèce de bon de livraison ?)

    Pour créer un nouveau n° de livraison (Num_Env), le plus simple est une fonction de domaine. Par exemple,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ProchainEnvoi = DMax("NUM_ENV", "NUM_ENV", "NUM_COM = " & NumeroCommande) + 1
    Je te laisse regarder la syntaxe de DMax dans l'aide d'Access. Petite confusion : la table NUM_ENV porte le même nom que le champ NUM_ENV (pas recommandé, ça)

    DMax va ici te renvoyer le plus grande valeur de NUM_ENV déjà utilisé pour la commande n° NumeroCommande.
    Tu ajoutes + 1, pour le n° du prochain envoi.

    Jusqu'ici, ça va, ou je suis encore à côté de la plaque ?

    Si c'est bon, il n'y a plus qu'à coller ce numéro dans les 6 requêtes ?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Points : 10
    Points
    10
    Par défaut
    tu n es pas a coté de la plaque, je te rassure

    tu as saisi l essentiel
    je suis en train d examiner ta proposition, c est un compteur plutot pratique! surtout avec la fonction DMAX
    je dois ecrire en vba?
    car j utilise une macro pour executer les 6 requetes(transferer texte)

    le probleme est que mon patron m a préconisé l emploi de la table num_env avec le champ num_env a l interieur...

  8. #8
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Citation Envoyé par dakoyaz
    tu n es pas a coté de la plaque, je te rassure

    tu as saisi l essentiel
    Ouf ! content.
    Citation Envoyé par dakoyaz
    je suis en train d examiner ta proposition, c est un compteur plutot pratique! surtout avec la fonction DMAX
    je dois ecrire en vba?
    car j utilise une macro pour executer les 6 requetes(transferer texte)
    Oui, et ça devrait te plaire si tu n'en as jamais fait.
    Citation Envoyé par dakoyaz
    le probleme est que mon patron m a préconisé l emploi de la table num_env avec le champ num_env a l interieur...
    Faut jamais écouter les patrons. Non, je rigole, mais j'aime bien les tables et les champs qui disent en clair ce à quoi ils servent.
    Ici, on a une table d'Envois et un champ NoEnvoi. Par exemple. Ou NumEnvoi, c'est aussi bien.
    On n'en est pas à quelques caractères près, et la folie des trigrammes illisibles me rend déjà dingue, mais alors, quand la table a le même nom que son champ (champ-clé, probablement), bing ! je craque.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Points : 10
    Points
    10
    Par défaut
    je suis content de savoir que nous somme su la meme longueur d ondes

    par contre, a propos de mon patron, il m a montré vite fait quel genre de résultat il attend de moi...
    c est pas evident, etant donné qu il n est pas informaticien, la communication n est pas au top

    pour info, je suis en fin de cursus de Licence Pro Informatique: Analyste et Concepteur de Systemes d Information et de Decisions...

    je vais essayer de faire passer ta methode
    on verra bien

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Points : 10
    Points
    10
    Par défaut
    j ai passé ma macro sous vba
    ca me donne ca:
    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
     
    Function SCHERINGconversion()
    On Error GoTo SCHERINGconversion_Err
        DoCmd.TransferText acExportFixed, "REQUETECSP_01_entete_de_la_commande Spécification d'exportation", "REQUETECSP_01_entete_de_la_commande", "c:\00200000_001.txt", False, ""
        DoCmd.TransferText acExportFixed, "REQUETECSP_02_engagement_de_commande Spécification d'exportation", "REQUETECSP_02_engagement_de_commande", "c:\00200000_002.txt", False, ""
        DoCmd.TransferText acExportFixed, "REQUETECSP_03_ligne_de_commandes Spécification d'exportation", "REQUETECSP_03_ligne_de_commandes", "c:\00200000_003.txt", False, ""
        DoCmd.TransferText acExportFixed, "REQUETECSP_04_donnees_clientes Spécification d'exportation", "REQUETECSP_04_donnees_clientes", "c:\00200000_004.txt", False, ""
        DoCmd.TransferText acExportFixed, "REQUETECSP_05_message_de_la_commande Spécification d'exportation", "REQUETECSP_05_message_de_la_commande", "c:\00200000_005.txt", False, ""
        DoCmd.TransferText acExportFixed, "REQUETECSP_06_enregistrement_de_cont Spécification d'exportation", "REQUETECSP_06_enregistrement_de_controle", "c:\00200000_006.txt", False, ""
     
    SCHERINGconversion_Exit:
        Exit Function
    SCHERINGconversion_Err:
        MsgBox Error$
        Resume SCHERINGconversion_Exit
    End Function
    reste plus qu a apporter les dites modifications citées précedemment

  11. #11
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Bien,

    est-ce que tu peux préciser, ou confirmer le problème à résoudre ?
    Déjà, il faudrait que ta Sub SCHERINGconversion (pourquoi une fonction ? Elle ne renvoit rien, donc une Sub suffira) commence par le code qui calcule la valeur du prochain N°d'envoi.

    Ensuite, j'ai cru comprendre que, maintenant que tu sais calculer le prochain NUM_ENV, tu veux le passer en paramètre à chacune de ces requêtes ?

    Le plus simple pour cela, puisque tu disposes de cette valeur dans la variable ProchainEnvoi, est de la rendre publique dans une fonction que tu peux appeler dans chaque requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Function GetNextNum_Env() as long
        GetNextNum_Env = mProchainEnvoi
    End Function
    Tu remarqueras que la variable ProchainEnvoi est devenue mProchainEnvoi.
    Pour que cette fonction puisse lire sa valeur, il faut qu'elle soit déclarée au niveau du module.
    Il n'y a plus qu'à mettre comme critère, dans chaque requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE NUM_ENV = GetNextnum_Env()
    C'est clair pour toi ?

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Points : 10
    Points
    10
    Par défaut
    rebonjour Papy Turbo
    et merci de l attention accordée et surtout de la patience pour m aider a resoudre mon appli

    à propos de l incrementation, j'ai pensé a 2 solutions:
    -passer par le sql
    -passer par le vba

    et je mets la regle a respecter!
    L'indice de livraison N (INDLIV, zone 5 de l'entete de commande) correspond à la Neme livraison de la commande NUMCOM (zone 4 de l'entete de commande).
    La valeur de cet indice débutera à 1 pour une commande donnée et se terminera à une valeur V pour la Xeme et derniere livraison.
    Cet indice sera incrementé de 1 à chaque nouvelle livraison.
    ta methode m interesse pour mettre en ouvre justement cette contrainte....
    si tu pouvais m aiguiller....

  13. #13
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    J'avoue que je suis de + en + perdu entre les champs qui changent de nom : NUM_ENV, c'est la même chose que ce N qui correspond à INDLIV en zone 4 ???

    Je pensais avoir répondu à tes 2 questions + haut en
    1- calculant le prochain n° de livraison (ou d'envoi) à partir d'une fonction (DMax + 1),
    2- en passant ce n° à chacune des requêtes, par l'intermédiaire d'une fonction publique.

    Si tu ne comprends pas quelque chose, quel est ton problème précis ?

    Courage, on va y arriver.

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Points : 10
    Points
    10
    Par défaut
    j admire ton courage et ta perseverance, parce que je me rend compte en relisant mes posts, que mon jargon est incomprehensible...lol

    a vrai dire, moi meme je suis embrouillé...
    un npuvel élément est arrivé hier soir
    je dois extraire les fameuses 6 requetes dans un meme fichier texte, une ligne par requete en gros....

    bref, je suis revenur sur vba,c est plus simple, et voila mon code

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    Option Compare Database
    Sub Schering00()
    Dim db As DAO.Database
    Dim rc As DAO.Recordset
    Set db = Application.CurrentDb
    Open "C:\00200000.001.txt" For Output As #1
     
    'Set rc1 = db.OpenRecordset("01_entete_de_la_commande", dbOpenDynaset)
    'rc1.MoveFirst
    'Do Until rc1.EOF
    'Print #1, rc1!1.*; rc1!NUM_LIV; rc1!NUM_COM;
    'rc1.MoveNext
    'Loop
    Print #1,
    Set rc2 = db.OpenRecordset("02_engagement_de_commande", dbOpenDynaset)
    rc2.MoveFirst
    Do Until rc2.EOF
    Print #1, rc2!NUMENV; rc2!TYPENR; rc2!CODREP; rc2!NUMCOM; rc2!CODART; rc2!QTCLIV; rc2!PPHT; rc2!REMISE;
    rc2.MoveNext
    Loop
    Print #1,
    Set rc3 = db.OpenRecordset("03_ligne_de_commandes", dbOpenDynaset)
    rc3.MoveFirst
    Do Until rc3.EOF
    Print #1, rc3!NUMENV; rc3!TYPENR; rc3!CODREP; rc3!NUMCOM; rc3!INDLIV; rc3!CODART; rc3!DATLVP; rc3!QTCLIV; rc3!PPHT; rc3!REMISE; rc3!MTPORT;
    rc3.MoveNext
    Loop
    Print #1,
    Set rc4 = db.OpenRecordset("04_donnees_clientes", dbOpenDynaset)
    rc4.MoveFirst
    Do Until rc4.EOF
    Print #1, rc4!NUMENV; rc4!TYPENR; rc4!CODREP; rc4!NUMCOM; rc4!INDLIV; rc4!NOMLIV; rc4!RAISOCL; rc4!ADR1L; rc4!ADR2L; rc4!CPOSTL; rc4!VILLEL; rc4!NOMFAC; rc4!RAISOCF; rc4!ADR1F; rc4!ADR2F; rc4!CPOSTF; rc4!VILLEF;
    rc4.MoveNext
    Loop
    Print #1,
    Set rc5 = db.OpenRecordset("05_message_de_la_commande", dbOpenDynaset)
    rc5.MoveFirst
    Do Until rc5.EOF
    Print #1, rc5!NUMENV; rc5!TYPENR; rc5!CODREP; rc5!NUMCOM; rc5!INDLIV; rc5!COMMENT; rc5!TYPDOC;
    rc5.MoveNext
    Loop
    Print #1,
    Set rc6 = db.OpenRecordset("06_enregistrement_de_controle", dbOpenDynaset)
    rc6.MoveFirst
    Do Until rc6.EOF
    Print #1, rc6!NUMENV; rc6!TYPENR; rc6!CODREP; rc6!NUMCOM; rc6!INDLIV; rc6!NBENR; rc6!NBCDE; rc6!TOTQTE;
    rc6.MoveNext
    Loop
    End Sub
    le probleme est que ca ne m affiche pas une ligne par requete mais quelquechose du genre qui tient sur 2 lignes apres une ligne vierge..

    000004200200 28535 3305094 2 0020,9108,00000004200200 28535 3305119 3 0020,9908,00000004200200 28535 3392199 4 0020,0808,00000004200200 28535 3515785 1 0019,0008,00000004200200 28536 3305088 4 0007,1114,00000004200200 28536 3305094 4 0020,9114,00000004200200 28536 3305102 8 0007,1414,00000004200200 28536 3305119 8 0020,9914,00000004200200 28536 3392182 16 0006,7014,00000004200200 28536 3392199 24 0020,0814,00000004200200 28536 3515779 20 0006,3314,00000004200200 28536 3515785 20 0019,0014,00000004200200 28536 3560550 30 0007,3505,00000004200200 28536 3560567 30 0022,0605,00
    000004300200 28535 1 3305094 30/05/2006 2 0020,9108,000000004300200 28535 1 3305119 30/05/2006 1 0020,9908,000000004300200 28535 1 3515785 30/05/2006 1 0019,0008,000000004300200 28536 1 3305088 21/05/2006 4 0007,1114,000000004300200 28536 1 3515785 21/05/2006 12 0019,0014,000000004300200 28536 1 3560550 21/05/2006 25 0007,3505,000000004300200 28536 2 3305094 07/06/2006
    alors que je devrais arriver a un resultat comme celui la:
    0000021200 CMC1 01022006050200000020402420000002040242 30002074510000070513L91
    0000022200 CMC1 3560567 00050000220600500
    0000022200 CMC1 3296981 00040000189002000
    0000023200 CMC1 013560567 2006070300030000220600500000000000
    0000023200 CMC1 013296981 2006070300025000189002000000000000
    0000024200 CMC1 01BONNAUD NOM1 ADRESSE1 CP1 VILLE1 NOM2 ADRESSE2 CP2 VILLE2
    0000025200 CMC1 01LIVRAISONS DE 9H00 A 12H00 BL
    0000021200 CMC3 01022006050400000020493600000002049360 30002006760000005510K65
    0000022200 CMC3 3515785 00036000190001400
    0000022200 CMC3 3392199 00037000200801400
    0000023200 CMC3 013515785 2006070400013000190001400000000000
    0000023200 CMC3 013392199 2006070400022000200801400000000000
    0000024200 CMC3 01VAN NOM1 ADRESSE1 CP1 VILLE1 NOM2 ADRESSE2 CP2 VILLE2
    0000029200 ZZZZZZZZZZZZ0013 2 000000900
    qui correspond a un fichier ouvert avec les 6 requetes, et donc plusieurs livraions ...



    mais du coup avec indliv, j attend une reponse pour m éclairer l esprit par ce que ce n est pas clair
    NB: je viens d etre mis a jour, l appli doit tourner proprement sur le reseau des ce soir (premiere execution de l appli)
    je sens la pression monter....

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Points : 10
    Points
    10
    Par défaut
    précision:
    NUM_ENV: numero d'envoi
    Le numero d'envoi est un compteur par fichier.La séquentialité des numérotations de fichier doit etre respectée. Tous les enregistremetns d'un meme fichier ont le meme numéro d'envoi
    et d un autre coté j ai ca aussi:
    Au premier envoi, le numéro de livraison NUMENV est à renseigner à 000001. Il sera incrémenté de 1 à chaque envoi

    INDLIV: Indice de livraison
    L'indice de livraison N (INDLIV, zone 5 de l'entête de commande) correspond à la Nème livraison de la commande NUMCOM (zone 4 de l'entête de commande). La valeur de cet indice débutera à 1 pour un commande donnée et se terminera à une valeur X pour la Xème et dernière livraison. Cet indice sera incrémenté de 1 à chaque nouvelle livraison.

  16. #16
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Heureusement que j'ai mon maillot de bain sous la main, je nage, je nage...

    En clair,
    1- ton code ne fonctionnera jamais, ni ce soir, ni demain, ni la semaine prochaine si tu cèdes à la panique et travailles sous pression (je sais, ça sert à rien de le dire, mais on va gagner du temps si on prend le temps d'analyser clairement)
    2- il faut définir clairement les rapports entre les données avec un minimum de Merise, pour que la structure soit claire :
    Quels sont les rapports entre NUM_ENV (ou NUMENV) et N et INDLIV et NUMCOM ?
    Les seules réponses possibles sont, en français, de ce type :
    - j'ai une table de Commandes avec un NUMCOM par commande (= clé primaire),
    - pour chaque commande, j'ai une ou plusieurs livraisons avec un INDLIV par livraison (= clé primaire de la table Livraisons),
    - pour chaque livraison, j'ai
    --- ? un et un seul envoi ? (dans la table de Livraisons ?)
    ou bien
    --- ? un ou des envois ? (dans une table séparée des Envois ?)
    avec un NUM_ENV par envoi.
    Bref, il faut que tu parles français pour qu'on se comprenne, tout en étant rigoureux et précis.
    Sinon, impossible de te suivre.

    On parlera ensuite de tes requêtes et de leur export, quand on aura compris la structure des données (donc des tables et de leurs relations).
    Si nécessaire, il faut que tu passes une heure sur le cours de Maxence Hubiche pour définir les relations entre tes tables.

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Points : 10
    Points
    10
    Par défaut
    j'ai une table de Commandes avec un NUMCOM par commande (= clé primaire),
    =VRAI

    pour chaque commande, j'ai une ou plusieurs livraisons avec un INDLIV par livraison (= clé primaire de la table Livraisons),
    =NUM_LIV est Cle primaire de la table Article_Livré, correspondance avec INDLIV en fait(on renomme dans la requete NUM_LIV en INDLIV par soucis d esthetique

    Une commande peut concerner plusieurs livraison.une commande s effectue pour une année.
    Donc, les élements de la commande sont livrés au fur et a mesure, jusqu a compléter integralement les lignes de commandes.
    Il y a donc plusieurs envoi pour la meme commande, elle est donc decoupé selon l indice de livraison , et l indice et le numero d envoi, le num_com restant le meme tout au long de l operation.

    voila, je ne stresse pas.
    d autant que je suis seul aujourd hui pour resoudre ce probleme.

  18. #18
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    Bien,

    =NUM_LIV est Cle primaire de la table Article_Livré,
    Une livraison doit pouvoir regrouper plusieurs articles, non ?
    Ou bien tu crées un NUM_LIV pour chaque article de chaque livraison ?

    Surtout tu n'as pas répondu à la question essentielle :
    - un envoi par livraison ?
    ou
    - plusieurs envois par livraison ?
    ou
    - plusieurs livraisons par envoi ?
    ou quoi ???

    Pour te suivre, j'aimerais que tu nous fasses un résumé complet et succinct de l'ensemble des tables concernées et de leurs relations. Sur le modèle de ce que je t'ai proposé plus haut, avec noms des tables et des clés primaires, et les relations (un ou plusieurs).

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 47
    Points : 10
    Points
    10
    Par défaut
    plusieurs livraisons par envoi
    =OUI

    presentation des tables:
    -ART_LIV: cle primaire NUM_LIV(articles commandés)
    -ARTICLE_COMM:cle etrangere NUM_COM (articles)
    -ARTICLES: cle primaire CD_ART (articles)
    -CLIENT: cle primaire CLICSP (client)
    -COMMANDES: cle primaire NUM_COM (commandes de l année)
    -NUM_ENV: cles etrangeres NUM_ENV,NUM_COM, NUM_LIV( association)

    j espere que ca t aidera a me comprendre

  20. #20
    Membre expérimenté
    Avatar de Papy Turbo
    Homme Profil pro
    Développeur Office/VBA
    Inscrit en
    Mars 2004
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Office/VBA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 822
    Points : 1 709
    Points
    1 709
    Par défaut
    C'est un début, mais il manque les relations.
    Qu'est-ce que c'est qu'article_comm : les articles de chaque commande, donc le détail des lignes de chaque commande ?
    Et du coup, c'est quoi ART_LIV ? La même chose sur les livraisons ?
    T'es sûr de :
    -NUM_ENV: cles etrangeres NUM_ENV,...
    NUM_ENV, c'est pas la clé primaire de la table NUM_ENV ?

    Plusieurs livraisons par commande, ça me paraît très clair. Mais plusieurs livraisons par envoi ???

    Essaye d'être complet, sinon, je vais continuer à te poser des questions pendant longtemps avant d'y arriver.
    Si nécessaire, fais une liste complète, dans l'ordre, des tables, leur usage en clair, leurs clés primaires, les relations entre chaque table.

    Désolé, vu d'ici, il manque toujours des morceaux pour comprendre les mécanismes.

Discussions similaires

  1. [Access 2003]Probleme type de donnée sur requete DELETE
    Par pottiez dans le forum Langage SQL
    Réponses: 12
    Dernier message: 09/08/2006, 09h39
  2. Réponses: 9
    Dernier message: 01/06/2006, 14h12
  3. [Access 2003] forcer format numerique
    Par dakoyaz dans le forum Access
    Réponses: 1
    Dernier message: 16/05/2006, 18h27
  4. Réponses: 1
    Dernier message: 27/04/2006, 22h02
  5. Réponses: 2
    Dernier message: 27/04/2006, 21h41

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