HELP!!!! Parcourir une base de données[}:)]

yomm Messages postés 515 Date d'inscription dimanche 17 février 2002 Statut Membre Dernière intervention 10 mars 2008 - 9 févr. 2003 à 14:11
yomm Messages postés 515 Date d'inscription dimanche 17 février 2002 Statut Membre Dernière intervention 10 mars 2008 - 9 févr. 2003 à 15:40
Voilà je souhaite pouvoir parcourir une base de données mais simplement au niveau du nom des table ki si trouve

en gros, j'ai une table "sommaire" des tables présentes et je souhaite pouvoir vérifié de temps en temps si elle est correcte.Ainsi je doit pouvoir trouver si j'ai une table TABLE1, TABLE2 et TABLE3 et vérifier si elle sont bien dans ma table sommaire.....

ATTENTION: je ne veux pas de variable déclarée en ADODB.XXX
la seule référence utilisé est DAO 3.6 et antérieure
pas de microsoft activeX blablabla......

MERCI d'avance

3 réponses

cs_Humphrey Messages postés 22 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 16 février 2003
9 févr. 2003 à 15:22
V'la un bout de code, extrait d'un module de classe que j'avais écrit il y a fort longtemps... ;o))

Je te laisse le soin de l'adapter à ton besoin...

A+
Humphrey

---------------------------------------------------------------------
Public Sub TrouverTableNonSysteme(ByRef Succes As Long, ByRef MyOwnDb As Database, ByRef TblName_Retournee As String)

' cette routine retourne
' Succes > 1 s'il existe plusieurs tables non système dans MyOwnDb
' true (-1) s'il n'existe qu'une table non système dans MyOwnDb
' auquel cas, TblName_Retournee contient le nom de la table en question
' 0 s'il n'existe que des tables système dans MyOwnDb
' < -1 s'il y a une erreur qui se produit ( Succes = n° Err * -1 )
'
' MyOwnDb est une database valide et ouverte sans erreurs

Succes = 0 If NombreTentatives <0 Then NombreTentatives mvarNombreDeTentativesMax

On Local Error GoTo ErreurTblNs

For i = 0 To MyOwnDb.TableDefs.Count - 1
If (MyOwnDb.TableDefs(i).Attributes And dbSystemObject) <> 0 Then
'
Else
Succes = Succes + 1
TblName_Retournee = MyOwnDb.TableDefs(i).Name
End If
Next i

Select Case Succes
Case 0, Is > 1
TblName_Retournee = ""
Case 1
Succes = True
Case 0
End Select

SortieTblNS:
Exit Sub

ErreurTblNs:
If TesterErreur(Err) Then
Resume
End If
Succes = Err * -1
If mvarAfficherMessagesErreurs = True Then
MsgBox "Err. n° " & Trim(Str(Err)) & " : " & Error(Err), vbCritical
End If
Resume SortieTblNS

End Sub
0
pelw Messages postés 148 Date d'inscription dimanche 12 janvier 2003 Statut Membre Dernière intervention 14 février 2005 6
9 févr. 2003 à 15:27
Voici un exemple avec DAO 3.6 :

Dim Db As DAO.Database
Dim Td As DAO.TableDef
Dim Rs As DAO.Recordset

Dim sSql As String

'Ouvrir la base de données
Set Db = OpenDatabase("C:\MaBase.mdb")

'Rechercher les tables existantes
For Each Td In Db.TableDefs
'Ignorer les tables internes d'Access et la table "Sommaire"
If Left$(Td.Name, 4) <> "MSys" And Td.Name <> "Sommaire" Then
'Composer la requête SQL sSql "SELECT * FROM Sommaire WHERE NomTable '" & Td.Name & "'"
'Exécuter la requête SQL
Set Rs = Db.OpenRecordset(sSql)
'Vérifier le résultat
If Rs.EOF Then
MsgBox "La table " & Td.Name & " est manquante !"
End If
End If
Next Td

@+

pelw
0
yomm Messages postés 515 Date d'inscription dimanche 17 février 2002 Statut Membre Dernière intervention 10 mars 2008 3
9 févr. 2003 à 15:40
Merci bocou
0
Rejoignez-nous