Accès: Comment trouver un champ dans une base de données entière?
J'ai une base de données access avec de nombreux tableaux. Je suis à la recherche d'un terrain qui peut ou ne peut pas exister dans un ou plusieurs tableaux. Comment puis-je vérifier s'il existe ou pas? (sans interroger chaque table de cours)
Vous devez vous connecter pour publier un commentaire.
Il y a un schéma pour les champs:
À partir de: MS Access: Comment contourner/supprimer une erreur?
Si vous vraiment ne veux pas ouvrir une table, une solution est d'utiliser le
tabledefs
la collecte de l'objet de base de données. Chaquetabledef
élément a son proprefields
collection que vous pouvez parcourir. Cela donnerait quelque chose comme ça:Ce code peut être facilement adapté à accepter une option
p_myTableName
comme un argument pour limiter la recherche à une table/gamme de tables.Voici ce que je ferais si je voulais voir si une colonne particulière (identifié dans strSearch) dans un tableau particulier.
Maintenant, je sais que vous ne voulez pas écrire l'un de ceux pour chaque table. La prochaine chose à faire serait de faire une boucle par toutes les tables. Vous pouvez trouver une liste de toutes les tables avec le SQL suivant
Le raccordement de ces deux pièces ensemble, je vais le laisser comme un exercice pour l'étudiant 🙂
Voici comment accéder au schéma de la table dans microsoft Access à l'aide de VBScript:
Ici, vous allez:
MSSQL
La recherche de ADRESSE1 colonne:
sélectionnez donc.nom de sysobjects donc
où donc.id in (select sc.id de syscolumns sc where name like 'ADRESSE1')
ORACLE
http://en.wikipedia.org/wiki/Oracle_metadata
Google va trouver la syntaxe pour les autres DBs...
Quel type de base de données est-il? Si c'est SQL Server, vous pouvez essayer ceci:
Mais puisque c'est la colonne qui vous intéresse, et pas une table (merci Brian), essayez ceci: