Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Effacer 1 table dans plusieurs bases

3 réponses
Avatar
Stéphane Lavergne
Bonjour,

J'ai 1 suite de bases B2, B3,..., Bn
J'ai renommé 1 table T1 avec la commande :

Dim db As DAO.Database
Set db = DBEngine.Workspaces(0).OpenDatabase(nomfichierdata) 'nomfichierdata
= B2, B3... Bn, selon le cas
...
db.TableDefs("T1").Name = "T1-old"

Après avoir fais des manipulations dans la table T1 grâce à la table T1-old,
je n'ai plus besoin de la table T1-old.
Je n'arrive pas à trouver comment effacer cette table.
En effet, la méthode DeleteObject n'a lair de fonctionner que dans la base
où se trouve le code
DoCmd.DeleteObject acTable, "T1-old"
et, je ne trouve pas de méthode Delete ou Erase à la collection Tabledefs.

Merci d'avance

Stéphane Lavergne

3 réponses

Avatar
Xavier HUE
Bonjour Stéphane,

Bientôt au bout de tes changements de structure ;-)

Pour supprimer une table:
db.TableDefs.Delete NomDeLaTable

Espérant t'avoir aidé.
Cordialement.

PS: Enlever blurg de l'adresse Mail
Avatar
André AVONS
Salut
Copies ce qui suit dans nouveau module
Tu passes en parametre le nom de la table et le chemin complet de la mdb
Function SuppressionTable(NomTable As String, Optional NomBase As String) As
Boolean

Dim bds As Database, strsql As String
Dim CheminBase As String
Dim wrkJet As Workspace

On Error GoTo SuppressionTable_Error

If IsNull(NomBase) Or IsEmpty(NomBase) Or NomBase = "" Then
CheminBase = CurrentDb.Name
Else
CheminBase = NomBase
End If
' Retourne une référence
' à la base de données
Set wrkJet = CreateWorkspace("", "admin", "", dbUseJet)
Set bds = wrkJet.OpenDatabase(CheminBase)

strsql = "DROP TABLE " & NomTable
bds.Execute strsql

SuppressionTable = True

Fin:
Set bds = Nothing
Set wrkJet = Nothing

Exit Function

--
@+
André

Quelques liens avec des exemples, des utilitaires et des compléments pour
Access
http://access.seneque.free.fr/
http://www.self-access.com/
http://www.mvps.org/accessfr/
http://mypage.bluewin.ch/w.stucki/
"Stéphane Lavergne" a écrit dans le
message de news:eaH$
Bonjour,

J'ai 1 suite de bases B2, B3,..., Bn
J'ai renommé 1 table T1 avec la commande :

Dim db As DAO.Database
Set db = DBEngine.Workspaces(0).OpenDatabase(nomfichierdata)
'nomfichierdata

= B2, B3... Bn, selon le cas
...
db.TableDefs("T1").Name = "T1-old"

Après avoir fais des manipulations dans la table T1 grâce à la table
T1-old,

je n'ai plus besoin de la table T1-old.
Je n'arrive pas à trouver comment effacer cette table.
En effet, la méthode DeleteObject n'a lair de fonctionner que dans la base
où se trouve le code
DoCmd.DeleteObject acTable, "T1-old"
et, je ne trouve pas de méthode Delete ou Erase à la collection Tabledefs.

Merci d'avance

Stéphane Lavergne




Avatar
Stéphane Lavergne
db.TableDefs.Delete NomDeLaTable
Encore merci Xavier


Bientôt au bout de tes changements de structure ;-)
Hélàs non... bouuhhhh


Stéphane