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 :

Pb INSERT INTO Element non trouvé dans cette collection [AC-2003]


Sujet :

Requêtes et SQL.

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2009
    Messages : 313
    Par défaut Pb INSERT INTO Element non trouvé dans cette collection
    Bonjour,

    J'essaye d'effectuer des ajouts dans une table, en employant la requête suivante:
    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 Commande42_Click()
    Dim sql As String
    Dim rst As DAO.Recordset, fields As DAO.fields
     
        DoCmd.OpenQuery "rqyPurgeTblADV"
        'DoCmd.OpenQuery "rqyRptAdv"
        'Ouverture du recordset
        Set rst = CurrentDb.OpenRecordset(Forms.frmConsultationADV.Sfrm.Form.RecordSource)
        If Not rst.EOF Then 'si il y a des enregistrements
            rst.MoveFirst 'positionnement sur le 1er
            While Not rst.EOF 'Boucle pour lire chaque enregistrement
            DoCmd.SetWarnings False
            'construire les sql d'une requête d'ajout
            sql = "INSERT INTO tblRptExcelADV ( ADV, [OF] )"
            sql = sql & " VALUES ('" & rst.fields(" & [v representant] & ").Value & "','" & rst.fields(" & [OF] & ").Value & "')"
     
            DoCmd.RunSQL (sql)
            rst.MoveNext
            Wend
            DoCmd.SetWarnings True
        End If
        Call CreateExcelChart
            Application.Quit
        End If
    End Sub
    Et j'ai l'erreur 3065: Elément non trouvé dans cette collection.
    Le recordsource vient d'un sous formulaire

    Quelqu'un a t-il une idée de mon erreur?
    Merci d'avance de votre aide.

  2. #2
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    3 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 040
    Par défaut
    Bonjour,
    Tu aimes la syntaxe compliquée :
    1 - Déjà:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Set rst = Forms.frmConsultationADV.Sfrm.Form.RecordsetClone
    2 - ensuite :
    ... rst.fields(" & [v representant] & ").Value & "','" & rst.fields(" & [OF] & ").Value & "')"
    les valeurs de [v representant] et OF sont des noms de colonnes de rst ???

    3 - ensuite il faut blinder les valeurs par la fonction NZ en cas de valeur nulle


  3. #3
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2009
    Messages : 313
    Par défaut
    Bonjour,

    J'ai trouvé la solution.
    Au lieu de mettre le nom du champ, mettre le n° du champ.
    En sachant que le 1er champ débute à 0
    Donc la solution est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rst.fields(0).value ' pour le 1er champ
    Voilà.

  4. #4
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2009
    Messages : 313
    Par défaut
    Bonjour micniv,

    Excuse moi, je n'ai pas vu ta réponse.
    J'étais en train de mettre ma résolution.

    Tu aimes la syntaxe compliquée :
    J'ai appris a faire comme ça.
    Le recordSource provient d'une autre requête, et le résultat se trouve dans le Sous Formulaire.


    les valeurs de [v representant] et OF sont des noms de colonnes de rst ???
    Effectivement, les valeurs des 2 champs sont des noms de colonnes de rst.
    C'est comme ça que j'ai trouvé la solution.

    Qu'entends-tu par
    3 - ensuite il faut blinder les valeurs par la fonction NZ en cas de valeur nulle
    Tu sais, je suis un jeune débutant (3 mois d'expérience), donc je ne comprends pas tout.
    J'apprends grace à des sites comme celui-ci et de vos conseils qui me sont très précieux.

    Merci
    Christian

  5. #5
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    3 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 040
    Par défaut
    En clair, pour se mettre à l'abri des valeurs nulles:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
     sql = "INSERT INTO tblRptExcelADV ( ADV, [OF] )" _
            & " VALUES ('" & Nz(rst(0)) & "','" & Nz(rst(1)) & "')"
    ...

  6. #6
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2009
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2009
    Messages : 313
    Par défaut
    Merci pour l'info.

    Je vois que tu ne mets pas FIELDS.
    Ce n'est pas une obligation par rapport à mon post?

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

Discussions similaires

  1. [AC-2007] Erreur d'éxécution "3265":Element non trouvé dans cette collection
    Par b3nsouss dans le forum VBA Access
    Réponses: 1
    Dernier message: 03/06/2015, 16h00
  2. [AC-2003] Element non trouvé dans la collection
    Par moilou2 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 18/08/2009, 11h38
  3. Réponses: 3
    Dernier message: 02/03/2008, 17h08
  4. bdd : erreur 3265 élément non trouvé dans cette collection
    Par morgan47 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 10/07/2006, 09h52
  5. Erreur de "Élément non trouvé dans cette collection"
    Par charleshbo dans le forum Access
    Réponses: 4
    Dernier message: 04/05/2006, 18h42

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