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 :

numauto dans une requête création de table


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 121
    Points : 52
    Points
    52
    Par défaut numauto dans une requête création de table
    Bonsoir à tous

    J'aimerai créer une requête création de table et mettre en premier champs un numauto. Je sais que la FAQ est mon amie mais les codes trouvé je n'ai pas sus les appliqué sur ma requête
    quelqu'un peut il m'expliquer le concept de la manipulation svp?

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    bonjour,
    le plus simple :
    après création de ta table avec ta requête création tu ouvres celle-ci en mode création et tu rajoutes un champ N° auto.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 121
    Points : 52
    Points
    52
    Par défaut
    oui j'avais essayé ça c'est vrai que ça marche mais l'idée c'est que l'utilisateur ne touche pas aux table
    Donc je ne sais pas si en création je puisse rajouter un champs "période" qui soit un numauto

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    Bonjour,
    Je suppose que tu souhaites conserver ta démarche par création d’une requête création table.
    Si tu ne veux pas que l’utilisateur ne touche aux tables – tu déclenches donc la création par un évènement – si c’est le cas un exemple sur clic d’un bouton mais bien sur cela peut se faire sur n’importe quel évènement d’un form ou autre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Commande0_Click()
    ' execution de la requêt creation table - FormuleCreaTable -
    Dim stDocName As String
     
        stDocName = "FormuleCreaTable_R"
        DoCmd.OpenQuery stDocName, acNormal, acEdit
     
    'insertion d'un champ numero auto - NumID -
    TabSQL = "ALTER TABLE CreaTable ADD COLUMN NumID COUNTER"
    DoCmd.RunSQL TabSQL
    'affectation de la clé primaire au champ crée numéro auto - NumID
    PrimSQL = "ALTER TABLE CreaTable ADD PRIMARY KEY(NumID)"
    DoCmd.RunSQL PrimSQL

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 121
    Points : 52
    Points
    52
    Par défaut
    Au fait au final je veux faire un calcul sur des valeurs, une sorte de cumul mais à l'envers, ma première ligne serait le total des valeurs la seconde le total sans la première etc etc jusqu'à la dernière ligne.
    et comme cela se fait sur une requête de selection ,les valeurs de ma date étant sous forme aaaamm en numérique, ces valeurs la vont changer tout le temps donc pour faire une fonction select case c'est raté (déjà que j'ai du mal à les faire)
    Donc mon idée était que sur mon premier champs de ma requête ce soit un truc du style numauto qui me compte ou numérote les lignes en quelque sorte comme ça je pourai faire un select case sur ces valeurs qui ne changeront jamais (la ligne 0 sera toujours la ligne 0 la 1 toujours la 1 etc)
    Au début j'ai pensé à une création de table mais tout à l'heure j'ai très vite constaté que c'était très compliqué de procéder ainsi, ensuite par un système requête ajout/suprression de ligne non plus c'était pas bon
    Alors la je chercher à savoir si des gens on déjà fait ce genre de chose mettre un numauto dans une requête. J'ai aussi fait une table avec juste un champs numauto que j'insérais, ça aussi c'était pas bon.
    Enfin bref je tourne en rond, en plus en naviguant un peu j'ai trouver des gens qui voulaient numéroter des lignes dans des requêtes de selection, j'ai pas compris les codes et de plus une personne qui voulait numéroté sur une requête paramétré comme moi n'y arrivait pas non plus.


    ps:j'ai créé une nouvelle discussion pour ça mais comme les deux parlent du même sujet je sais pas si je peux les regrouper.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 121
    Points : 52
    Points
    52
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Production.DATEVENTE, Production.CA
    FROM Production
    GROUP BY Production.DATEVENTE, Production.CA, Production.CODE
    HAVING (((Production.CODE)=[CODE:]));
    voilà mon code sql pour le moment, si quelqu'un à une idée pour le cumul DU CA (c'est à dire que la première ligne soit le total de tout la seconde le total de tout sans la première et ainsi de suite) sans passer par un numauto en premier champs je suis preneur aussi

  7. #7
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    bonjour,
    j'ai supprimé mon post précédent, la base comportait une requête test inutile
    on pouvait faire avec une seule :
    ci-joint une base pour t'inspirer si c'est ce que tu recherches :
    pour ceux qui ne veulent pas ouvrir voila la requête :
    basé sur :
    table Production
    Formulaire - Général pour sélectionner CODE et lancer la requête
    Requête param - Production_R
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT Production.Num, Production.DATEVENTE, Production.CA, Production.CODE, DSum("CA","Production_R")-DSum("CA","Production_R","Num <" & [Num]) AS CA_CUMUL
    FROM Production
    GROUP BY Production.Num, Production.DATEVENTE, Production.CA, Production.CODE
    HAVING (((Production.CODE)=[Formulaires]![General]![RecCode]))
    ORDER BY Production.Num, Production.DATEVENTE;
    sinon :

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 121
    Points : 52
    Points
    52
    Par défaut
    je vais voir ça au bureau lundi, pour tout te dire on ma dicté une méthode que je n'ai pas compris mais qui marche (ouf!), mais je vais tout de même essayer de comprendre quelque chose au cumul de valeur sous access

    Merci pour l'aide

  9. #9
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 116
    Points : 63
    Points
    63
    Par défaut
    Bonjour à tous,

    J'arrive après la bagarre mais l'intitulé résume exactement ma problématique.
    Je créé une table dans laquelle je souhaite un champ ID en numauto.

    Mes connaissances en VBA sont telles que je passe par le mode création.
    En SQL ma requete donne ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT [convent-convoc_s+6_2].LearningObjectTitle, [convent-convoc_s+6_2].Email, [convent-convoc_s+6_2].nom_domaine_LMS, [convent-convoc_s+6_2].filiere, [convent-convoc_s+6_2].EventCode, [convent-convoc_s+6_2].[StartDateTime (Date)], [convent-convoc_s+6_2].[StartDateTime (Time)], [convent-convoc_s+6_2].[EndDateTime (Date)], [convent-convoc_s+6_2].location, [convent-convoc_s+6_2].[EndDateTime (Time)], [convent-convoc_s+6_2].UserName, [convent-convoc_s+6_2].FirstName, [convent-convoc_s+6_2].LastName, [convent-convoc_s+6_2].GroupTitle, [convent-convoc_s+6_2].Status, [convent-convoc_s+6_2].Civilite, [convent-convoc_s+6_2].[code site], [convent-convoc_s+6_2].[Nom_ concatene], [convent-convoc_s+6_2].[nbre-de-jours], [convent-convoc_s+6_2].adresse, [convent-convoc_s+6_2].[duree (h)], [convent-convoc_s+6_2].AttendanceCharge, [convent-convoc_s+6_2].[prix par jour], [convent-convoc_s+6_2].TVA_montant, [convent-convoc_s+6_2].TTC, [convent-convoc_s+6_2].concatenn, [convent-convoc_s+6_2].[DENOMINATION COMMERCIALE], [convent-convoc_s+6_2].[ADRESSE 11], [convent-convoc_s+6_2].[ADRESSE 21], [convent-convoc_s+6_2].CP1, [convent-convoc_s+6_2].VILLE1, [convent-convoc_s+6_2].TELEPHONE, [convent-convoc_s+6_2].TELECOPIE, "S+6LCONV2" AS type_conv2, autonumber() AS [index] INTO [convent-convoc_s+6_2_image]
    FROM [convent-convoc_s+6_2];
    Ca se présentait bien jusqu'à ce que acces me dise qu' "autonumber" n'est pas une fonction connue...

    Le code de la réponse du Vieux (désolé mais c'est écrit comme ca) du 20/08/2009 14h46 semble convenir;
    mais j'ai un peu de mal à l'adapter ...

    Voila donc mes questions:
    - existe-t-il un nom pour la fonction numauto, utilisable dans le mode création ?
    ou
    - comment adapter le code du 20/08/2009 14h46 pour mon cas: la tavle finale s'appelle "convent-convoc_s+6_2_image" ?


    Merci d'avance !
    Vigg

  10. #10
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 116
    Points : 63
    Points
    63
    Par défaut
    J'ai tenté d'adapter le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Function ajout_col_numauto()
    'insertion d'un champ numero auto - index -
    TabSQL = "ALTER TABLE convent-convoc_s+6_2_image ADD COLUMN index COUNTER"
    DoCmd.RunSQL TabSQL
    End Function
    Sachant que ajout_col_numauto est déclenché par un bouton ...


    Mais ca coince, et je ne sais pas pourquoi;
    La ligne
    semble poser problème.

    Une idée ?

  11. #11
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    bonsoir,
    index est un mot réservé, a proscrire pour l'utiliser dans un nom de champ.
    changer le nom du champ ou le mettre entre [] si impossible ....mais bon.

  12. #12
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 116
    Points : 63
    Points
    63
    Par défaut
    Pressé par le temps j'ai choisi une autre solution:
    la table est déjà créée avec le champ counter et je la rempli et la vide quand j'en ai besoin.

    Vigg

  13. #13
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    bonjour,
    la table est déjà créée avec le champ counter et je la rempli et la vide quand j'en ai besoin
    il doit y avoir une petite erreur counter n'est pas un champ où alors c'est encore l'utilisation d'un mot réservé, attention tu vas finir par avoir des problèmes un jour où l'autre, si tu parles du champ index il suffit si tu veux le conserver de mettre [index] cela prend pas beaucoup de temps.
    mais si tu as trouvé la solution pense au tag RESOLU.

  14. #14
    Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 116
    Points : 63
    Points
    63
    Par défaut
    Bonjour,

    Le mot index étant réservé j'ai appelé mon champ indexe.
    J'ai parlé du "champ COUNTER" pour évoquer le champ de numéroauto.

    Pour le tag, je l'aurai bien fait mais je ne l'ai pas trouvé.

    Peut-être parce que je ne suis pas le créateur de la discussion ?

    Vigg.

  15. #15
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    bonsoir,
    Peut-être parce que je ne suis pas le créateur de la discussion ?
    exact, je n'avais pas capté, pour l'avenir il vaut mieux ouvrir une discussion et mettre en lien celle dont tu fais référence.

    bonne continuation, à +

Discussions similaires

  1. [AC-2007] Suivre l'exécution d'une requête création de table
    Par ronpub dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 14/12/2010, 03h04
  2. [Access] Fonction TOP dans une requête sur deux tables
    Par pc75 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 04/07/2007, 09h31
  3. Définir le futur type de champ dans une requête création de table
    Par Fredo67 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 16/02/2007, 18h19
  4. NuméroAuto dans une requête création table
    Par JimmyB dans le forum Access
    Réponses: 1
    Dernier message: 08/03/2006, 14h24
  5. NuméroAuto dans une requête création table
    Par JimmyB dans le forum Access
    Réponses: 1
    Dernier message: 07/03/2006, 23h40

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