Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Busqueda SQL en tabla Access desde VBA

Estas en el tema de Busqueda SQL en tabla Access desde VBA en el foro de Visual Basic clásico en Foros del Web. Buenas a todos, ya estoy aquí de nuevo en busca de ayuda Os cuento un poco mi problema esta vez, creo que no debería de ...
  #1 (permalink)  
Antiguo 10/11/2008, 06:37
uen
 
Fecha de Ingreso: octubre-2003
Ubicación: A Coruña
Mensajes: 55
Antigüedad: 20 años, 6 meses
Puntos: 0
Pregunta Busqueda SQL en tabla Access desde VBA

Buenas a todos, ya estoy aquí de nuevo en busca de ayuda

Os cuento un poco mi problema esta vez, creo que no debería de ser muy complicado, pero no sé por donde cogerlo.

Veamos. Tengo una tabla en Access con los siguientes campos:

Código:
Nombre - usuarioWindows - DNI - Login - Password
Vale. Ahora tengo una función que me devuelve el nombre del usuario de Windows que está utilizando el PC en ese momento. Esta función me devuelve en una variable userWindows.

Lo que necesito es lo siguiente:

Una función que me devuelva los campos de la tabla login y password (guardados en una variable cada uno) comparando la variable de antes userWindows y el campo de la tabla usuarioWindows.

Espero haberme explicado con exactitud. Seguro que es bastante sencillo, pero nose muy bien como meter código SQL en VisualBasic, ni como guardar los resultados en variables.

Muchisimas gracias a todos, de verdad!!!
__________________
We Create, They Destroy Me.
  #2 (permalink)  
Antiguo 10/11/2008, 11:06
 
Fecha de Ingreso: noviembre-2005
Mensajes: 751
Antigüedad: 18 años, 6 meses
Puntos: 13
Respuesta: Busqueda SQL en tabla Access desde VBA

Hola

Crea una conexión a BD y un recordset, en el recordset realizas la consulta tipo:

Código:
reg.Open "Select login, password from Tabla1 where usuarioWindows ='" & userwindows "'",bd, adOpenStatic, adLockReadOnly
Luego puedes pasar el resultado del Recordset a las variables.

Código:
Var1= reg.Fields(0)
Var2= reg.Fields(1)
--Saludos--
  #3 (permalink)  
Antiguo 11/11/2008, 03:32
uen
 
Fecha de Ingreso: octubre-2003
Ubicación: A Coruña
Mensajes: 55
Antigüedad: 20 años, 6 meses
Puntos: 0
Respuesta: Busqueda SQL en tabla Access desde VBA

Me da un error:

"El número de argumentos es incorrecto o la asignación de propiedad no es valida"

El código es el siguiente:

Código:
Public Function UserName() As String
Dim rs As Recordset
Dim con As Connection
Dim consulta As String
Dim userWindows As String

userWindows = "g2104"

Set rs = CreateObject("ADODB.RecordSet")
Set con = Application.CurrentDb.Connection

rs.OpenRecordset "SELECT txt_login, txt_password FROM uyc_multirriesgos_comercios WHERE txt_cxguser ='" & userWindows & "'", bd, adOpenStatic, adLockReadOnly

Etiqueta96.Caption = rs.Fields(0)
Etiqueta97.Caption = rs.Fields(1)
End Function
Decir que trabajo con VBA en Access97, y alguna de las funciones/propiedades no me aparecen como "rs.open".

Muchas grácias!
__________________
We Create, They Destroy Me.
  #4 (permalink)  
Antiguo 11/11/2008, 04:08
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Busqueda SQL en tabla Access desde VBA

Cita:
Iniciado por uen Ver Mensaje
Me da un error:

"El número de argumentos es incorrecto o la asignación de propiedad no es valida"

El código es el siguiente:

Código:
Public Function UserName() As String
Dim rs As Recordset
Dim con As Connection
Dim consulta As String
Dim userWindows As String

userWindows = "g2104"

Set rs = CreateObject("ADODB.RecordSet")
Set con = Application.CurrentDb.Connection

rs.OpenRecordset "SELECT txt_login, txt_password FROM uyc_multirriesgos_comercios WHERE txt_cxguser ='" & userWindows & "'", bd, adOpenStatic, adLockReadOnly

Etiqueta96.Caption = rs.Fields(0)
Etiqueta97.Caption = rs.Fields(1)
End Function
Decir que trabajo con VBA en Access97, y alguna de las funciones/propiedades no me aparecen como "rs.open".

Muchas grácias!
Aquí estás abriendo el recordset con una conexión que al parecer no existe:
rs.OpenRecordset "SELECT txt_login, txt_password FROM uyc_multirriesgos_comercios WHERE txt_cxguser ='" & userWindows & "'", bd, adOpenStatic, adLockReadOnly

Inténtalo así
rs.OpenRecordset "SELECT txt_login, txt_password FROM uyc_multirriesgos_comercios WHERE txt_cxguser ='" & userWindows & "'", con, adOpenStatic, adLockReadOnly

  #5 (permalink)  
Antiguo 11/11/2008, 05:24
uen
 
Fecha de Ingreso: octubre-2003
Ubicación: A Coruña
Mensajes: 55
Antigüedad: 20 años, 6 meses
Puntos: 0
Respuesta: Busqueda SQL en tabla Access desde VBA

Efectivamente avellaneda, no me había fijado! muchisimas gracias. Aunque siento deciros que me sigue dando errores la maldita función.

Os pego todo el código porque por más que lo miro no le encuentro el error.

Tengo un botón que llama a una función.

Código:
Private Sub Comando158_Click()
UserName
End Sub
La función que es llamada por el botón es la siguiente, y es donde tengo el problema:

Código:
Public Function UserName() As String
Dim rs As Recordset
Dim con As Connection
Dim userWindows As String

userWindows = fOSUserName

Set rs = CreateObject("ADODB.RecordSet")
Set con = Application.CurrentDb.Connection

rs.OpenRecordset "SELECT txt_login, txt_password FROM uyc_multirriesgos_comercios WHERE txt_cxguser ='" & userWindows & "'", con, adOpenStatic, adLockReadOnly

Etiqueta96.Caption = rs.Fields(0)
Etiqueta97.Caption = rs.Fields(1)
End Function
fOSUserName es el resultado de una API de un Módulo que me devuelve el nombre de usuario de windows.

El error que me dá al ejecutar el botón es el siguiente:



Y la parte del código que me marca es:



Bueno, de verdad, daros muchas gracias por vuestro tiempo, no sabeis lo que me estais ayudando. Consideraros invitados a unas cañas por lo menos
__________________
We Create, They Destroy Me.
  #6 (permalink)  
Antiguo 11/11/2008, 06:11
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Busqueda SQL en tabla Access desde VBA

Cita:
Iniciado por uen Ver Mensaje
Efectivamente avellaneda, no me había fijado! muchisimas gracias. Aunque siento deciros que me sigue dando errores la maldita función.

Os pego todo el código porque por más que lo miro no le encuentro el error.

Tengo un botón que llama a una función.

Código:
Private Sub Comando158_Click()
UserName
End Sub
La función que es llamada por el botón es la siguiente, y es donde tengo el problema:

Código:
Public Function UserName() As String
Dim rs As Recordset
Dim con As Connection
Dim userWindows As String

userWindows = fOSUserName

Set rs = CreateObject("ADODB.RecordSet")
Set con = Application.CurrentDb.Connection

rs.OpenRecordset "SELECT txt_login, txt_password FROM uyc_multirriesgos_comercios WHERE txt_cxguser ='" & userWindows & "'", con, adOpenStatic, adLockReadOnly

Etiqueta96.Caption = rs.Fields(0)
Etiqueta97.Caption = rs.Fields(1)
End Function
fOSUserName es el resultado de una API de un Módulo que me devuelve el nombre de usuario de windows.

El error que me dá al ejecutar el botón es el siguiente:



Y la parte del código que me marca es:



Bueno, de verdad, daros muchas gracias por vuestro tiempo, no sabeis lo que me estais ayudando. Consideraros invitados a unas cañas por lo menos

Vale, yo me apunto a lo de las cañas ¿dónde quedamos?

En cuanto al tema;
¿txt_login y txt_password son los nombres de los campos de la tabla?

Prueba seleccionando todos los campos de la tabla y luego muestra los que te interesen:
rs.OpenRecordset "SELECT * FROM uyc_multirriesgos_comercios WHERE txt_cxguser ='" & userWindows & "'", con, adOpenStatic, adLockReadOnly


  #7 (permalink)  
Antiguo 11/11/2008, 06:20
uen
 
Fecha de Ingreso: octubre-2003
Ubicación: A Coruña
Mensajes: 55
Antigüedad: 20 años, 6 meses
Puntos: 0
Respuesta: Busqueda SQL en tabla Access desde VBA

Efectivamente, son los campos de las tablas.

De todas formas, he encontrado al solución.

Pego el código para que le echeis un vistazo

Código:
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim userWindows As String

userWindows = NombreUsuarioNT()
Set db = CurrentDb
SQL = "SELECT txt_login, txt_password FROM uyc_multirriesgos_comercios WHERE txt_cxguser ='" & userWindows & "'"
Set rs = db.OpenRecordset(SQL)


Etiqueta100.Caption = rs.Fields(0)
Etiqueta101.Caption = rs.Fields(1)
Funciona a la perfección!

MUCHISIMAS GRACIAS A TODOS y las cañas siguen en pie jeje
__________________
We Create, They Destroy Me.
  #8 (permalink)  
Antiguo 11/11/2008, 06:29
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Busqueda SQL en tabla Access desde VBA

Cita:
Iniciado por uen Ver Mensaje
Efectivamente, son los campos de las tablas.

De todas formas, he encontrado al solución.

Pego el código para que le echeis un vistazo

Código:
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim userWindows As String

userWindows = NombreUsuarioNT()
Set db = CurrentDb
SQL = "SELECT txt_login, txt_password FROM uyc_multirriesgos_comercios WHERE txt_cxguser ='" & userWindows & "'"
Set rs = db.OpenRecordset(SQL)


Etiqueta100.Caption = rs.Fields(0)
Etiqueta101.Caption = rs.Fields(1)
Funciona a la perfección!

MUCHISIMAS GRACIAS A TODOS y las cañas siguen en pie jeje
Enhorabuena!!
Este fin de semana me acerco A Coruña a tomar las cañas y de paso visito a mis familiares (que aunque resido temporalmente en Madrid, mi origen es de Ourense).

Saludos
  #9 (permalink)  
Antiguo 11/11/2008, 07:11
 
Fecha de Ingreso: abril-2007
Mensajes: 187
Antigüedad: 17 años
Puntos: 1
Respuesta: Busqueda SQL en tabla Access desde VBA

Si hay que tomar cañas yo me apunto !!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:09.