Guardar desde varios formularios a única linea

Tengo tres formularios para guardar datos de una sola persona, el problema es que como son muchos datos, me toco crear tres formularios para poder llenar todos los datos.. Estoy utilizando como clave principal el numero de identifiacion del paciente, y pues este es el primer datos que dígito en el formulario 1, hasta aquí ningún problema..
El problema viene cuando paso al formulario 2 que es continuación de datos del paciente que escogí en el formulario1 cuando tengo todos los datos y los guardo me los pega pero en un nueva fila y de esta manera no me sirve porque me generaría un desorden que después no se esos datos a que usuario pertenece...
Mi pregunta es como puedo hacer para que los datos que yo agregue en los formularios 2 y 3 se peguen a continuación de los datos del formulario1, que queden en la misma fila, para que sea considerado como un solo registro...

1 respuesta

Respuesta
1
Utiliza UPDATE no INSERT, en los formulariso 2 y 3
Gracias por la atención, yo hasta ahora estoy empezando en este cuento de la programación, y pues el código que tengo es el siguiente para la hoja1.
trate de meter la respuesta en esta linea
txtSQl = "select * from Datosp where Nhistoria  =  '" & Usuario & "'"
Pero me da un error. Te agradecería si me puedes echar una mano para ver que estoy haciendo mal, para poder guardar los datos del primer formulario y que los datos del formulario 2 y 3 se peguen en la misma fila del primer formulario.
Option Explicit
Dim cnn As New ADODB.Connection
Dim rss As New ADODB.Recordset
Dim cn As New ADODB.Connection
'CONEXION PARA GUARDAR LOS DATOS EN LA TABLA
Private Sub Form_Load()
'establece la cadena de conexión a utilizar en la propiedad ConnectionString
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
App.Path & "\Historias.mdb" & ";Persist Security Info=False"
'abre la base de datos
cn.Open
'Abre el recordset enviando la consulta sql
rss.Open "Select * from AHISTORIA", cn, adOpenDynamic, adLockOptimistic
'abre formulario y empieza un registro nuevo
rss.AddNew
End Sub
Private Sub Guardar_Click()
Text12.Text = CLng(rss("codapertura"))
'On Error GoTo fallo:
If Text1 = "" Or Text2 = "" Then
MsgBox "Debe completar los datos", vbExclamation
Text2.SetFocus
Exit Sub
End If
rss.Update
rss("Identificacion") = Text1.Text
rss("Nombre") = Text2.Text
rss("Sintoma") = Text3.Text
rss("Cronologia") = Text4.Text
rss("Antecedentes") = Text5.Text
rss("Patologico") = Text6.Text
rss("Traumatico") = Text7.Text
rss("Quirurgico") = Text8.Text
rss("Farmacologico") = Text9.Text
rss("Toxico") = Text10.Text
rss("transfucional") = Text11.Text
MsgBox " Registro guardado", vbInformation, "Grabar"
rss.AddNew
Exit Sub
Unload Me
'fallo:
'MsgBox "Este datos ya existe"
End Sub
Esto :
rss. AddNew
Va al principio de rss("Campo")= algo..
y el rss. Update va al fina de todas esas lineas
Enel formulario 2 y 3 no va la linea de rss. AddNew, entonces solo cambias los campos que grabas y el rss. Update al final para grabar.
Ok el problema ahora es que solo me guarda la primera vez los datos del formulario2 y solo se van actualizando pero no se agregan cada vez que voy agragando datos en el formulario 1.. los datos del formulario 2 solo se actualizan pero no se agregan y si le pongo rss. Addnew entonces se agrega pero una fila más abajo de los datos del formulario uno . no logro hacer que se sincronizen y que los dos se vallan agragando fila a fila
FORMULARIO UNO
'CONEXION PARA GUARDAR LOS DATOS EN LA TABLA
Private Sub Form_Load()
'establece la cadena de conexión a utilizar en la propiedad ConnectionString
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
App.Path & "\Historias.mdb" & ";Persist Security Info=False"
'abre la base de datos
cn.Open
'Abre el recordset enviando la consulta sql
rss.Open "Select * from AHISTORIA", cn, adOpenDynamic, adLockOptimistic
'abre formulario y empieza un registro nuevo
'rss.AddNew
'rss.AddNew
End Sub
Private Sub Guardar_Click()
'Text12.Text = CLng(rss("codapertura"))
'On Error GoTo fallo:
If Text1 = "" Or Text2 = "" Then
MsgBox "Debe completar los datos", vbExclamation
Text2.SetFocus
Exit Sub
End If
rss.AddNew
'rss.Update
rss("Identificacion") = Text1.Text
rss("Nombre") = Text2.Text
rss("Sintoma") = Text3.Text
rss("Cronologia") = Text4.Text
rss("Antecedentes") = Text5.Text
rss("Patologico") = Text6.Text
rss("Traumatico") = Text7.Text
rss("Quirurgico") = Text8.Text
rss("Farmacologico") = Text9.Text
rss("Toxico") = Text10.Text
rss("transfucional") = Text11.Text
rss.Update
MsgBox " Registro guardado", vbInformation, "Grabar"
Exit Sub
Unload Me
'fallo:
'MsgBox "Este datos ya existe"
End Sub
FORMULARIO DOS
Option Explicit
'Dim cnn As New ADODB.Connection
Dim rss As New ADODB.Recordset
Dim cn As New ADODB.Connection
'Connection Confirmation
Private Sub Form_Load()
'establece la cadena de conexión a utilizar en la propiedad ConnectionString
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
App.Path & "\Historias.mdb" & ";Persist Security Info=False"
'abre la base de datos
cn.Open
'Abre el recordset enviando la consulta sql
rss.Open "Select * from AHISTORIA", cn, adOpenDynamic, adLockOptimistic
'abre formulario y empieza un registro nuevo
'rss.AddNew
'rss.Update
End Sub
Private Sub Command1_Click()
rss.Update
rss("Polio") = Text1.Text
rss("MMR") = Text2.Text
rss("Malaria") = Text3.Text
rss("Sarampion") = Text4.Text
rss("Hemofilus") = Text5.Text
rss("Fieb_Amarilla") = Text6.Text
rss.Update
MsgBox " Registro guardado", vbInformation, "Grabar"
End Sub
Lo que sucede es que en el formulario 2 y 3 tienes que pararte en el registro que vas a modificar, con select * from te colocas en el primer registro de la tabla, no en el registro real que quieres modificar.
Debes agregarle un Where a la sentencia SQL para ubicar el redgistro correcto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas