Access VBA tester si on a une table liée
Résolu/Fermé
artamys
Messages postés
120
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
9 mars 2018
-
29 août 2008 à 16:30
yakov Messages postés 113 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 13 juin 2009 - 2 sept. 2008 à 12:07
yakov Messages postés 113 Date d'inscription mardi 19 août 2008 Statut Membre Dernière intervention 13 juin 2009 - 2 sept. 2008 à 12:07
A voir également:
- Access VBA tester si on a une table liée
- Table ascii - Guide
- Table des matières word - Guide
- Tester son pc - Guide
- Flash drive tester - Télécharger - Divers Utilitaires
- Tester un lien - Guide
3 réponses
yakov
Messages postés
113
Date d'inscription
mardi 19 août 2008
Statut
Membre
Dernière intervention
13 juin 2009
75
2 sept. 2008 à 08:31
2 sept. 2008 à 08:31
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
artamys
Messages postés
120
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
9 mars 2018
7
2 sept. 2008 à 09:48
2 sept. 2008 à 09:48
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
yakov
Messages postés
113
Date d'inscription
mardi 19 août 2008
Statut
Membre
Dernière intervention
13 juin 2009
75
2 sept. 2008 à 12:07
2 sept. 2008 à 12:07
bien... mais plus compliqué quand même....