Formulario de Acceso USUARIO, CONTRASEÑA y traer 2 campos de la tabla

Espero me puedas ayudar te comento que estoy haciendo un formulario de acceso por medio de usuario y contraseña y ya me esta jalando pero solo me esta trayendo un campo a los demás formularios que es el compo nombre y quisiera me traiga también el del campo clavevendedor A continuación te pongo el código que estoy usando

TABLA USUARIOS, CAMPOS usuario, contraseña, Nombre, clavevendedor

En el botón entrar del formulario de acceso tiene este código:
Private Sub Entrar_Click()
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("Select Usuario, Contraseña, Nombre from Usuarios where Usuario='" & Form!txtusuario.Value & "' and Contraseña='" & Form!txtpassword.Value & "'")
If Not rs.EOF Then
vNombre = rs!Nombre
DoCmd.OpenForm "SCN2013", acNormal
Else
MsgBox "Usuario o password no válidos"
End If
End Sub
CREE UN MODULO CON ESTE CÓDIGO
Option Compare Database
Public vNombre As String

Y EN EL FORMULARIO DONDE QUIERO QUE ME ARROJE EL campo nombre y el campo claveempresa le puse este código. Al cargar.
Form!txtnombre.Value = vNombre
¿Cómo puedo declarar el segundo campo que quiero que me traiga que es el de claveempresa?

1 Respuesta

Respuesta
1

Un par de cuestiones:

¿Qué valor quieres que te ponga en el formulario: claveempresa o clavevendedor?

¿El valor que buscas está relacionado con el Usuario? ¿De qué manera?

Y por cierto, en el código del botón, ahí si que debes poner las lineas rst.close y set rst=nothing

Actualmente ya me esta poniendo en el formulario el puro nombre ejemplo:

usuario= jherrera

password= nilo

Nombre: Juan Antonio

clavevendedor: HOJA

EN EL FORMULARIO QUE HABRÉ YA ME PONE (Form!txtnombre.Value = vNombre)

Juan Antonio

Pero quiero que me traiga también el del campo clave vendedor entonces así

Juan Antonio

HOJA

CLARO AGREGANDO UN CAMPO MAS DE TEXTO y Posiblemente nombrándolo txtclavevendedor.

Si, lo que quieres hacer lo tengo claro, pero no respondes a mi pregunta:

¿Clavevendedor está en la misma tabla que el campo Usuario? Si no lo está, ¿cómo se relacionan las dos tablas?

PERDÓN, SI EL CAMPO clavevendedor se encuentra dentro de la misma tabla USUARIOS.

Ok, entonces añade un nuevo cuadro de texto (por ej. txtClaveVendedor), y añade después de esto:

Form!txtnombre.Value = vNombre

esto otro:

Form!txtClavevendedor=Dlookup("clavevendedor","Usuarios","[Usuario]='" & vnombre & "'")

que crees que ya no me esta jalando ni el primero ya que le puse este código para evitar que se mueva con la rueda del mouse y ya no me jala donde mas podre poner el código mira este código es el nuevo que le acabo de poner.

Option Compare Database
Option Explicit
Private WithEvents clsMouseWheel As MouseWheel.CMouseWheel


Private Sub Form_Load()
SMe.homoclave = Me.nodecotizacion & "-" & Format(Date, "dd.mm.yy")

Set clsMouseWheel = New MouseWheel.CMouseWheel
Set clsMouseWheel.Form = Me
clsMouseWheel.SubClassHookForm
Form!txtnombre.Value = vNombre 'Aquí esta el código pero ya no jalaaaaaaaa
End Sub


Private Sub Form_Close()
clsMouseWheel.SubClassUnHookForm
Set clsMouseWheel.Form = Nothing
Set clsMouseWheel = Nothing
End Sub


Private Sub clsM

ouseWheel_MouseWheel(Cancel As Integer)

Cancel = True
End Sub

O QUITO ESTE CÓDIGO AUNQUE SE SIGAN MOVIENDO LOS REGISTROS CON LA RUEDA DE L MOUSE?????

Quita el código de la rueda del ratón, y pon la propiedad del formulario ciclo en "registro activo", esta propiedad está en la pestaña otras.

HOLA, Te comento que lo hice en otro formulario que no tiene
declarado nada solo es de pura muestra y solo me sigue mandando el nombre
y no la clave de vendedor, hice tal y como me indicaste cree un campo exclusivo para el campo txtclavevendedor y puse esto al cargar el formulario.

Form!txtnombre.Value = vNombre
Form!txtclavevendedor = DLookup("clavevendedor", "Usuarios", "[Usuario]='" & vNombre & "'")

y solo me pone el nombre, que sera?

Ponme el nombre y la estructura de la tabla que tiene los dos campos, porque me da que hay algo que no me estás diciendo, o los nombres no son los que pones en el dlookup

ESTRUCTURA DE LA TABLA USUARIOS,

usuario, texto

contraseña, texto, Macara de entrada contraseña

Nombre, texto

Clavevendedor, texto

Fecha, Fecha/Hora ' esto es para ver que día y a que hora accesaron a la aplicación

LOS CAMPOS DEL FORMULARIO A DONDE QUIERO QUE ME APAREZCAN SE LLAMAN:

txtnombre

txtclavevendedor

A se me olvidaba la tabla USUARIOS no lleva campo llave

Prueba así:

En el botón entrar del formulario de acceso tiene este código:
Private Sub Entrar_Click()
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("Select Usuario, Contraseña, Clavevendedor from Usuarios where Usuario='" & Form!txtusuario.Value & "' and Contraseña='" & Form!txtpassword.Value & "'")
If Not rs.EOF Then
vNombre = rs!Nombre

vClave=rs!Clavevendedor
DoCmd.OpenForm "SCN2013", acNormal
Else
MsgBox "Usuario o password no válidos"
End If
End Sub

EN EL MODULO CON ESTE CÓDIGO
Option Compare Database
Public vNombre As String

Public vClave As String

Y EN EL FORMULARIO DONDE QUIERO QUE ME ARROJE EL campo nombre y el campo claveempresa le puse este código. Al cargar.
Form!txtnombre.Value = vNombre

Form!txtclavevendedor.Value = vClave

HOLA, ya he hecho tal y como están las indicaciones y que crees que me sale un error:

Se ha producido el error '3265' en tiempo de ejecución No se encontró el elemento en esta colección. Y me marca el siguiente código que te voy a poner en negrillas.

Private Sub Entrar_Click()
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("Select Usuario, Contraseña, Clavevendedor from Usuarios where Usuario='" & Form!txtusuario.Value & "' and Contraseña='" & Form!txtpassword.Value & "'")
If Not rs.EOF Then
vNombre = rs!Nombre 'ESTE ES EL QUE ME MARCA EN AMARILLO AL DEPURAR
vClave = rs!clavevendedor
DoCmd.OpenForm "SCN2013", acNormal
Else
MsgBox "Usuario o password no válidos"
End If
End Sub

Ya lo había intentado así jijijijiji, pero no me jalo jajajajajajajajajajaj, que estaré haciendo mal?

Ah, vale, ya veo dónde está el fallo, falta poner el campo Nombre en el set rs=db...

Set rs = db.OpenRecordset("Select Usuario, Contraseña, Nombre, Clavevendedor from Usuarios where Usuario='" & Form!txtusuario.Value & "' and Contraseña='" & Form!txtpassword.Value & "'")

Si lo quieres hacer por dlookup, como te decía al principio, el código sería así:

Form!txtclavevendedor = DLookup("clavevendedor", "Usuarios", "[Nombre]='" & vNombre & "'")

EXCELENTE, YA JALO LA CLAVE, ahora ya me pone el nombre y la clave de usuario pero no cierra el formulario le he puesto este código que pongo en negritas pero ni aun así lo cierra, me puedes ayudar por favor

Private Sub Entrar_Click()
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("Select Usuario, Contraseña, nombre, Clavevendedor from Usuarios where Usuario='" & Form!txtusuario.Value & "' and Contraseña='" & Form!txtpassword.Value & "'")
If Not rs.EOF Then
vNombre = rs!Nombre
vClave = rs!clavevendedor
DoCmd.OpenForm "SCN2013", acNormal
Else
MsgBox "Usuario o password no válidos"
rst.Close
Set rst = Nothing
DoCmd.Close acForm, "usuarios"
End If
End Sub

Deberías tomarte la molestia de leer un manual de access y vba, aunque sea de lo más sencillito, pues tienes fallos muy básicos (como este) porque no entiendes lo que hace el código...

Haz esto:

Private Sub Entrar_Click()
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("Select Usuario, Contraseña, nombre, Clavevendedor from Usuarios where Usuario='" & Form!txtusuario.Value & "' and Contraseña='" & Form!txtpassword.Value & "'")
If Not rs.EOF Then
vNombre = rs!Nombre
vClave = rs!clavevendedor
DoCmd.OpenForm "SCN2013", acNormal
Else
MsgBox "Usuario o password no válidos"

End If
rs.Close
Set rs = Nothing
DoCmd.Close acForm, "usuarios"
End Sub

HOLA MUCHAS GRACIAS POR TU AYUDA, Te soy honesto tengo un manual que baje de la web del programador y cada que veo un código lo estudio en ese manual pero mas bien siento que mi problema es de entendimiento ya que me es algo confuso el por que usar los códigos, pero prometo seguir metiéndome en esto siempre le voy avanzando al manual y voy haciendo ejemplos. Te agradezco mucho toda tu ayuda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas