Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2502 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] Suppression d'un objet.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA] Suppression d'un objet.

n°1574278
4get9
C'est clair !
Posté le 13-06-2007 à 11:42:56  profilanswer
 

Bonjour,
 
j'ai une base Access et je voudrais supprimer une table.
Le souci c'est qu'elle n'existe pas forcément, et donc si je fait un DeleteObject je me tape une erreur.
Je dois pouvoir passer ça en gérant le code erreur, mais ce n'est pas très propre.
 
Y a t il une solution pour forcer la suppression, ou pour tester l'existence d'un objet ?
 
 
Merci

mood
Publicité
Posté le 13-06-2007 à 11:42:56  profilanswer
 

n°1574283
jpcheck
Pioupiou
Posté le 13-06-2007 à 11:48:24  profilanswer
 

passe par la requete  
"DROP TABLE Tableàdégager"
 
tu peux utiliser ce bout de code pour tester si ta table existe:

Code :
  1. Function fExistTable(strTableName As String) As Boolean
  2. Dim i As Integer
  3.  
  4.     fExistTable = False
  5.     CurrentDb.TableDefs.Refresh
  6.     For i = 0 To CurrentDb.TableDefs.Count - 1
  7.         If strTableName = CurrentDb.TableDefs(i).Name Then
  8.             'Table Exists
  9.             fExistTable = True
  10.             Exit For
  11.         End If
  12.     Next i
  13. End Function


 
au final, tu mets donc ceci :

Code :
  1. if fExistTable("Tableadégager" ) then
  2. DoCmd.RunSQL "DROP TABLE Tableàdégager"
  3. end if

n°1574348
4get9
C'est clair !
Posté le 13-06-2007 à 13:12:12  profilanswer
 

jpcheck a écrit :

Code :
  1. Function fExistTable(strTableName As String) As Boolean
  2. Dim i As Integer
  3.  
  4.     fExistTable = False
  5.     CurrentDb.TableDefs.Refresh
  6.     For i = 0 To CurrentDb.TableDefs.Count - 1
  7.         If strTableName = CurrentDb.TableDefs(i).Name Then
  8.             'Table Exists
  9.             fExistTable = True
  10.             Exit For
  11.         End If
  12.     Next i
  13. End Function



Merci beaucoup :jap:

n°1574362
tegu
Posté le 13-06-2007 à 13:39:11  profilanswer
 

Une gestion d'erreur adaptée peut aider quand même

Function fExistTable(strTableName As String) As Boolean
    Dim tbdef As TableDef
     
    On Error Resume Next
    Set tbdef = CurrentDb.TableDefs(strTableName)
    fExistTable = Not tbdef Is Nothing
    Set tbdef = Nothing
     
End Function

J'ai une préférence pour cette version, mais au final ça ne doit pas changer grand chose.

n°1574468
4get9
C'est clair !
Posté le 13-06-2007 à 15:35:05  profilanswer
 

Effectivement une gestion d'erreur au sein d'une fouction qui ne ferait que tester son existence fonctionne.
D'ailleurs maintenant je me rappelle que j'avais utilisé ce principe (fonction avec gestion d'erreur sans conséquence) il y a qq années, et il me semble bien que c'était également pour droper des tables :lol: j'me fait vieux ...  
 
Merci les gars en tous cas :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] Suppression d'un objet.

 

Sujets relatifs
Cherche lexique des mots clé VBAQuestions de "base" ambigues sur la programmation objet
clonage d'un objet recupere a partir d'un fichier XMLExcel - VBA - Copier du texte au double clic [résolu]
Modifier l'objet source d'un sous état avec du code en VBA(RESOLU) diminution du temps d'execution [VBA EXCEL]
extrait des objet a partir d'une histogramme d'une imagealgorithme de combinaison VBA
Afficher un vecteur avec VBAObjet flash et mise en page !
Plus de sujets relatifs à : [VBA] Suppression d'un objet.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR