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.

1 Respuesta

Respuesta
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
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
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.
Si, entras en Access a herramientas opciones, ficha "Modificar/Buscar" y a la derecha desactivas las 3 opciones:
Cambios en los registros
Eliminación de documentos
Consultas de acción
Hola, mil disculpas por no haberte escrito antes, te agradezco muchísimo tu ayuda, funcionó super bien, estuviste genial, gracias por dedicarme tanto tiempo, muchísimas gracias por todo, eres super. Es la mejor solución que me han dado a un problema ya que me explicaste a detalle todo, te luciste.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas