¿Cómo hacer una formulario donde se pueda colocar una lista de varios items donde se pueda elegir una opción en cada items?

Hablo de access, he intentado crear un formulario de una tabla donde tenia los campos de id, factores a evaluar, puntaje, las 5 casillas de verificación las cuales tienen la etiqueta de A, B, C, DE, y E, luego esta la escala de calificación y el puntaje total de cada items. Y resulta que cuando a este formulario le quiero insertar como subformulario a un formulario de empleados, esta lista de items desaparece, excepto el primer items... ¿cómo puedo soluciionarlo?

1 Respuesta

Respuesta
1

Vanesa, en principio, quizá me equivoque, parece más lógico UN Empleado VARIAS evaluaciones. Por lo que se debería hacer un formulario con el empleado y un subformulario con sus evaluaciones y relacionarlos por ejemplo, por Idempleado.

¿Puedes poner una imagen de la tabla?

muchas gracias por responder. He intentado hacerla en access pero no me salio. te mando una foto de la planilla que quiero hacer en access para que te des una idea de lo que quiero hacer

No dices si vas a ser una persona la que haga la entrevista a cada, vamos a llamarle Empleado de uno en uno. Si sólo se le va a hacer una única vez( voy a suponer que es así). Si lo que quieres es imprimir muchas hojas de ese estilo para repartirlas. Voy a suponer que llamas a alguien a tu despacho y le haces una entrevista una única vez. Tampoco dices como vas a "marcar" la casilla, voy a suponer que con una x, pero podría ser una casilla de verificación.

Tengo la tabla Factores( que sólo he puesto unos cuantos, el resto ya la terminarías tu)

Tengo una tabla Entrevistas con los campos Identrevista, nombre, fecha, función y puntaje y otra tabla DetalleEntrevista con Identrevista, para relacionarlo con el anterior, A, B, C, D, E

Con estas dos últimas hago un formulario con subformulario

Cuando escribo un nombre y quiero pasar a Fecha, por ejemplo, primero comprueba que a esa persona no se le ha hecho ya la entrevista. Si fuera así, te saldría un mensaje como

Al aceptar el cursor se quedaría en nombre para que lo cambiaras. Sigamos. Si comprueba que a esa persona no se le había hecho una entrevista antes, automáticamente

Rellenas la fecha y la función. El control puntaje está bloqueado para que nadie pueda cambiarlo y a medida que vas poniendo X en las casillas, en Puntaje te va poniendo la suma de sus valores

Marcas una casilla y al pulsar enter o ir a otro

De forma que te quedaría como(sin terminar)

¿Qué quieres que esto se imprima? Bastaría con crear un informe con el diseño que quieras y en este formulario ponerle un botón y que te imprima, o bien este registro en particular o que te imprima todos. Eso lo tienes que decidir tu.

Si quieres, repito, si quieres, como ya lo tengo hecho, mándame un mensaje(sólo el mensaje) a [email protected] y te la mando. Si lo haces, en el asunto del mensaje pon tu alias Vanesa, ya que si no sé quien me escribe ni los abro.

Por cierto, el código del formulario es

Private Sub Nombre_AfterUpdate()
DoCmd.RunCommand acCmdSaveRecord
DoCmd.SetWarnings False
DoCmd.RunSQL "insert into detalleentrevista select factor from factores"
DoCmd.RunSQL "update detalleentrevista set identrevista=" & Me.IdEntrevista & ""
Me!DetalleEntrevista.Form.Requery
End Sub
Private Sub Nombre_BeforeUpdate(Cancel As Integer)
If DCount("*", "entrevistas", "nombre like '" & Me.Nombre & "'") >= 1 Then
MsgBox "Esa persona ya ha sido entrevistada", vbOKOnly + vbExclamation, "La culpa es de Vanesa"
DoCmd.CancelEvent
End If
End Sub

Y el código del subformulario es

Private Sub A_AfterUpdate()
DoCmd.RunCommand acCmdSaveRecord
Me.Parent!Puntaje = DCount("a", "detalleentrevista", "identrevista=" & Me.IdEntrevista & "") * 0 + DCount("b", "detalleentrevista", "identrevista=" & Me.IdEntrevista & "") * 0.25 + DCount("c", "detalleentrevista", "identrevista=" & Me.IdEntrevista & "") * 0.5 + DCount("d", "detalleentrevista", "identrevista=" & Me.IdEntrevista & "") * 0.75 + DCount("e", "detalleentrevista", "identrevista=" & Me.IdEntrevista & "") * 1
End Sub
Private Sub B_AfterUpdate()
DoCmd.RunCommand acCmdSaveRecord
Me.Parent!Puntaje = DCount("a", "detalleentrevista", "identrevista=" & Me.IdEntrevista & "") * 0 + DCount("b", "detalleentrevista", "identrevista=" & Me.IdEntrevista & "") * 0.25 + DCount("c", "detalleentrevista", "identrevista=" & Me.IdEntrevista & "") * 0.5 + DCount("d", "detalleentrevista", "identrevista=" & Me.IdEntrevista & "") * 0.75 + DCount("e", "detalleentrevista", "identrevista=" & Me.IdEntrevista & "") * 1
End Sub
Private Sub C_AfterUpdate()
DoCmd.RunCommand acCmdSaveRecord
Me.Parent!Puntaje = DCount("a", "detalleentrevista", "identrevista=" & Me.IdEntrevista & "") * 0 + DCount("b", "detalleentrevista", "identrevista=" & Me.IdEntrevista & "") * 0.25 + DCount("c", "detalleentrevista", "identrevista=" & Me.IdEntrevista & "") * 0.5 + DCount("d", "detalleentrevista", "identrevista=" & Me.IdEntrevista & "") * 0.75 + DCount("e", "detalleentrevista", "identrevista=" & Me.IdEntrevista & "") * 1
End Sub
Private Sub D_AfterUpdate()
DoCmd.RunCommand acCmdSaveRecord
Me.Parent!Puntaje = DCount("a", "detalleentrevista", "identrevista=" & Me.IdEntrevista & "") * 0 + DCount("b", "detalleentrevista", "identrevista=" & Me.IdEntrevista & "") * 0.25 + DCount("c", "detalleentrevista", "identrevista=" & Me.IdEntrevista & "") * 0.5 + DCount("d", "detalleentrevista", "identrevista=" & Me.IdEntrevista & "") * 0.75 + DCount("e", "detalleentrevista", "identrevista=" & Me.IdEntrevista & "") * 1
End Sub
Private Sub E_AfterUpdate()
DoCmd.RunCommand acCmdSaveRecord
Me.Parent!Puntaje = DCount("a", "detalleentrevista", "identrevista=" & Me.IdEntrevista & "") * 0 + DCount("b", "detalleentrevista", "identrevista=" & Me.IdEntrevista & "") * 0.25 + DCount("c", "detalleentrevista", "identrevista=" & Me.IdEntrevista & "") * 0.5 + DCount("d", "detalleentrevista", "identrevista=" & Me.IdEntrevista & "") * 0.75 + DCount("e", "detalleentrevista", "identrevista=" & Me.IdEntrevista & "") * 1
End Sub

Parece largo, pero todo es cosa de Copiar y Pegar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas