Access VBA tester si on a une table liée
Résolu
artamys
Messages postés
120
Date d'inscription
Statut
Membre
Dernière intervention
-
yakov Messages postés 113 Date d'inscription Statut Membre Dernière intervention -
yakov Messages postés 113 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Access VBA tester si on a une table liée
- Table ascii - Guide
- Flash drive tester - Télécharger - Divers Utilitaires
- Table des matières word - Guide
- Tester son pc - Guide
- Tester composant pc - Guide
3 réponses
je te livre ici le petit code que j'utilise pour raffraichir les tables liées de ma BDD en fonction du magasin concerné.
ca devrait t'aider
en dao c'est la synthaxe suivante pour savoir si une table est liée.
dim db as dao.database
dim tb as dao.tabledef
set db=opendatabase(.......)
for each tb in db.tabledefs
if tb.attributes and dbattachedtable then
........
End If
Next
BDDClose '
db.Close
Set db = Nothing
Set tb = Nothing
j'espère que ca va t'aider
ca devrait t'aider
en dao c'est la synthaxe suivante pour savoir si une table est liée.
dim db as dao.database
dim tb as dao.tabledef
set db=opendatabase(.......)
for each tb in db.tabledefs
if tb.attributes and dbattachedtable then
........
End If
Next
BDDClose '
db.Close
Set db = Nothing
Set tb = Nothing
j'espère que ca va t'aider
Merci a toi, j'ai trouvé une autre solution, mais j'essaiera la tienne.
En fait le passe par une requete qui va calculer le nombre de msysobjects. Comme dans les tables liées elles n'y figurent pas (virtuelles) si je cherche une table en particulier et qu'elle n'y est pas je la trouve et j'adapte le code en conséquences.
Ci joint le code.
Merci a toi.
dans ma requete intitulée NatureTableRequete
SELECT Msysobjects.Name, Msysobjects.Name
FROM Msysobjects
WHERE (((Msysobjects.Name)="TB_Projet") AND ((Msysobjects.Type)=1))
ORDER BY Msysobjects.Name;
dans mon code :
Dim NatureT As Integer
Dim NatureTable As Integer
NatureT = DCount("*", " NatureTableRequete")
If NatureT = 1 Then NatureTable = 1
If NatureT <> 1 Then NatureTable = 2
Set db = CurrentDb()
Set Base_modifProjet = db.OpenRecordset("TB_DEI")
If NatureTable = 2 Then Base_modifProjet.FindFirst ("NumDEI=" & ListeNumDEI & "")
If NatureTable = 1 Then Base_modifProjet.Index = "primarykey"
If NatureTable = 1 Then Base_modifProjet.Seek "=", ListeNumDEI
En fait le passe par une requete qui va calculer le nombre de msysobjects. Comme dans les tables liées elles n'y figurent pas (virtuelles) si je cherche une table en particulier et qu'elle n'y est pas je la trouve et j'adapte le code en conséquences.
Ci joint le code.
Merci a toi.
dans ma requete intitulée NatureTableRequete
SELECT Msysobjects.Name, Msysobjects.Name
FROM Msysobjects
WHERE (((Msysobjects.Name)="TB_Projet") AND ((Msysobjects.Type)=1))
ORDER BY Msysobjects.Name;
dans mon code :
Dim NatureT As Integer
Dim NatureTable As Integer
NatureT = DCount("*", " NatureTableRequete")
If NatureT = 1 Then NatureTable = 1
If NatureT <> 1 Then NatureTable = 2
Set db = CurrentDb()
Set Base_modifProjet = db.OpenRecordset("TB_DEI")
If NatureTable = 2 Then Base_modifProjet.FindFirst ("NumDEI=" & ListeNumDEI & "")
If NatureTable = 1 Then Base_modifProjet.Index = "primarykey"
If NatureTable = 1 Then Base_modifProjet.Seek "=", ListeNumDEI