Almacenar valores de varios controles en un solo campo de tabla. (Campo de tabla que recopila info de varios textbox distintos)

Tengo que realizar un formulario para las indicaciones medicas, las drogas que recibirá un paciente. Esa información es diaria, o sea que habrá un registro por cada paciente cada día. Planeaba hacerlo de la siguiente manera:

Tabla que posea un Id autonumérico, fecha de la indicación, al menos 20 campos para almacenar 20 variantes de drogas (droga1, droga2, etc...), cama del paciente.

Formulario con un Combobox con origen de datos una consulta donde están todos los fármacos, al lado otro combobox donde se pueda seleccionar "cada cuantas horas" y otro que diga la "vía de administración" (oral, IV, IM, etc...)

Lo que quisiera saber es si es posible que al seleccionar por ejemplo "Aspirina, c/8hs, VO" esa info quede registrada en el campo "Droga x", evitando así crear el mismo numero de campos de "cada tantas horas" y "vía de administración" como "drogas" haya. ¿Se entiende?

Respuesta
2

Esteban: Creo entender que lo que pretendes es "Concatenar" el contenido de unos Controles.

Si eso fuera así entre otras soluciones, puedes crear un Control, (con origen de datos en un campo de la Tabla), oculto o no que sea Drogax, y después de ello, en cada evento despues de actualizar de los Combos, que para el ejemplo los nombraré como CboFarm, CboHoras, CboAdmin.

Dim VarCadena As String
VarCadena = ""
Private Sub CboFarm_AfterUpdate()
VarCadena = Me.CboFarm.Value & ", "
End Sub
Private Sub CboHoras_AfterUpdate()
If Not IsNull(Me.CboFarm) Then
    VarCadena = VarCadena & Me.CboHoras.Value & ", "
Else
     MsgBox "Has de llenar primero el valor del Fármaco",vbcritical,"FALTA DATO"
     VarCadena = ""
End If
End Sub
Private Sub CboAdmin_AfterUpdate()
If Not IsNull(Me.CboFarm) And Not IsNull(Me.CboHoras) Then
    VarCadena = VarCadena & Me.CboHoras.Value & ", " & Me.CboAdmin.Value
    Me.Drogax = VarCadena
Else
     MsgBox "Llena primero el valor del Fármaco Y Horas",vbcritical,"FALTA DATO"
     VarCadena = ""
End If
End Sub

Puedes ahorrarte los dos Primeros y programar solo el útimo un poco Modificado

Dim VarCadena As String
Private Sub CboAdmin_AfterUpdate()
If Not IsNull(Me.CboFarm) And Not IsNull(Me.CboHoras) Then
    VarCadena = Me.CboFarm.Value & ", " Me.CboHoras.Value & ", " & Me.CboAdmin.Value
    Me.Drogax = VarCadena
Else
     MsgBox "Llena primero el valor del Fármaco Y Horas",vbcritical,"FALTA DATO"
     VarCadena = ""
End If
End Sub

He ido escribiendo sobre la Marcha, pero no creo tengas dificultades. Un saludo >> Jacinto

1 respuesta más de otro experto

Respuesta
2

No dices, si el campo DrogaX está en la tabla o en el formulario.

Vamos a suponer que está en la tabla, pero no en el formulario. En el evento Despues de actualizar del tercer combinado puedes poner

docmd.runsql"update nombretabla set drogaX='" & me.combinado1 & "' &", "& '" me.combinado2 & "' &, "& '" me.combinado3 & "' where... y aquí el criterio que identifique ese registro en particular"

Supongamos que en el formulario está el cuadro de texto DrogaX, en el mismo evento que antes puedes poner

dorgaX='" & me.combinado1 & "' &", "& '" & me.combinado2 & "' &", "&'" me.combinado3 & "'

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas