Insert Into, pero explicitando que registro del formulario y no el actual

Utilizo la siguiente expresión para insertar campos de una tabla en otra y borrar el registro. El proceso lo realizo desade un botón de comando en un formulario. El procedimiento se lleva a cabo en un determinado registro, y solo inserta los datos de ese registro que esta "activo", además de luego borrarlo. Mi pregunta es si puedo utilizar esa expresión pero que la misma indique un registro determinado del formulario. La idea surge porque me seria visiblemente y más "user friendly" hacer un botón que identifique cada registro a borrar (que son siempre 10 registros). Entiendo que mi fórmula usa la expresión me.(Micampo), lo que creo que habría que hacer es sustituir el me. Por el id del registro, pero no se como. Además me parece que debería expresar también que registro borra, por lo que el Runcommand no seria correcto tampoco. A continuación les dejo la expresión.

Private Sub cmdAlta_Click()
If MsgBox("¿Desea dar egreso a este paciente?", vbYesNo, "Gestion de pacientes") = vbYes Then
CurrentDb.Execute "INSERT INTO Historial_Paciente (DNI, Nombre_Apellido, Cama, F_Nacimiento, Edad, F_Ingreso, Diagnostico, Obra_Social, Derivado, Tel_Contacto, F_Egreso) VALUES ('" & Me.DNI & "','" & Me.Nombre_Apellido & "'," & Me.Cama & "," & "#" & Format(Me.F_Nacimiento, "mm/dd/yyyy") & "#" & ",'" & Me.Edad & "'," & "#" & Format(Me.F_Ingreso, "mm/dd/yyyy") & "#" & ",'" & Me.Diagnostico & "','" & Me.Obra_Social & "','" & Me.Derivado & "','" & Me.Tel_Contacto & "'," & "#" & Format(Me.F_Egreso, "mm/dd/yyyy") & "#" & ")"
DoCmd. RunCommand acCmdDeleteRecord
Me. Requery
End If
End Sub

1 Respuesta

Respuesta
1

Te prometo que no me he leído toda la instrucción pero te falta el criterio para indicarle que registro debe insertar. Por ejemplo, supón que estás en el formulario Clientes y tienes un botón con

DoCmd.RunSQL "insert into copiaclientes (uncampo, otrocampo) select nombrecompañia,nombrecontacto from clientes where idloquesea = [Escribe un id para elegir el registro]"

Así, cuando pulses el botón te preguntará el idloquesea del registro que quieras insertar. Quien dice Idloquesea, puede ser cualquier otro campo.

En el caso de borrar, sería igual, más o menos

Docmd.runsql"delete * from clientes where idloquesea=[escribe un id del registro a borrar]"

¡Gracias! Entiendo,  pero ahora me doy cuenta de que el Id de cada registro es autonumerico. El campo de la tabla que no se repite nunca en los registros es el llamado "cama". Como seria? 

Es exactamente igual. Pero me imagino que el valor de cama se repetirá en los distintos registros del formulario, por lo que sería mejor que lo pusieras como

Docmd.setwarnings false

DoCmd.RunSQL "insert into copiaclientes (uncampo, otrocampo) select nombrecompañia,nombrecontacto from clientes where cama = [Escribe un numero de cama]"

Así, cuando pulses el botón no te aparece la maldita ventana de Va a anexar...

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