Error de sintáxis en la Instrucción Insert Into.

¿Cómo les va? Desde ya muchas gracias por leer mi problema...

Resulta que tengo dos tablas: Afiliados y Bajas... Si sucediera el caso de que se desafilian no quiero que el número de ese afiliado se repita (Por lo general ocurre con el último registro) Por eso paso el campo Num_Afiliado a una tabla Bajas donde poder consultar las bajas y de esa forma no repetir el Número de Afiliado...

El problema que me encuentro es que me dice que Error de sintáxis en la Instrucción Insert Into... DESDE YA MUCHAS GRACIAS!

Este es el código...

StrNuevoAfiliado = "INSERT INTO AFILIADOS (Num_AFiliado,Num_Orden,ApeyNomAfiliado,FNacAfiliado,Sexo,TipoDoc,NumDoc,Alta,AgenteRetencion;) VALUES (" & NumAfiliado & "," & NumOrden & ",'" & NomyApe & "',#" & Format(FechaNacimiento, "MM/DD/YYYY") & "#,'" & Sexo & "','" & CmbTipoDoc.Text & "'," & NumDocumento & ",#" & Format(FechaInscripcion, "MM/DD/YYYY") & "#,'" & RegimenPrevisional & "') select DISTINCT Num_Afiliado FROM BAJASAFILIADO"

1 Respuesta

Respuesta

Vamos a ver... si usas INSERT INTO con VALUES, además de que tienes que dar el mismo número de valores (en la parte de VALUES) que campos tienes en la parte del INSERT, no puedes usar SELECT.

Y cuando usas INSERT INTO con SELECT, tienes que tener en el SELECT el mismo número de campos (y del mismo tipo) en la parte del INSERT que en la del SELECT.

Por otro lado, la SQL que intentas construir poco o nada tiene que ver con lo que planteas en tu pregunta...

Si lo que quieres (como dices) es pasar el campo Num_Afiliado a una tabla Bajas donde poder consultar las bajas y de esa forma no repetir el Número de Afiliado, lo que necesitas es algo así:

INSERT INTO Bajas (Num_Afiliado) VALUES Num_Afiliado_Baja

Donde Num_Afiliado_Baja será el campo o valor que quieras dar de baja...

Hola!!! Gracias por responder!!

Reformulo la última parte... Lo que quiero es que al insertar un nuevo registro, no se repita el número Num_Afiliado... Por eso es que quiero que sea distinto al Num_Afiliado de la Tabla BajasAfiliado.

Espero se entienda. Muchas gracias!!!

Pues para eso no necesitas ninguna SQL ni nada parecido, basta con que uses una función de dominio para ver si ese número está en la tabla o no. Por ejemplo, en el evento "Antes de actualizar" de tu campo Num_Afiliado generas el código siguiente:

If DCount("*","Bajas","Num_Afiliado=" & Me.Num_Afiliado) Then

Msgbox "Ese número ha sido dado de baja, elige otro"

Cancel=True

End If

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas