none
Importer des fichiers de formats differents dans une table RRS feed

  • Question

  • Bonjour,

    J'aimerais pouvoir importer au choix des fichiers de format csv ou excel dans une table.

    en utilisant un "Dialog Box".

    j'essayé d'adapter le code suivant mais evidement il ne fonctionne pas.

    Merci de votre aide

    Dante

     J'utilise la version 2003

    Private Sub Command10_Click()
        On Error GoTo ErrTrap
        Dim filename As String
        Dim BD As DAO.Database
        Set BD = CurrentDb
        Dim tb As DAO.TableDef
        MsgBox "Please select your file.", vbInformation, ("My application")
        filename = "csv Files (*.csv); *.xls"
        If filename = "" Then Exit Sub
        DoCmd.SetWarnings False
        DoCmd.RunSQL ("DELETE * FROM my_table")
        If filename = ”.csv” Then
            DoCmd.TransferText acImportDelim, "my_spec Import Specification", "my_table", filename, -1
            MsgBox "My Import was done Successful!", vbInformation, ("My Application")
        Else
            DoCmd.TransferSpreadsheet acImport, 3, "my_table", filename, True, "A1:G12"
            MsgBox "My Import was done Successful!", vbInformation, ("My Application")
        End If
    ExitPoint:
        On Error GoTo 0
        Exit Sub
    ErrTrap:
        MsgBox Err.Number & " - " & Err.Description
        Resume ExitPoint
    End Sub




    mardi 3 avril 2012 16:13

Toutes les réponses

  • Bonjour,

    Ce code est d'une part incomplet ou il manque en plus un End If que j'ai ajouté...

    Je ne comprends pas trop ce à quoi vous voulez aboutir car il y a de grosse confusions.

    • Vous effacez une table puis vous importez un fichier qui ne porte pas de nom.
    • Vous spécifiez un script d'importation "my_spec Import Specification" ; existe-il ? 
    • Le bloc de code " If filename = ".csv Then" vérifie que le nom de votre fichier qui n'a été défini nulle part porte le nom ".csv"...

      Esayez d'être plus explicite car je ne pourrais vous aider que si vous écrivez ce que vous souhaitez faire...



    Argy

    mercredi 4 avril 2012 13:13
    Modérateur
  • Bonjour,

    Merci de porter attetion a cette requete, au fait ce code etait juste un brouillon afin de donner une image

    de ce que je voulait (ca n'a pas marché :-)

    Je veux simplement vider une table avant de remettre des nouvelles données a partir d'un fichier csv ou Xls

    en utilisant un boite de dialogue... Application.FileDialog(1)

    * pour filter et definir le nom , peut etre avec:

              .Filters.Add "CSV files", "*.csv"

             .Filters.Add "Excel files", "*.xls"

            If .Show Then

                filename = .SelectedItems(1)

                     ......

    * et quelque chose comment ca pour verifier le fichier

      If Right(filename, 3) = "csv" Then

    * J'ai déja definie les specification d'importation pour les fichiers csv

    J'espere que ceci est un peu plus clair, merci de votre aide

    Dante

    mercredi 4 avril 2012 14:54
  • Oui, je m'en suis douté...

    Donc qu'attendez-vous du forum en fait, une procédure corrigée ou bien des conseils pour aboutir à vos fins ?

    Qu'est qui ne marche pas en fait ? Est votre script d'importation reflète bien l'importation attendue ?


    Argy

    mercredi 4 avril 2012 15:12
    Modérateur
  • Au fait le deux, car je n'arrive pas a imbriquer ce code correctement et aussi me suggerer des codes afin

    de reperer des eventuels erreurs ex. si l'usager selecttionne le mauvais fichier excel, etc .

    Merci

    Dante

    mercredi 4 avril 2012 15:23