Pasar datos de un campo combinado a campo de texto

Tengo un formulario de menú principal donde tengo un campo de usuarios con un campo combinado y no se porque no me rellena los campos automáticos al abrir el formulario pongo a continuacion el codigo que estoy usando para ello pongo a continuacion el codigo que estoy usando para ello

Private Sub Form_Load()
Me.lbl_UsuarioActivo.Caption = UCase(LogedUser)

For i = 1 To 5
Next i
USUARIO = Me.lbl_UsuarioActivo.Caption
Forms![MENU_PRINCIPAL]![USUARIO] = USUARIO

For i = 2 To 5
Next i
USUARIOS = Me.lbl_UsuarioActivo.Caption
Forms![MENU_PRINCIPAL]![USUARIOS] = USUARIOS

For i = 3 To 5
Next i

If IsNumeric(USUARIOS) Then
NOMBRE = [USUARIOS].[Column](1)
DEPARTAMENTO = [USUARIOS].[Column](1)
SECCION = [USUARIOS].[Column](3)
TELEFONO = [USUARIOS].[Column](4)
End If
End Sub

Al abrir el formulario capta el usuario logeado y me busca el usuario logeado para poder mostrar los datos de interés de cada usuario con su logeo. No se porque no me copia los datos con la función if.

1 respuesta

Respuesta
2

Honestamente, no entiendo la función, pero si por si fuera esto.

Me parece entender que en un formulario tienes un combinado donde eliges algo y quieres que te rellene unos cuadros de texto con datos de la tabla Usuarios. Vamos a suponer que en el origen de la fila del combinado están los campos Idusuario y Usuario(aunque sólo muestres ésta última), y que la columna dependiente es la de IdUsuario. En sus propiedades-eventos. Después de actualizar puedes poner

TextA=dlookup("campoA","usuarios","idusuario=" & me.nombredelcombo & "")

TextB=dlookup("campoB","usuarios","idusuario=" & me.nombredelcombo & "'")

Etc. Luego, por si te desplazas por los registros y quieres que al volver se sigan viendo, ya que supongo que TextA, TextB,... son independientes, deberías poner en el evento Al activar el registro

If not isnull([nombredelcombo]) then

TextA=dlookup("campoA","usuarios","idusuario=" & me.nombredelcombo & "")

TextB=dlookup("campoB","usuarios","idusuario=" & me.nombredelcombo & "'")

else

TextA=""

TextB=""

end if

Pero como te decía, si pudieras concretar algo más, sería mejor.

Intentare explicarme mejor.

al iniciar el programa sale el form login que el usuario pone su nombre de usuario y contraseña el cual si es correcto abre la pantalla menú del programa. en el menú recoge el usuario activo y he puesto un cuando combinado que esta enlazado con el cuadro combinado que según el usuario logeado sea seleccionado automáticamente en el cuadro combinado, ese cuadro combinado muestra NOMBRE COMPLETO, DEPARTAMENTO, SECCIÓN Y TELÉFONO, lo que quiero es que los datos de esas columnas del cuadro combinado me los pase a los campos pertinentes pero con el codigo este:

If IsNumeric(USUARIOS) Then
NOMBRE = [USUARIOS].[Column](1) "este es el campo clave con texto porque busca el usuario"
DEPARTAMENTO = [USUARIOS].[Column](1)
SECCION = [USUARIOS].[Column](3)
TELEFONO = [USUARIOS].[Column](4)
End If

este es el código que uso para pasar los datos los otros campos desde el campo combinado pero.... no me los pasa

Juyan, me vas a perdonar pero me parece que complicas demasiado la cosa. Verás, vamos a suponer que tengo una tabla Usuarios(lo dejo todo a la vista, no le pongo máscara de entrada para que se vea)

Tengo otra tabla Empleados(supongo que lo que "entran" son empleados), con sus datos(no te fijes en los campos, por no escribir uso tablas que ya tengo)

También tengo el formulario de entrada

Donde voy a escribir los datos que me piden

Y por último tengo el formulario que se abrirá en caso de que acierten

Los cuadros de texto son independientes, les he puesto así, para que se vea adonde va cada cosa. Si ahora en el formulario de entrada escribo

y pulso validar, como en este caso es correcto, me abre el otro formulario

Y no necesito ningún combinado

El código del evento Al activar registro del formulario Clientes es simplemente

Texto9 = DLast("usuario", "registro")
NombreContacto = DLookup("nombrecontacto", "empleados", "empleado='" & Me.Texto9 & "'")
CargoContacto = DLookup("cargocontacto", "empleados", "empleado='" & Me.Texto9 & "'")
Pais = DLookup("pais", "empleados", "empleado='" & Me.Texto9 & "'")

El nombre del cuadro de texto donde aparece el usuario es Texto9

Al no saber como determinas el nombre del usuario que ha entrado, yo uso una tabla Registro donde se guarda el usuario que entró, el día y la hora, pero se podría hacer de cualquier forma. Y si no quieres cuadro de texto, que quieres etiqueta donde yo pongo me.texto9, basta con poner

Me. Nombreetiqueta. Caption

¡Gracias! 

no conseguí entender como querías indicarme para hacer el funcionamiento. mi formulario menú que no crea registros solo tiene iconos de menú para acceder a distintos formularios. conseguí poder sacar los datos de los usuarios que necesitaba para mostrar. gracias por la ayuda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas