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

IHM Discussion :

Ajouter tout les enregistrements d'un sous-formulaire à une table [AC-2010]


Sujet :

IHM

  1. #1
    Membre régulier
    Homme Profil pro
    Technicien Géomatique
    Inscrit en
    Janvier 2016
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien Géomatique

    Informations forums :
    Inscription : Janvier 2016
    Messages : 181
    Points : 101
    Points
    101
    Par défaut Ajouter tout les enregistrements d'un sous-formulaire à une table
    Bonjour,

    Je souhaite ajouter tout les enregistrements d'un sous-formulaire à une table. Une requête INSERT ça va, mais quel est le meilleur moyen pour passer tout les enregistrements et les ajouter dans une table.

    Dois-je utiliser un recordset ? (si oui je suis dans la mauvais forum).

    Merci d'avance!

  2. #2
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Salut
    Je suppose que ton sform est lié au form via les champs Pere/Fils (id_pk = champ Pere - id_fk = champ Fils)
    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
    Private Sub btncopy_Click()
    Dim dbs As DAO.Database
    Dim rst As DAO.Recordset
    Dim strSql As String
     
    Set dbs = CurrentDb
    'requete source du sform
    strSql = "SELECT * FROM tbl_source WHERE id_fk = " & Me.id_pk
    Set rst = dbs.OpenRecordset(strSql)
    'on test si le recorset n est pas vide
    If Not rst.EOF Then
        'tant qu il n est pas vide
        Do While Not rst.EOF
            'recuperation des valeurs des contrôles qui composent ton sform
            sId_fk = rst.Fields("id_fk").Value
            sChamp1 = rst.Fields("Champ1").Value
            sChamp2 = rst.Fields("Champ2").Value
     
            'execution requete insertion
            dbs.Execute "INSERT INTO tbl_cible ([id_fk], [Champ1], [Champ2])" _
            & " VALUES ( " & sId_fk & " , '" & sChamp1 & "', #" & sChamp2 & "# )", dbFailOnError
        'tu passes a l'enregistrement suivant
        rst.MoveNext
        Loop
    End If
    End Sub
    Rappel :
    " & sChamp1 & " si numérique'" & sChamp1 & "' si string#" & sChamp1 & "# si date
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  3. #3
    Membre régulier
    Homme Profil pro
    Technicien Géomatique
    Inscrit en
    Janvier 2016
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien Géomatique

    Informations forums :
    Inscription : Janvier 2016
    Messages : 181
    Points : 101
    Points
    101
    Par défaut
    Wow merci beaucoup

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sId_fk = rst.Fields("id_fk").Value
    sChamp1 = rst.Fields("Champ1").Value
    sChamp2 = rst.Fields("Champ2").Value
    sID_fk, sChamp1, sChamp2 ce sont des variables string ?

  4. #4
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Sont des variables sans distinction de type.
    L21 de la proc
    sId_fk pas de symboles qui l'encadre, donc numérique
    sChamp1 encadré par de simples cotes, donc string
    sChamp2 encadré par des dièses, donc date
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  5. #5
    Membre régulier
    Homme Profil pro
    Technicien Géomatique
    Inscrit en
    Janvier 2016
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien Géomatique

    Informations forums :
    Inscription : Janvier 2016
    Messages : 181
    Points : 101
    Points
    101
    Par défaut
    Merci de la précision!

  6. #6
    Membre régulier
    Homme Profil pro
    Technicien Géomatique
    Inscrit en
    Janvier 2016
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien Géomatique

    Informations forums :
    Inscription : Janvier 2016
    Messages : 181
    Points : 101
    Points
    101
    Par défaut
    Salut Hyperion,

    J'ai quelques complications ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Set dbs = CurrentDb
    'requete source du sform
    'strSql = "SELECT * FROM tbl_source WHERE id_fk = " & Me.id_pk
    'Set rst = dbs.OpenRecordset(strSql)
    'on test si le recorset n est pas vide
    La requête source de mon formulaire est basée sur une requête et non une table, comment dois-je procéder ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    strSql = "SELECT * FROM Animal-Medaille WHERE RefProprio = " & Me.RefProprio & ""
     
    Set rst = dbs.OpenRecordset(strSql)
    J'obtiens Erreur de syntaxe dans la clause FROM.

  7. #7
    Membre régulier
    Homme Profil pro
    Technicien Géomatique
    Inscrit en
    Janvier 2016
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien Géomatique

    Informations forums :
    Inscription : Janvier 2016
    Messages : 181
    Points : 101
    Points
    101
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    'requete source du sform
    Set rst = CurrentDb.OpenRecordset("Animal-Medaille", dbOpenDynaset)


    tout simplement.. je remet RÉSOLU

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

Discussions similaires

  1. [AC-97] Compter les enregistrements d'un sous formulaire
    Par Milyshyn76 dans le forum VBA Access
    Réponses: 1
    Dernier message: 01/06/2010, 16h38
  2. Réponses: 2
    Dernier message: 13/05/2008, 13h16
  3. Réponses: 2
    Dernier message: 02/06/2007, 17h21
  4. Compter les enregistrements d'un sous-formulaire
    Par djamy dans le forum Access
    Réponses: 6
    Dernier message: 06/07/2006, 21h18
  5. trier les enregistrements dans un sous-formulaire
    Par moicats dans le forum Access
    Réponses: 3
    Dernier message: 30/03/2006, 11h03

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