Access - Nombres de las tablas

 
Vista:

Nombres de las tablas

Publicado por luis (2 intervenciones) el 30/05/2007 13:04:25
Hola,

haber si me ayudan con una consulta.
Tengo una base de datos en oracle, pero la tengo vinculada con access. En ella me salen un monton de tablas, las cuales al final del nombre me sale su numero identificativo. Mi pregunta es, puedo sacar el nombre de esas tablas en una vista?

CT_MODELO_21
CT_MODELO_22
CT_MODELO_23
CT_MODELO_24
CT_MODELO_25
CT_MODELO_26
CT_MODELO_27
CT_SOPORTE_21
CT_SOPORTE_22
CT_SOPORTE_23
CT_SOPORTE_24
CT_SOPORTE_25
CT_SOPORTE_26
CT_SOPORTE_27
CT_SOPORTE_28
CT_AREA_21
CT_AREA_22
CT_AREA_23
CT_AREA_24
CT_AREA_25
CT_AREA_26
CT_AREA_27

Primero me gustaria sacar el nombre de las tablas en una vista, para luego sacar el numero final. Hay alguna manera??

Gracias.
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 nombres de tablas vinculadas en una vista

Publicado por Alejandro (4142 intervenciones) el 10/08/2023 23:27:13
En Access, no es posible realizar directamente una consulta que extraiga nombres de tablas vinculadas en una vista, ya que las vistas de Access están limitadas a operar dentro de la base de datos de Access y no tienen acceso directo a las tablas vinculadas de Oracle.

Sin embargo, puedes usar una combinación de consultas y código VBA para lograr esto:

1. Crear una consulta de metadatos:
Puedes utilizar la siguiente consulta de metadatos en Access para obtener una lista de todas las tablas vinculadas desde Oracle. Esta consulta recuperará los nombres de las tablas vinculadas y las almacenará en una tabla temporal:

1
2
3
4
SELECT MSysObjects.Name AS TableName
INTO TempTablaNombres
FROM MSysObjects
WHERE (MSysObjects.Type = 4) AND (Left([Name], 4) = "dbo_");

2. Crear una función de VBA para obtener nombres finales:
Luego, puedes crear una función de VBA que procese los nombres de las tablas vinculadas y extraiga el número final:

1
2
3
4
5
6
7
8
9
10
Function ExtraerNumeroFinal(nombreTabla As String) As Integer
    Dim partesNombre() As String
    partesNombre = Split(nombreTabla, "_")
 
    If UBound(partesNombre) > 1 Then
        ExtraerNumeroFinal = Val(partesNombre(UBound(partesNombre)))
    Else
        ExtraerNumeroFinal = 0
    End If
End Function

3. Crear una consulta de vista con la función VBA:
Finalmente, puedes crear una consulta de vista en Access que utilice la función de VBA para obtener los números finales de las tablas vinculadas:

1
2
SELECT TempTablaNombres.TableName, ExtraerNumeroFinal([TableName]) AS NumeroFinal
FROM TempTablaNombres;

Este enfoque requiere la creación de una tabla temporal para almacenar los nombres de las tablas vinculadas antes de procesarlos con la función VBA. La función VBA `ExtraerNumeroFinal` divide el nombre de la tabla en partes usando el carácter `_` como separador y luego devuelve el número final como un valor entero.

Ten en cuenta que esta solución puede requerir cierto conocimiento de VBA y consultas en Access. Si estás trabajando con un gran número de tablas vinculadas, también podrías explorar la posibilidad de utilizar scripts de automatización o consultas directamente en Oracle para obtener los resultados deseados.
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