[VB ET ACCESS] Comment faire pour savoir si une table existe ?

Comment faire pour savoir si une table existe ? [VB ET ACCESS] - Programmation

Marsh Posté le 01-10-2001 à 16:10:07    

MErci ;)

Reply

Marsh Posté le 01-10-2001 à 16:10:07   

Reply

Marsh Posté le 01-10-2001 à 16:49:17    

:)

Reply

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..."


---------------
Suri.morkitu.org : Balades au coeur de la ville...
Reply

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+

Reply

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" )

Reply

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

Reply

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 ;)
 
@+

Reply

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+

Reply

Marsh Posté le 03-10-2001 à 11:33:31    

Ok merci ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed