Bajas lógicas
Desde mi formulario como podría dar de baja un registro, y en lugar de eliminarlo físicamente pasarlo a otra tabla. Quiero aclararte que soy inexperta en access.
Respuesta de gajimenb
1
1
Apreciada Isabel:
La buena noticia es que no es muy difícil, la mala es que necesitas hacer algo de código de Visual Basic, pero no te asustes que no es nada complicado, Veamos:
Entras al diseño de tu formulario y agregas un Botón, utilizando la barra "Cuadro de herramientas" si no esta activa ingresas por el menú ver Cuadro de herramientas, ahí buscas las opción "Botón de comando" lo seleccionas y luego pintas un botón dentro del formulario. Cuando termines de pintarlo es posible que aparezca un asistente, en ese caso lo cancelas. Luego sobre el botón das clic derecho y escoges "propiedades", y aparecerá una ventana con las diferentes propiedades del botón. Lo primero que vamos a hacer es cambiarle el nombre, para ello vas a la ficha "Otras" y en donde dice "nombre" colocas algo más apropiado como "EliminarRegistro", no uses espacios en blanco ni tildes. Luego te vas para la ficha "Eventos", buscas "Al hacer clic"; al frente aparecen ... los oprimes y seleccionas "Generador de código".
Ok aquí empieza lo bueno debería aparecer algo como lo siguiente:
Private Sub EliminarRegistro_Click()
End Sub
Si usaste un nombre diferente para el botón entos aparecerá ahí. Como no me dices nombres de tablas y campos voy a suponer que la tabla a donde quieres llevar los registros que borraste se llama "Eliminados" y los campos (tanto en el formulario como en la tabla eliminados) son Campos, CampoB y CampoC
Entonces vas a completar el código anterior para que quede así:
Private Sub EliminarRegistro_Click()
Dim ValorA, ValorB, ValorC, SQL
ValorA = Me.CampoA
ValorB = Me.CampoB
ValorC = Me.CampoC
SQL = "INSERT INTO Eliminados ( CampoA, CampoB, CampoC ) " _
& "SELECT '" & ValorA & "', '" & ValorB & "', '" & ValorC & "'"
DoCmd. RunSQL SQL
DoCmd. DoMenuItem acFormBar, acEditMenu, 8,, acMenuVer70
DoCmd. DoMenuItem acFormBar, acEditMenu, 6,, acMenuVer70
End Sub
La línea dim crea unas variables donde vamos a almacenar los datos que necesitamos, las 3 líneas que siguen almacenan los datos de los campo en el formulario en sus respectivas variables, por supuesto aquí tendrás que cambiar los nombres (Campos)por los nombres en el formulario, además tendrás que agregar en la primera línea y aquí todas las variables necesarias.
Las siguientes tres líneas anexan los registros a la tabla eliminados:
INSERT INTO Eliminados ( CampoA, CampoB, CampoC )
Aquí tendrías que agregar todos los campos de la tabla eliminados
SELECT '" & ValorA & "', '" & ValorB & "', '" & ValorC & "'"
Aquí tendrías que ir agregando las variables que tomaste del formulario. Para agregar una variable nueva haces lo siguiente:
Íbamos aquí: '" & ValorC & "' agregas una coma y la nueva variable:
'" & ValorC & "', '" & ValorD & "'
ojo al final va un par de comillas " por eso queda asi:
'" & ValorC & "', '" & ValorD & "'"
Lo de las comillas es lo más canson. Otra cosa si un campo es numérico (Digamos el CampoB) en la tabla "Eliminados" entonces no va así:
'" & ValorB & "'
sino asi:
" & ValorB & "
Fíjate que le quitas el apostrofe antes y después
Las últimas dos líneas borran el registro del formulario y por consiguiente de la tabla.
Bueno espero no haberte confundido mucho, si no entiendes o no te funciona algo me vuelves a preguntar, suerte
Gonzalo
La buena noticia es que no es muy difícil, la mala es que necesitas hacer algo de código de Visual Basic, pero no te asustes que no es nada complicado, Veamos:
Entras al diseño de tu formulario y agregas un Botón, utilizando la barra "Cuadro de herramientas" si no esta activa ingresas por el menú ver Cuadro de herramientas, ahí buscas las opción "Botón de comando" lo seleccionas y luego pintas un botón dentro del formulario. Cuando termines de pintarlo es posible que aparezca un asistente, en ese caso lo cancelas. Luego sobre el botón das clic derecho y escoges "propiedades", y aparecerá una ventana con las diferentes propiedades del botón. Lo primero que vamos a hacer es cambiarle el nombre, para ello vas a la ficha "Otras" y en donde dice "nombre" colocas algo más apropiado como "EliminarRegistro", no uses espacios en blanco ni tildes. Luego te vas para la ficha "Eventos", buscas "Al hacer clic"; al frente aparecen ... los oprimes y seleccionas "Generador de código".
Ok aquí empieza lo bueno debería aparecer algo como lo siguiente:
Private Sub EliminarRegistro_Click()
End Sub
Si usaste un nombre diferente para el botón entos aparecerá ahí. Como no me dices nombres de tablas y campos voy a suponer que la tabla a donde quieres llevar los registros que borraste se llama "Eliminados" y los campos (tanto en el formulario como en la tabla eliminados) son Campos, CampoB y CampoC
Entonces vas a completar el código anterior para que quede así:
Private Sub EliminarRegistro_Click()
Dim ValorA, ValorB, ValorC, SQL
ValorA = Me.CampoA
ValorB = Me.CampoB
ValorC = Me.CampoC
SQL = "INSERT INTO Eliminados ( CampoA, CampoB, CampoC ) " _
& "SELECT '" & ValorA & "', '" & ValorB & "', '" & ValorC & "'"
DoCmd. RunSQL SQL
DoCmd. DoMenuItem acFormBar, acEditMenu, 8,, acMenuVer70
DoCmd. DoMenuItem acFormBar, acEditMenu, 6,, acMenuVer70
End Sub
La línea dim crea unas variables donde vamos a almacenar los datos que necesitamos, las 3 líneas que siguen almacenan los datos de los campo en el formulario en sus respectivas variables, por supuesto aquí tendrás que cambiar los nombres (Campos)por los nombres en el formulario, además tendrás que agregar en la primera línea y aquí todas las variables necesarias.
Las siguientes tres líneas anexan los registros a la tabla eliminados:
INSERT INTO Eliminados ( CampoA, CampoB, CampoC )
Aquí tendrías que agregar todos los campos de la tabla eliminados
SELECT '" & ValorA & "', '" & ValorB & "', '" & ValorC & "'"
Aquí tendrías que ir agregando las variables que tomaste del formulario. Para agregar una variable nueva haces lo siguiente:
Íbamos aquí: '" & ValorC & "' agregas una coma y la nueva variable:
'" & ValorC & "', '" & ValorD & "'
ojo al final va un par de comillas " por eso queda asi:
'" & ValorC & "', '" & ValorD & "'"
Lo de las comillas es lo más canson. Otra cosa si un campo es numérico (Digamos el CampoB) en la tabla "Eliminados" entonces no va así:
'" & ValorB & "'
sino asi:
" & ValorB & "
Fíjate que le quitas el apostrofe antes y después
Las últimas dos líneas borran el registro del formulario y por consiguiente de la tabla.
Bueno espero no haberte confundido mucho, si no entiendes o no te funciona algo me vuelves a preguntar, suerte
Gonzalo
Disculpa que te escriba hasta ahorita, pero he estado algo indispuesta y no había podido hacer lo que me dijiste, pero ya lo hice y funcionó de maravilla, ¿pero sabes que?, si pude hacer el cambio a la tabla que yo quiero, pero no pude dar de baja, así que lo que hice, con el asistente cree un botón que diera de bajas, pero al oprimirlo, no se da de baja nada, solo se escucha un sonidito como diciendo que no pudo ser activado el botón, ¿sabes por qué pasa eso?, ¿Acaso otra función estará impidiendo que se active el botón?, gracias por todo, espero puedas ayudarme nuevamente.
Cuéntame como creaste el botón y si te sale algún mensaje de error. También puedes entrar a las propiedades del botón y por la ficha "eventos" en el evento, "Al hacer clic" mirar que esta haciendo el botón. COpia lo que aparezca ahí y me lo mandas.
Gajimenb
Gajimenb
En esta sentencia:
SQL = "INSERT INTO Eliminados ( CampoA, CampoB, CampoC ) " _
& "SELECT '" & ValorA & "', '" & ValorB & "', '" & ValorC & "'"
DoCmd.RunSQL SQL
Me aparece un mensaje, es una advertencia de que se va a anexar un registro a la tabla, ¿es posible quitar ese mensaje?
Es lo único que quisiera modificar, todo lo demás esta excelente ha funcionado de maravilla.
Gracias, nuevamente.
SQL = "INSERT INTO Eliminados ( CampoA, CampoB, CampoC ) " _
& "SELECT '" & ValorA & "', '" & ValorB & "', '" & ValorC & "'"
DoCmd.RunSQL SQL
Me aparece un mensaje, es una advertencia de que se va a anexar un registro a la tabla, ¿es posible quitar ese mensaje?
Es lo único que quisiera modificar, todo lo demás esta excelente ha funcionado de maravilla.
Gracias, nuevamente.
- Compartir respuesta
1 comentario
Hola yo quiero hacer lo mismo que Isabel pero en el momento de dar clic al boton no hace nada este es mi codigo ojala pudieran ayudarmePrivate Sub EliminarRegistro_Click()Dim ValorA, ValorB, ValorC, ValorD, ValorE, ValorF, SQLValorA = Me.Tipo_de_vehiculoValorB = Me.ModeloValorC = Me.MarcaValorD = Me.AñoValorE = Me.UsoValorF = Me.PlacasSQL = "INSERT INTO Eliminados (Tipo_de_vehiculo, Modelo, Marca, Año, Uso, Placas)" & "SELECT" '&ValorA&'","'&ValorB&'","'&ValorC&'"',"&ValorD&","'&ValorE&'","'&ValorF&'""DoCmd.RunSQL SQLDoCmd.DoMenuItem acFormBar, acEditMenu, 8, acMenuVer70DoCmd.DoMenuItem acFormBar, acEditMenu, 6, acMenuVer70End Sub - Diana Hernandez