Supprimer une table avec code VBA et importer

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

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Donc dans ce cas, tu fais :

    db.TableDefs.Delete "table1"
    1. Modérateur
      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...
      1. Modérateur
        Bon, en même temps, le titre parle d'importer et le message d'exporter...
        Faut savoir ! ;-)
      2. 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"
      3. Modérateur
        @GuestCamC'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
    2. 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
      1. Modérateur
        Une session ACCESS est rattachée à UNE seule base, donc le code VBA s'applique sur la base courante...
        1. 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)
          1. Modérateur
            tu es connecté comment sur la 'base distante' : attachement tables, odbc ?
        2. 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... :-(