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 :

[Vba Access] Drop ou rename d'une table sur BdD Distante


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 11
    Points : 11
    Points
    11
    Par défaut [Vba Access] Drop ou rename d'une table sur BdD Distante
    Bjr, nouveau sur le fil, mais lecteur assidu des FAQs
    Mon problème est le suivant
    je dois, depuis une BdD, gérer des actions sur des tables dans une autre BdD (accessible sur mon réseau)
    je sais copier des tables, les lier, faire des updates, exporter des tables mais si je veux faire un alter table, un drop table ou un rename je bloque.
    Est ce possible à faire, et si oui comment.
    Denis

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 11
    Points : 11
    Points
    11
    Par défaut Réponse fourni par 3 stone (MVP)
    Regarde ceci :
    http://access.fr.free.fr/articles.php?lng=fr&pg=42

    légèrement modifiée pour passer la BdD et la table en paramètre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Function DeleteTableExt(ByVal strDb As String, ByVal strTbl As String)
    Dim db As Database
    Set db = OpenDatabase(strDb)
    db.TableDefs.Delete strTbl
    db.Close: Set db = Nothing
    End Function

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 11
    Points : 11
    Points
    11
    Par défaut Solution diverses rename, drop, Nbre de champ, déplacement
    ' pour renommer une champ sur une table distante
    '-----
    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
    Public Sub RenommerChampDAO(ByVal strBase As String, ByVal strTbl As String, ByVal NchOld As String, ByVal NchNew As String)
    On Error GoTo err:
    Dim db As DAO.Database
    Dim tabb As DAO.TableDef
    Dim chp As DAO.Field
    Set db = OpenDatabase(strBase)
    Set tabb = db.TableDefs(strTbl)
    Set chp = tabb.Fields(NchOld)
    chp.Name = NchNew
    Set chp = Nothing
    Set tabb = Nothing
    Set db = Nothing
    Exit Sub
    err:
    MsgBox "L'action  renommer le champ a échouée"
    End Sub
    '----
    'lancement par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call RenommerChampDAO(n_BdD, n_tabl, n_ch_old, n_ch_new)
    '-----
    'pour supprimer une table dans une BdD distante
    '-----
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Function DeleteTableExt(ByVal strDb As String, ByVal strTbl As String)
    Dim db As Database
    Set db = OpenDatabase(strDb)
    db.TableDefs.Delete strTbl
    db.Close: Set db = Nothing
    End Function
    '-----
    ' pour lancer la suppression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call DeleteTableExt(n_BdD, n_tabl)
    '----
    'pour compter le nbre de champ d'une table distante
    '----
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Function NbDeChamp2(ByVal strDb As String, ByVal strTbl As String) As Integer
    On Error GoTo err
    Dim db As DAO.Database
    Dim tabb  As DAO.TableDef
    Set db = OpenDatabase(strDb)
    Set tabb  = db.TableDefs(strTbl )
    NbDeChamp2 = tabb .Fields.Count
    err:
    End Function
    '-----
    ' pour lancer le comptage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox NbDeChamp2(n_BdD, n_tabl)
    '-----
    'pour déplacer un champ dans une BdD distante
    '----
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub deplace_ch_OK(ByVal strBase As String, ByVal strTbl As String, ByVal NchOld As String, ByVal pos As Integer)
    ' attention le compte commence à 0
    On Error GoTo err:
    Dim db As DAO.Database
    Dim tabb As DAO.TableDef
    Dim chp As DAO.Field
    Set db = OpenDatabase(strBase)
    Set tabb = db.TableDefs(strTbl)
    Set chp = tabb.Fields(NchOld)
    chp.OrdinalPosition = (pos)
    Exit Sub
    err:
    MsgBox "L'action déplacer le champ a échouée"
    End Sub
    '----
    'pour lancer le déplacement
    '----
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call deplace_ch_OK(n_BdD, n_tabl, n_chp, pos)
    '----

    Bon usage

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

Discussions similaires

  1. [AC-2000] VBA, importation particulière fichier Excel vers une table access
    Par ElCyril dans le forum VBA Access
    Réponses: 2
    Dernier message: 08/12/2010, 01h05
  2. Réponses: 2
    Dernier message: 09/01/2007, 19h57
  3. Réponses: 7
    Dernier message: 07/06/2006, 07h32
  4. [ADO][ACCESS]tester la presence d'une table
    Par bidochon dans le forum Bases de données
    Réponses: 3
    Dernier message: 28/02/2005, 20h48
  5. [SQL Access] Modifier la structure d'une table
    Par Le Lézard dans le forum Bases de données
    Réponses: 6
    Dernier message: 28/06/2004, 14h03

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