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

VBA Access Discussion :

Type mismatch / Item not found in the collection.


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 34
    Par défaut Type mismatch / Item not found in the collection.
    Bonjour,

    Merci a jpcheck pour la macro suivante qui me permet à partir d’une table de générer un fichier xml contenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <NomDuChamp>Contenu du champ</NomDuChamp>
    Voici la macro :
    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
    Sub export2xml()
     
    Dim RS As Recordset
    Dim strSQL As String
    Dim Result As String
    Dim i As Integer
    Dim debut As String
    Result = ""
     
    strSQL = "SELECT * FROM MaTable;"
    Set RS = CurrentDb.OpenRecordset(strSQL)
    Do Until RS.EOF '1.
        For i = 1 To RS.Fields.Count
            If Len(RS.Fields(i).Value) > 0 Then 'on s'assure qu'il existe du texte dans le champ (petit 2 de ta question)
                Result = Result & "<" & RS.Fields(i).Name & ">" & RS.Fields(i).Value & "</" & RS.Fields(i).Name & ">" '2.
            End If
       Next i
    Loop
     
    'FonctionPourEcrireDansUnFichier (Result, NomduFichierXML) '3.
    'Open "E:\MonFichier.xml" For Output As #1
    '  Print #1, a.Result
    'Close #1
     
    'm = MsgBox("Fichier généré", 0, "Title")
     
    End Sub
    Elle me donne le message d’erreur suivant

    Message : Type mismatch
    Sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set RS = CurrentDb.OpenRecordset(strSQL)





    De nouveau suite au conseil de jpcheck j’ai modifié
    Par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim RS as DAO.RecordSet
    En activant la Référence « Microsoft DAO... »

    Et ça me donne : Item not found in the collection.
    Avec cette ligne là en erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Len(RS.Fields(i).Value) > 0 Then

    Si vous avez des idées, n'hésitez pas.

    Merci d'avance,

  2. #2
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonjour,

    les indices de la collection Fields vont de 0 à RS.Fields.Count-1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        For i = 0 To RS.Fields.Count - 1
            .....
        Next i
    A+

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 34
    Par défaut
    Bonjour,
    Effectivement, ça marche mieux comme ça, mais il a fallu aussi retirer le
    Do Until RS.EOF
    ...
    Loop


    Voici la macro finale :
    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
    Sub export2xml2()
     
    Dim RS As DAO.Recordset
    Dim strSQL As String
    Dim Result As String
    Dim i As Integer
    Dim debut As String
    Result = ""
     
     
     
    strSQL = "SELECT * FROM tbl_goldtools_dictionary_intro;"
    Set RS = CurrentDb.OpenRecordset(strSQL)
    'Do Until RS.EOF '1.
        For i = 1 To RS.Fields.Count - 1
            If Len(RS.Fields(i).Value) > 0 Then 'on s'assure qu'il existe du texte dans le champ (petit 2 de ta question)
                Result = Result & "<" & RS.Fields(i).Name & ">" & RS.Fields(i).Value & "</" & RS.Fields(i).Name & ">" '2.
            End If
        Next
    'Loop
     
    'FonctiondeTonChoixPourEcrireDansUnFichier (Result, NomduFichierXML) '3.
     
    m = MsgBox(Result, 0, "OK!")
     
    End Sub
    Merci à tous pour le coup de main,
    Bonne journée

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/08/2009, 17h26
  2. Réponses: 3
    Dernier message: 09/04/2009, 17h38
  3. Réponses: 15
    Dernier message: 18/02/2009, 18h53
  4. Eclipse 3.4.0: type error class not found : XrayLogger
    Par Ouaich75 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 13/10/2008, 15h31
  5. [XMLRAD.COM] Not found on the toile
    Par Jean_Benoit dans le forum XMLRAD
    Réponses: 1
    Dernier message: 10/06/2006, 19h37

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