Insertar recordet en tabla
Publicado por Miguel (59 intervenciones) el 27/05/2015 19:40:21
Hola a todos, tengo un par de dudas que ojala me puedan ayudar.
Tengo un form principal con dos subformularios. cada uno tiene su propia tabla y relacionados por campo en comun. Si pretendo hacer una modificación de un registro y luego cancelo o deshago el cambio, los cambios se deshacen en form principal pero en los dos subform no se deshacen los cambios.
He probado los siguiente: cuando doy opción para modificar registro, crear un recorset del registro actual de cada uno de los dos subform, luego si deseo grabar los cambios no hago nada pero si eligio cancelar o deshacer cambios, he pensado en borrar el registro actual de cada subformulario y luego insertar los que previamente habia guardado digamos como respaldo.
Me parece algo sencillo sin embargo ... no funciona. :-(
Adjunto parte de mi codigo:
Luego cuando activo el boton de modificar entra en esta breve rutina:
Luego cuando he seleccionado el boton cancelar tengo este código:
BUeno el error me da en esta linea:
DoCmd.RunSQL ("INSERT INTO [Descargas por Estaciones] SELECT * FROM Rst01")
==> me dice que no reconoce la consulta RST01
Imagino que estoy obviando algo tan sencillo pero la verdad no lo detecto ya que tampoco soy muy experto en el tema con los recordset.
He obviado algunas lineas que no tienen mucha importancia colocar como son verificacion si entre o no por agregar o modificar, etc.
Mi segunda gran pregunta y si esta creo es una tonteria. En pantalla la fecha se me muestar como dd/mm/yyyy pero cuando hago la consulta por código, las fechas se cambian a mm/dd/yyy. Deseo saber la instrucción para poner las fechas a comparar como valor de fecha. Se que cada fecha tiene un valor unico interno, cual es la función para hacerlo.
Gracias de antemano por su tiempo y respuesta.
Tengo un form principal con dos subformularios. cada uno tiene su propia tabla y relacionados por campo en comun. Si pretendo hacer una modificación de un registro y luego cancelo o deshago el cambio, los cambios se deshacen en form principal pero en los dos subform no se deshacen los cambios.
He probado los siguiente: cuando doy opción para modificar registro, crear un recorset del registro actual de cada uno de los dos subform, luego si deseo grabar los cambios no hago nada pero si eligio cancelar o deshacer cambios, he pensado en borrar el registro actual de cada subformulario y luego insertar los que previamente habia guardado digamos como respaldo.
Me parece algo sencillo sin embargo ... no funciona. :-(
Adjunto parte de mi codigo:
1
2
3
4
5
6
7
Option Compare Database
Option Explicit
Dim DbsCurrent As Database, Rst01 As Recordset, Rst02 As Recordset, opcmod As Integer
..
..
..
Luego cuando activo el boton de modificar entra en esta breve rutina:
1
2
3
4
5
6
7
8
' Rst01 va a guardar el registro actual de la tabla: Descargas por Estaciones
' Rst02 va a guardar el registro actual de la tabla: Inyección de Gas
' me.fechaproceso es el campo principal clave que esta en el formulario principal y por el cual se vinculan los subform
Set DbsCurrent = CurrentDb
Set Rst01 = DbsCurrent.OpenRecordset("SELECT * FROM [Descargas] WHERE FECHA = #" & me.fechaproceso & "#")
Set Rst02 = DbsCurrent.OpenRecordset("SELECT * FROM [Inyección] WHERE FECHA = #" & me.fechaproceso & "#")
' fin de rutina
Luego cuando he seleccionado el boton cancelar tengo este código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
DoCmd.SetWarnings False
'DoCmd.RunSQL "DELETE * FROM [Descargas] WHERE [Descargas].FECHA = #" & me.fechaproceso & "#"
DoCmd.RunSQL ("INSERT INTO [Descargas por Estaciones] SELECT * FROM Rst01")
DoCmd.RunSQL "DELETE * FROM [Inyección] WHERE [Inyección].Fecha= #" & me.fechaproceso & "#"
DoCmd.RunSQL ("INSERT INTO [Inyección de Gas] SELECT * FROM Rst02")
DoCmd.SetWarnings True
Rst01.Close
Rst02.Close
Set Rst01 = Nothing
Set Rst02 = Nothing
Set DbsCurrent = Nothing
BUeno el error me da en esta linea:
DoCmd.RunSQL ("INSERT INTO [Descargas por Estaciones] SELECT * FROM Rst01")
==> me dice que no reconoce la consulta RST01
Imagino que estoy obviando algo tan sencillo pero la verdad no lo detecto ya que tampoco soy muy experto en el tema con los recordset.
He obviado algunas lineas que no tienen mucha importancia colocar como son verificacion si entre o no por agregar o modificar, etc.
Mi segunda gran pregunta y si esta creo es una tonteria. En pantalla la fecha se me muestar como dd/mm/yyyy pero cuando hago la consulta por código, las fechas se cambian a mm/dd/yyy. Deseo saber la instrucción para poner las fechas a comparar como valor de fecha. Se que cada fecha tiene un valor unico interno, cual es la función para hacerlo.
Gracias de antemano por su tiempo y respuesta.
Valora esta pregunta


0