Seleccionar campo de la misma tabla

Tengo una tabla que tiene campos relacionados con datos de RRHH. Se trata de puestos de trabajo. Uno de los campos es Depende de. Quisiera que el input de ese campo sea seleccionado de los registros de la propia tabla. ¿Es posible?

1 Respuesta

Respuesta
1
No acabo de entender bien tu consulta. ¿Podrías explicarla un poco más? Estaría muy bien si pudieras poner un ejemplo.
Ya me dirás cosas, a ver si podemos hacer algo.
Uno de los campos de la tabla es el nombre del puesto. Por ejemplo, Gerente General, Gerente Comercial. Otro campo, se llama "DependeDe". En este ultimo campo quisiera poder seleccionar registros del otro campo, Por ejemplo, en el registro Gerente comercial, en el campo "DependeDe", registrar Gerente General. Espero haber sido claro. Gracias por la paciencia.
Te explico los pasos para hacer lo que quieres. Doy por supuesto que sabes hacer todo lo que te voy a explicar. Lógicamente si hay algo que no sepas cómo hacerlo me lo comentas y te lo explico con más detalle. Y, si no estás muy seguro, te recomiendo que antes lo pruebes en una copia de tu base de datos, para no tocar el original.
Vamos allá:
1.- En el formulario donde introduces los datos debes tener un campo de texto (supongo) que es "DependeDe". Coges ese campo y lo borras.
2.- Creas un cuadro combinado en su lugar y le pones por nombre (sin comillas): "cboDepende" (Propiedades->Pestaña Otras->Nombre)
3.- Linkas el origen del control al campo "DependeDe" (Propiedades->Pestaña Datos->Origen del control
4.- Asignas el siguiente código al evento "Al recibir el enfoque" (Propiedades->Pestaña eventos->Al recibir el enfoque)
---
Private Sub cboDepende_GotFocus()
    Dim miSql As String
        'Creamos la consulta para coger los valores
    miSql = "SELECT [Tabla1].[Cargo] FROM [Tabla1]"
    miSql = miSql & " GROUP BY [Tabla1].[Cargo]"
        'Establecemos las propiedades RowSource del
        'cuadro combinado cboDepende
    With Me.cboDepende
        .RowSourceType = "Tabla/Consulta"
        .RowSource = miSql
        .Dropdown
    End With
End Sub
---
5.- En el código tienes que sustituir por los nombres que tú tengas lo siguiente:
.- Tabla1->El nombre de la tabla donde guardas los datos del formulario
.- Cargo->El nombre del campo que tú utilizas para guardar el cargo que tiene el trabajador
6.- La línea de código ".Dropdown" hace que se despliegue automáticamente el cuadro combinado. Si prefieres que se despliegue cuando tú haces click sobre la flecha basta que la elimines del código.
7.- Comprueba el índice de tabulación que tiene "cboDepende" (Propiedades->Pestaña Otras-> Índice de tabulación). Si no es correcto lo cambias.
Y ya está. En teoría, a medida que vayas añadiendo cargos se te irán añadiendo a las opciones del cuadro combinado.
Ya me dirás si te ha funcionado, o si tienes alguna duda.
Funciona correctamente, carga en la tabla el registro que pretendo. Solo una pequeña molestia: Al clickear en el cuadro combinado me da un mensaje de error, dice que la expresión tiene un valor ambiguo: cboDepende_GotFocus(). Igual registra en la tabla.
Me he creado una miniBD con estos campos que comentamos y, tras testearla, aparte de ver que en este caso el dropdown es bastante molesto cuando vas recorriendo los registros, no he podido conseguir causar el error que me comentas. En principio se me ocurren dos cosas:
1.- En el código que tú has escrito para adaptarlo a tu BD hay algo que no "pirula" o,
2.- En la estructura de las tablas o del formulario, o en los campos, hay algo que provoca el error.
Si te parece bien me podrías copiar el código que tú has escrito, a ver si veo algo que me "suene raro". O bien, si quieres, me podrías pasar comprimida en un zip una copia de tu BD (borrando los registros si tienes información delicada) y yo le echo un vistazo.
Mi correo es [email protected]
Ya me dirás cosas.
No te olvides de valorar y finalizar la consulta!   ;)
Un abrazo, y un gran saludo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas