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

Access Discussion :

Importation ODBC : Pilote ISAM introuvable...


Sujet :

Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 310
    Points : 139
    Points
    139
    Par défaut Importation ODBC : Pilote ISAM introuvable...
    Bonjour à tous,

    Pour commencer je suis sous Access 97 (et oui y'en a encore ;-))

    Mon problème est le suivant :
    Régulièrement j'importe des données externes dans une db via Fichier\DOnnées Externes\Importer\Type de fichiers : Base de données ODBC\Source machine : GGA60\...puis je prends ce dont j'ai besoin.
    Pour automatiser cela je voulais soit faire une macro puisque le TransférerBase existe soit un code...
    Dans ma macro j'ai donc mis :
    Action :TransférerBase
    Type transfert :Importation
    Type base :Base de données ODBC
    Nom base : GGA60 (le pb est peut-être là où il faudrait la chaine complète, mais je ne sais comment la trouver !)
    Source : none.ADRES
    Destination :none.ADRES (je souhaite remplacer la 1ère)
    Structure seulement : Non

    QUand je lance la macro, j'ai l'erreur "Pilote ISAM introuvable" (en "manuel" tout est ok.

    Quelles pistes voyez-vous que je dois exeplorer ?

    Bonne journée à tous

  2. #2
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Salut,
    Je ne suis pas très fort sur ce sujet mais as tu fait une recherche sur le forum ???
    Il y a déjà eu des problèmes avec ce message d'erreur.

    Sinon as tu essayé en mettant le chemin complet de la base ??

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 62
    Points : 41
    Points
    41
    Par défaut
    voici une astuce pour avoir le chemin complet de connexion à une base ODBC:
    fait d'abord une liaisons vers une de tes tables ODBC en suivant : Fichier -> données externes -> lié des tables ....

    ensuite essai ca sur une des tables liées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox CurrentDb.TableDefs("NomTable").connect

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 310
    Points : 139
    Points
    139
    Par défaut
    Citation Envoyé par Kikof
    Salut,
    Je ne suis pas très fort sur ce sujet mais as tu fait une recherche sur le forum ???
    Il y a déjà eu des problèmes avec ce message d'erreur.

    Sinon as tu essayé en mettant le chemin complet de la base ??
    oui j'avais fait une recherche mais justement il n'y avait pas eu de réponses satisfaisante...
    Après avoir pas mal cherché sur MS pour le pilote introuvable j'ai enfin trouvé la chaine de caractère complète qui m'intéressait et cela fonctionne :-)

    par contre je mets le même nom en destination et il ne me remplace pas la table existante déjà présente mais incrémente l'ancienne avec un "1"
    j'ai donc mis une 2ème action qui consiste à renommer la nouvelle importation pour écraser la 1ère table mais il me demande si je suis sur de vouloir renommer à chaque fois...comment ne pas demander la confirmation ?

    -> j'ai trouvé, suffit que je supprime la 1ère avant d'importer la 2ème, chui ... moi ;-)

    merci à tous...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 62
    Points : 41
    Points
    41
    Par défaut
    pourquoi ne pas supprimer avant de lancer l'attachement des tables
    un truc dans ce genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    currentdb.tabledefs("Nomtable").delete
    docmd.transferdatabase, aclink .....

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 310
    Points : 139
    Points
    139
    Par défaut
    Citation Envoyé par nbelg27
    pourquoi ne pas supprimer avant de lancer l'attachement des tables
    un truc dans ce genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    currentdb.tabledefs("Nomtable").delete
    docmd.transferdatabase, aclink .....
    c'est nickel, j'ai donc fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub cmdImportProd_Click()
    DoCmd.DeleteObject acTable, "none_NMCLI"
    DoCmd.TransferDatabase acImport, "Base de données ODBC", "ODBC;DSN=GGA60;", acTable, "none.NMCLI", "none_NMCLI"
    End Sub
    Quand je lis l'aide d'Access ils disent clairement:
    "Note Bien que vous puissiez utiliser la méthode TransferDatabase en Visual Basic pour attacher des tables, il est préférable d'utiliser plutôt les objets d'accès aux données (DAO). Pour créer une attache au moyen de DAO, utilisez la propriété Connect de l'objet TableDef."

    Qu'est-ce que cela donnéerait dans mon cas ?

    Merci à tous...

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 62
    Points : 41
    Points
    41
    Par défaut
    Attention à cet argument
    un DSN est stocké en local, ce qui veut que ca ne marchera pas sur un autre PC,

    il faut utiliser le chaine de connexion complete à la palce du DSN

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 310
    Points : 139
    Points
    139
    Par défaut
    Citation Envoyé par nbelg27
    Attention à cet argument
    un DSN est stocké en local, ce qui veut que ca ne marchera pas sur un autre PC,

    il faut utiliser le chaine de connexion complete à la palce du DSN
    les quelques utilisateurs qui peuvent importer sont tous paramétrés de la même manière...mais je vais essayer de la trouver !!!

    Je viens de tester ça me renvoi ODBC;DSN=GGA60;DATA= rien de plus

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 62
    Points : 41
    Points
    41
    Par défaut
    Voici un exemple de chaine de connexion:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      strcnx = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                "Jet OLEDB:System database=" & DBEngine.SystemDB & ";" & _
                "Data Source=" & BD & ";" & _
               "user id=" & StrUser & ";" & _
               "Password=" & StrPwd & ""
    BD : Cgemin complet vers la base (c:\mabase.mdb)
    StrUser : Nom de lu'tilisateur (tu peux utliser : admin)
    StrPwd : Mot de passe de l'utilisateur (tu peux laisser vide si tu utilise admin)

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 310
    Points : 139
    Points
    139
    Par défaut
    Citation Envoyé par nbelg27
    Voici un exemple de chaine de connexion:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      strcnx = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                "Jet OLEDB:System database=" & DBEngine.SystemDB & ";" & _
                "Data Source=" & BD & ";" & _
               "user id=" & StrUser & ";" & _
               "Password=" & StrPwd & ""
    BD : Cgemin complet vers la base (c:\mabase.mdb)
    StrUser : Nom de lu'tilisateur (tu peux utliser : admin)
    StrPwd : Mot de passe de l'utilisateur (tu peux laisser vide si tu utilise admin)
    j'avoue que j'ai qq difficultés !
    ça donnerait quoi avec mon "ODBC;DSN=GGA60;""

    Merci

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 310
    Points : 139
    Points
    139
    Par défaut Simplification du code...
    Re-bonjour à tous ;-)

    Voilà j'arrive donc à ce code, qui est un peu fastidieux je trouve...
    Quels sont vos propositions pour l'améliorer, l'optimiser, le simplfier,...en essayant de gérer les erreurs si il y a un plantage à un moment donné (ex. impossible de renommer la table car déjà ouverte ailleurs,...)

    Je suis preneur de toute idée ;-)

    Merci à tous :-)


    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
    Private Sub fraImportProd_Click()
    'Mise en place du sablier
        DoCmd.Hourglass True
     
            'Lancement de l'importation de la base REELLE
            DoCmd.TransferDatabase acImport, "Base de données ODBC", "ODBC;DSN=GGA60;", acTable, "none.ARTST", "none_ARTST"
                ' Suppression de la table déjà présente
                 DoCmd.DeleteObject acTable, "none_ARTST"
                     ' Renommage de la table importée
                          DoCmd.Rename "none_ARTST", acTable, "none_ARTST1"
     
            DoCmd.TransferDatabase acImport, "Base de données ODBC", "ODBC;DSN=GGA60;", acTable, "none.CDIPP", "none_CDIPP"
                 DoCmd.DeleteObject acTable, "none_CDIPP"
                          DoCmd.Rename "none_CDIPP", acTable, "none_CDIPP1"
     
            DoCmd.TransferDatabase acImport, "Base de données ODBC", "ODBC;DSN=GGA60;", acTable, "none.HALOA_DET", "none_HALOA_DET"
                 DoCmd.DeleteObject acTable, "none_HALOA_DET"
                          DoCmd.Rename "none_HALOA_DET", acTable, "none_HALOA_DET1"
     
            DoCmd.TransferDatabase acImport, "Base de données ODBC", "ODBC;DSN=GGA60;", acTable, "none.PLMAT", "none_PLMAT"
                 DoCmd.DeleteObject acTable, "none_PLMAT"
                          DoCmd.Rename "none_PLMAT", acTable, "none_PLMAT1"
     
        DoCmd.Hourglass False
    End Sub
    -> le sablier ne fonctionne pas je sais pas pourquoi, j'aimerais mettre un message d'attente pendant l'exécution, ou même une progressbar mais je sais pas comment faire !

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

Discussions similaires

  1. Msg d'erreur "Pilote ISAM Introuvable"
    Par loverdev dans le forum VB.NET
    Réponses: 2
    Dernier message: 23/05/2007, 08h26
  2. Pilote ISAM introuvable pour accés BDD Access
    Par RodEpsi dans le forum Delphi
    Réponses: 11
    Dernier message: 07/04/2007, 17h58
  3. [vb6][access 2003]pilote isam introuvable
    Par sehing dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 16/01/2007, 12h12
  4. Pilote ISAM introuvable.
    Par noname_971 dans le forum Access
    Réponses: 2
    Dernier message: 21/10/2005, 16h51
  5. [VB.NET] pilote ISAM introuvable
    Par cc85 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 10/04/2005, 23h24

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