Access - AYUDA!! URGENTE!!

 
Vista:

AYUDA!! URGENTE!!

Publicado por deboh (24 intervenciones) el 07/05/2007 16:40:57
Hola a todos , muy buenas.... Vereis mi problema esque tengo una base de datos de access con Oracle...el caso es que necesito recoger en access el usuario con el que me logo al conectarme al ODBC...y no se como recogerlo...

Application.CurrentUser se refiere a access y no a oracle....

Os agradezco vuestra ayuda , y si no me he explicado bien os ruego porfavor me lo digais para aclarar....
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 el usuario de Oracle conectado a través de ODBC

Publicado por Alejandro (4142 intervenciones) el 09/08/2023 23:00:42
Si estás utilizando una conexión ODBC para conectarte a una base de datos Oracle desde Access, es importante entender que Access no proporciona directamente una forma de obtener el usuario de Oracle que se ha conectado a través de ODBC. Sin embargo, puedes considerar una solución indirecta para obtener esta información.

Una posible solución es utilizar una consulta passthrough en Access para ejecutar una consulta en Oracle que obtenga el usuario actual. Luego, puedes recuperar el resultado de esta consulta en Access. A continuación, te muestro un ejemplo de cómo podrías hacerlo:

1. Crear una consulta passthrough en Access:

- Abre Access y crea una consulta.
- En la vista SQL, ingresa una consulta similar a la siguiente (asegúrate de reemplazar "TU_TABLA" con el nombre de una tabla en tu base de datos Oracle):

1
SELECT USER FROM TU_TABLA WHERE ROWNUM = 1;

Esta consulta busca el nombre del usuario actual en Oracle.

2. Ejecutar la consulta passthrough:

- Ejecuta la consulta passthrough en Access y almacena el resultado en una variable.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strSQL As String
Dim oracleUser As String
 
Set db = CurrentDb
strSQL = "SELECT USER FROM TU_TABLA WHERE ROWNUM = 1;" ' Ajusta la consulta según tu estructura
 
Set rs = db.OpenRecordset(strSQL, dbOpenSnapshot, dbReadOnly)
If Not rs.EOF Then
    oracleUser = rs.Fields("USER").Value
End If
 
rs.Close
Set rs = Nothing
Set db = Nothing

Esto ejecutará la consulta en Oracle y almacenará el nombre de usuario en la variable `oracleUser`.

Ten en cuenta que esta solución implica ejecutar una consulta adicional en la base de datos Oracle cada vez que necesites obtener el usuario actual. Además, es importante tener en cuenta las consideraciones de seguridad al manipular nombres de usuario en tus aplicaciones.

Recuerda adaptar el código y las consultas a la estructura y los nombres de tus tablas en Oracle. Si estás trabajando en un entorno de red o con políticas de seguridad específicas, podría ser útil consultar con el administrador de la base de datos o el equipo de TI para obtener orientación adicional.
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