Access - Necesito consultar metadatos(Campos, tipos,pk,etc)

 
Vista:

Necesito consultar metadatos(Campos, tipos,pk,etc)

Publicado por Jesus (1 intervención) el 28/11/2006 09:47:07
Hola, Necesito para mi proyecto hacer una consulta en access que me devuelva el nombre de los campos de una tabla, asi como sus tipo o que campò es primary key.
o que me devulva su esquema, necesito conseguir esa información de alguna mandera.
Tambien me vale para ejecutar la consutla desde VS pero supongo que sera igual.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Obtener información del esquema y propiedades de los campos de una tabla

Publicado por Alejandro (4142 intervenciones) el 28/07/2023 19:42:51
Para obtener la información del esquema y las propiedades de los campos de una tabla en Access, puedes utilizar consultas específicas o código VBA. A continuación, te proporciono soluciones para obtener diferentes detalles de los campos de una tabla:

1. Obtener los nombres de los campos de una tabla:

1
2
3
SELECT MSysObjects.Name AS TableName, MSysColumns.Name AS FieldName
FROM MSysObjects INNER JOIN MSysColumns ON MSysObjects.Id = MSysColumns.Id
WHERE (((MSysObjects.Name)="NombreTabla"));

Reemplaza "NombreTabla" con el nombre de la tabla de la cual deseas obtener los nombres de los campos.

2. Obtener los tipos de datos de los campos de una tabla:

1
2
3
SELECT MSysObjects.Name AS TableName, MSysColumns.Name AS FieldName, MSysColumns.Type AS FieldType
FROM MSysObjects INNER JOIN MSysColumns ON MSysObjects.Id = MSysColumns.Id
WHERE (((MSysObjects.Name)="NombreTabla"));

3. Obtener la columna que es clave primaria de la tabla:

1
2
3
SELECT MSysObjects.Name AS TableName, MSysIndexes.Name AS IndexName, MSysIndexes.Primary AS IsPrimaryKey
FROM MSysObjects INNER JOIN MSysIndexes ON MSysObjects.Id = MSysIndexes.Id
WHERE (((MSysObjects.Name)="NombreTabla") AND ((MSysIndexes.Primary)=True));

Estas consultas acceden a las tablas de sistema de Access (MSysObjects, MSysColumns, MSysIndexes) que contienen información sobre la estructura y propiedades de las tablas en la base de datos.

Si prefieres utilizar código VBA en lugar de consultas, puedes hacerlo utilizando el objeto `TableDef` para acceder a los campos y sus propiedades. Aquí tienes un ejemplo de cómo obtener los nombres de los campos de una tabla utilizando código VBA:

1
2
3
4
5
6
7
8
9
10
11
12
Sub ObtenerNombresCampos()
    Dim db As Database
    Dim tdf As TableDef
    Dim fld As Field
 
    Set db = CurrentDb()
    Set tdf = db.TableDefs("NombreTabla") ' Reemplaza "NombreTabla" con el nombre de tu tabla
 
    For Each fld In tdf.Fields
        Debug.Print fld.Name ' Imprime el nombre de cada campo en la ventana Inmediato
    Next fld
End Sub

Estas soluciones te permitirán obtener la información del esquema y las propiedades de los campos de una tabla en Access. Puedes utilizar cualquiera de las opciones, ya sea consultas o código VBA, según tus necesidades y preferencias.

Espero que esta solución te sea útil para obtener la información que necesitas sobre los campos de una tabla en Access. ¡Buena suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar