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 :

Insertions d'enregistrement en série [AC-2010]


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué
    Homme Profil pro
    Apprendre
    Inscrit en
    Avril 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations professionnelles :
    Activité : Apprendre
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 147
    Points : 175
    Points
    175
    Par défaut Insertions d'enregistrement en série
    Bonjour,

    J'ai une table qui contient une liste de projet. J'ai une deuxième table qui contient l'ensemble des tâches de ces projets incluant des tâches génériques à chaque type de projet, que j'appelle BLANK-X(Pour un projet type X).

    En simplifiant, j'aimerais être en mesure d'effectuer l'opération suivante:

    Si j'ajoute un enregistrement BLANK-X dans ma table de tâches, j'aimerais être en mesure d'insérer dans ma table de tâches un enregistrement identique pour chaque projet de la table Projets qui sont de type X.

    Sauf que je n'arrive pas à voir comment lister l'ensemble des projets de la table 2 pour l'insérer dans une boucle pour effectuer mon SQL insert into...

    quelqu'un aurait une idée?

    Merci!

  2. #2
    Membre expérimenté
    Avatar de minot83
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2006
    Messages
    972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 972
    Points : 1 430
    Points
    1 430
    Par défaut
    Bonjour,

    je pense qu'il te faut une table de liaison, qui détiendra 2 clé primaires :
    NUM_Tache et NUM_projet.

    Bien-sûr si une tâche peut concerner plusieurs projets, sinon un champ NUM_Projet dans la table Taches suffit.

  3. #3
    Membre habitué
    Homme Profil pro
    Apprendre
    Inscrit en
    Avril 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations professionnelles :
    Activité : Apprendre
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 147
    Points : 175
    Points
    175
    Par défaut
    Merci Minot83,

    Je ne suis pas sur de comprendre la table de liaison (Bon je laisse planer un doute, mais je ne pige pas comment par la suite je pourrais appliquer une tâches pour chaque num_projet)

    N'y aurait-il pas une manière plus directe?

    Mon idée de base, c'était d'utiliser un genre de séquence SQL dans ma liste de tâches (Ou Num_projet existe, mais sour la forme id_projet de type texte):

    docmd.runsql "select distinct id_projet from tâches"
    Et de cette liste, pour chaque id_projet faire un:
    docmd.runsql "insert into tâches (id-projet,tâches,...) values (id_projet,nom de la tâche,....)"

    Est-ce possible?

    Je suis bien ouvert également à une table de liaison, mais je ne vois pas comment l'appliquer.

    Merci de votre aide!

  4. #4
    Membre habitué
    Homme Profil pro
    Apprendre
    Inscrit en
    Avril 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Canada

    Informations professionnelles :
    Activité : Apprendre
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 147
    Points : 175
    Points
    175
    Par défaut
    Bonjour,

    Mon problème est résolu.

    Voici mon code, si jamais quelqu'un pourrait le trouver utile:

    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
    DoCmd.SetWarnings False
    Dim db As Database
    Dim rs As Recordset
    Dim compte As Integer
    Dim i As Integer
    i = 1
    compte = DCount("[ID projet]", "projets")
    MsgBox compte
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("projets")
    DoCmd.GoToRecord , , acFirst
    typep = Left([ID projet], 1)
    For i = 1 To compte
    If typep = "a" Or typep = "s" Or typep = "x" Or typep = "i" Then
    DoCmd.RunSQL "insert into tâches (id, tâches, responsable, section, ssection) VALUES ([id projet], [txt_tâches], [liste_responsable],[liste_section], [liste_ss])"
    DoCmd.GoToRecord , , acNext
    typep = Left([ID projet], 1)
    Else
    DoCmd.GoToRecord , , acNext
    typep = Left([ID projet], 1)
    End If
    Next
    DoCmd.RunSQL "delete * from tâches where [id]='A - VISION STRATÉGIQUE' and [tâches]='" & txt_tâches & "' "
    DoCmd.RunSQL "delete * from tâches where [id]='A - divers' and [tâches]='" & txt_tâches & "' "
    If liste_blank = "blank- A" Then
    DoCmd.RunSQL "insert into tâches (id, tâches, responsable, section, ssection) VALUES ('BLANK- A', [txt_tâches], [liste_responsable],[liste_section], [liste_ss])"
    Else
    If liste_blank = "blank- s" Then
    DoCmd.RunSQL "insert into tâches (id, tâches, responsable, section, ssection) VALUES ('BLANK- S', [txt_tâches], [liste_responsable],[liste_section], [liste_ss])"
    Else
    If liste_blank = "blank- x" Then
    DoCmd.RunSQL "insert into tâches (id, tâches, responsable, section, ssection) VALUES ('BLANK- X', [txt_tâches], [liste_responsable],[liste_section], [liste_ss])"
    End If
    End If
    End If
    DoCmd.SetWarnings True
    Le code fonctionne, en autant que j'ai le recordset ouvert dans un formulaire dédié.

    Par contre, je n'ai jamais été en mesure d'effectuer le code en me basant sur un EOF. J'ai donc appliqué un comptage des enregistrements, passé le focus sur le premier enregistrement et puis fais l'opération de l'enregistrement 1 jusqu'à ce nombre en effectuant un movenext après chaque opération

    Merci

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

Discussions similaires

  1. [MFC/ADO] Pb insertion d'enregistrement ?
    Par ddaime dans le forum MFC
    Réponses: 2
    Dernier message: 08/06/2006, 14h28
  2. Insertion d'enregistrement dans un fichier XML
    Par davestar dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 02/04/2006, 18h22
  3. Réponses: 1
    Dernier message: 30/11/2005, 14h44
  4. insertion d'enregistrement avec MySQL Administrator
    Par Lady_jade dans le forum Outils
    Réponses: 1
    Dernier message: 08/09/2005, 17h04
  5. [DW MX2004] formulaire d'insertion d'enregistrement
    Par jiraya_sama dans le forum Dreamweaver
    Réponses: 2
    Dernier message: 30/12/2004, 18h54

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