Realizar Baja Lógica en access

Yo quiero copiar los datos de mi tabla Alta vehículo a Eliminados y ya que este ahí eliminar el registro de la tabla Alta Vehículo, pero en el momento de dar clic al botón no hace nada este es mi código ojala pudieran ayudarme.

Private Sub Eliminar_Click()
Dim ValorA, ValorB, ValorC, ValorD, ValorE, ValorF, SQL
ValorA = Me.Placas
ValorB = Me.Tipo_de_vehiculo
ValorC = Me.Modelo
ValorD = Me.Marca
ValorE = Me.Año
ValorF = Me.Uso
ValorG = Me.Motivo
SQL = "INSERT INTO Eliminados(Placas, Tipo_de_vehiculo, Modelo, Marca, Año, Uso, Motivo)" & "Select '" & ValorA& "','"&ValorB&"','"&ValorC&"','"&ValorD&"',"&ValorE&",'"&ValorF&"','"&ValorG&"'"
DoCmd. RunSQL SQL
DoCmd. DoMenuItem acFormBar, acEditMenu, 8,, acMenuVer70
DoCmd. DoMenuItem acFormBar, acEditMenu, 6,, acMenuVer70
End Sub

Respuesta
1

Yo cambiaría la sintaxis de la expresión SQL por:

SQL = "INSERT INTO Eliminados(Placas, Tipo_de_vehiculo, Modelo, Marca, Año, Uso, Motivo) VALUES ('" & ValorA & "', "'" & ValorB & "', '" & ValorC & "', '" & ValorD & "', '" & ValorE & "', '" & ValorF & "', '" & ValorG & "')"

Es decir, por un lado la sintaxis de INSERT es:

INSERT INTO Tabla (Campo1, Campo2, ..., CampoN) VALUES (Valor1, Valor2, ..., ValorN)

Y por otro lado, al tener que concatenar los datos para construir la sentencia SQL, tienes que tener en cuenta el tipo de dato, en este caso, como parece ser que son todo cadenas, cada uno de los datos tiene que ir rodeado por comillas simples ' '.

En caso de que algún dato no fuera cadena, sino que fuera entero, quita las comillas simples.

Prueba a ver si te vale y si no me lo dices y vemos donde está el error.

Hola Tomas, te agradezco el tiempo que tomas para ayudarme, fíjate que ya cambie la sintaxis como me sugeriste pero me envía un error de compilación (Se esperaba fin de la instrucción) y lo marca en las comillas entre placas y tipo de vehículo, yo apenas estoy incursionando en Access y no entiendo mucho del código pero te envío como quedo. 

Private Sub Eliminar_Click()
Dim ValorA, ValorB, ValorC, ValorD, ValorE, ValorF, ValorG, SQL
ValorA = Me.Placas
ValorB = Me.Tipo_de_vehiculo
ValorC = Me.Modelo
ValorD = Me.Marca
ValorE = Me.Año
ValorF = Me.Uso
ValorG = Me.Motivo
SQL = "INSERT INTO Eliminados(Placas, Tipo_de_vehiculo, Modelo, Marca, Año, Uso, Motivo)VALUES("&ValorA&"," ( Aquí es donde me marca el error) &ValorB&","&ValorC&","&ValorD&",&ValorE&,"&ValorF&","&ValorG&")"
DoCmd.RunSQL SQL
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
End Sub

No te preocupes, todos hemos aprendido.

Voy a suponer, como te decía antes, que todos los campos son de texto. Es importante que dejes espacios en blanco en las sentencias, sino Access se lía.

Mira el código que te paso. Con este tipo de letra se ve mejor lo que te quería decir.

SQL = "INSERT INTO Eliminados (Placas, Tipo_de_vehiculo, Modelo, Marca, Año, Uso, Motivo) VALUES ('" & ValorA & "', '" & ValorB & "', '" & ValorC & "', '" & ValorD & "', '" & ValorE & "', '" & ValorF & "', '" & ValorG & "')"

Prueba y si no sale, pregunta otra vez.

Listo, tenias razón eran los espacios, te agradezco el tiempo que te tomaste y tu comprensión para esta principiante.

P.D.: Todos los campos eran de texto :) ¡Gracias! 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas