Comment faire pour savoir si une table existe ? [VB ET ACCESS] - Programmation
Marsh Posté le 01-10-2001 à 17:30:49
je connais pas mais ya pas un truc comme:
//table = creation de table
if (table.eof == true) then
msgbox "table vide";
else
msgbox "il y a des enregistrements..."
Marsh Posté le 01-10-2001 à 20:29:08
2 solutions:
1/ Tu boucles sur la collection des tables (TableDefs) et tu vérifies qu'aucun nom ne correspond à ta table
2/ Tu essaies d'ouvrir la table et récupères l'erreur éventuelle si elle n'existe pas.
A+
Marsh Posté le 02-10-2001 à 08:17:23
Pour recuperer l'erreur je fais comment ?
Parce que la ligne de code est
dbCompte.Execute("DROP TABLE table" )
Marsh Posté le 02-10-2001 à 10:03:58
Essaye ça :
Set monwork = DBEngine.Workspaces(0)
Set mabd = monwork.Databases(0)
For I = 0 To mabd.TableDefs.Count - 1
Set matable = mabd.TableDefs(I)
If matable.Name = "table_recherchée" Then
DoCmd.RunSQL "DROP TABLE table_recherchée"
End If
Next
Marsh Posté le 02-10-2001 à 10:13:54
k-id a écrit a écrit : Essaye ça : Set monwork = DBEngine.Workspaces(0) Set mabd = monwork.Databases(0) For I = 0 To mabd.TableDefs.Count - 1 Set matable = mabd.TableDefs(I) If matable.Name = "table_recherchée" Then DoCmd.RunSQL "DROP TABLE table_recherchée" End If Next |
Les DoCmd je crois que c'est lorsqu'on est sous access nan ?
Moi je suis sous vb, juste connecte a une base.
J'ai fait ca et ca marche
Dim tdLoop As TableDef 'pour parcourir la collection de table
'On verifie que la table Ecriture n'existe pas
For Each tdLoop In dbCompte.TableDefs
'Si elle existe, on la supprime
If tdLoop.Name = "Ecriture" Then
dbCompte.Execute ("DROP TABLE Ecriture" )
End If
Next tdLoop
Merci quand meme du coup de main
@+
Marsh Posté le 02-10-2001 à 20:57:44
Pour récupérer l'erreur, soit tu fais une gestion complète d'erreur pour ta fonction via "On Error Goto Etiquette" ou une gestion de l'erreur sur la seule ligne qui t'intéresse via:
On Error Resume Next ' erreur récupérée dans l'objet Err
dbCompte.Execute("DROP TABLE table" )
If Err <> 0 then
' traitement cas erreur
Endif
On Error Goto 0 ' désactivation gestion erreur
Voilà,
A+
Marsh Posté le 01-10-2001 à 16:10:07
MErci