Supprimer une table avec code VBA et importer

GuestCam Messages postés 56 Statut Membre -  
blux Messages postés 2051 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
j'aimerais savoir comment supprimer une table dans une base de données avec le code VBA et exporter une table toujours avec VBA.
Merçi d'avance pour votre aide.
Configuration: Windows 2000
Internet Explorer 6.0

7 réponses

  1. blux Messages postés 2051 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Donc dans ce cas, tu fais :

    db.TableDefs.Delete "table1"
    2
  2. blux Messages postés 2051 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Salut,

    pour supprimer une table, il faut lancer du SQL avec DROP TABLE :

    DoCmd.RunSql ("DROP TABLE TOTO")

    Pour exporter, on peut utiliser :

    DoCmd.OutputTo
    DoCmd.TransferText...

    Tout dépend ce que tu veux exporter et en quel format...
    0
    1. blux Messages postés 2051 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      Bon, en même temps, le titre parle d'importer et le message d'exporter...
      Faut savoir ! ;-)
      0
    2. GuestCam Messages postés 56 Statut Membre
       
      toutes mes excuses. Il s'agit bien de l'exportation d'une table d'un fichier A.mdb vers un autre fichier B.mdb.

      Mais quand je lance le code VBA, Access me demande le format, je ne comprend pas pourquoi. Et ça ne fonctionne pas.une idée?
      voiçi le code que j'ai écrit:

      DoCmd.OutputTo acOutputTable, "OPERATION", , "\\Serveur\Z\@-DATAS\@GRATOS\SAISIE_GRA\SAISIE_EXPLE.mdb"
      0
      1. blux Messages postés 2051 Date d'inscription   Statut Modérateur Dernière intervention   3 455 > GuestCam Messages postés 56 Statut Membre
         
        C'est normal, la fonction outputto sert à créer un fichier à plat pour une application externe, il te demande donc le format...

        Si tu veux copier un objet ACCESS vers une base ACCESS, utilise plutôt docmd.copyobject
        0
  3. GuestCam Messages postés 56 Statut Membre
     
    merçi beaucoup, j'essaie tout de suite.
    0
  4. Raph04 Messages postés 182 Statut Membre 24
     
    Bonjour,

    Et si j'ai plusieurs base d'ouverte qui ont des tables avec des nom commun au deux base (dans les deux bases il ya une table nommé "Contenu" par exemple).
    Comment je fait pour choisir sur quel base je lance mon DoCmd.RunSql ("DROP TABLE Contenu") ?
    Ou comment choisir de lancer le "DoCmd.DeleteObject acTable, tableName" sur la bonne base ?

    Merci ;-)
    Raph
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. blux Messages postés 2051 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Une session ACCESS est rattachée à UNE seule base, donc le code VBA s'applique sur la base courante...
    0
  7. Raph04 Messages postés 182 Statut Membre 24
     
    Oui c'est bien ce qu'il me semblais en effet. Mais merci de confirmer mes hypothèse :-)

    Mais comment puis-je supprimer la table dans ma base distante depuis la base sur laquelle je lance le code ?
    (J'avais un peu mieux expliqué le problème sur ce post aussi : https://forums.commentcamarche.net/forum/affich-15700733-gestion-docmd-vba-access#1)
    0
    1. blux Messages postés 2051 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      tu es connecté comment sur la 'base distante' : attachement tables, odbc ?
      0
  8. Raph04 Messages postés 182 Statut Membre 24
     
    Heu bah je l'ouvre dans le code VBA :

    Dim db As DAO.Database
    Dim ws As DAO.Workspace
    
    Set ws = DBEngine.Workspaces(0)
    
    ' Ouverture de la base de données
    Set db = ws.OpenDatabase(fdFiles, False, False, "MS Access;PWD=XXXX")


    Je serais tenté de dire en DAO, mais je sais pas si ça fait du sens ce que je dit là... :-s

    Sinon j'ai bien essayer de faire les truc du style

    db.DeleteObject acTable, tableName

    Mais ça marche pas... :-(
    0