Error en edición en una base de datos sql en visual
Hola necesito saber sobre el error que me da en la parte de edición en una ABM estoy programando en visual basic con SQL el alta me funciona bien, al igual que la baja pero en la parte de editar me surge este error linea 1:sintaxis incorrecta cerca de "=" si alguien puede decirme de que se trata se lo agradeceré. Gracias
1 respuesta
Respuesta de santiagomf
1
1
santiagomf, Más de 35 años en la informática y más de 20 trabajando con...
Para saber el error habría que ver el contenido de la instrucción SQL. Es posible que construyas la instrucción sobre una variable para después ejecutarla. En este caso, un problema muy común es qué pasa si en un campo de texto te teclean una comilla. Escríbeme la instrucción SQL y, si hace referencias a campos de un formulario o a otras variables, dime el contenido de los campos y/o variables.
Gracias Santiago por responder, te comento es para validar un cuit utilice para realizar esto dado que tengo que ingresar números y guion, en la base de datos declare este campo como nvarchar de 13, lo raro es que me lo puede comparar para ver que no este repetido, me lo verifica e incluso lo carga en un nuevo contacto pero a la hora de modificar me salta este error que te dije, supongo que sera por los guiones del MaskEdBox1 La parte del código donde lo utilizo. Private Sub cmdGuardar_Click() On Error GoTo ErrorSub Select Case ACCION Case EDITAR_REGISTRO2 cnn.Execute "UPDATE Cliente1 set CLI_RazonSocial = '" & Text1(1) & _ "', CLI_CUIT = '" & MaskEdBox1 & _ "', CLI_Direccion = '" & Text1(3) & _ "', Provincia = '" & Text1(4) & _ "', Localidad = '" & Text1(5) & _ "', Pais = '" & Text1(6) & _ "', CLI_Codigopostal = '" & Text1(7) & _ "', CLI_Telefono = '" & Text1(8) & _ "', CLI_Email = '" & Text1(9) & _ "', CLI_NombreContacto = '" & Text1(10) & _ "', CLI_IngresosBrutos = '" & Text1(11) & _ "', CONDICIONVTA_KEY= '" & Text1(12) & _ "', AGVTA_KEY = '" & Text1(13) & _ "', CATEG_KEY = '" & Text1(14) & _ "', CLIIVACONDICION_KEY = '" & Text1(15) & _ "', CLI_Observaciones = '" & Text1(16) & _ "', CLI_LugardeEntrega = '" & Text1(17) & _ "', CLI_LugardeCobro = '" & Text1(18) & _ "' where CLI_KEY = " & Text1(0) & "" Case AGREGAR_REGISTRO2 ' Valida el Nombre que no este vacio '''''''''''''''''''''''''''''''' If Trim(Text1(1)) = "" Then MsgBox "La Razon Social de registro no puede estar vacio", vbCritical, "Datos incompletos" Text1(1).SetFocus Exit Sub ' Valida el Apellido '''''''''''''''''''''''''''''''' Else If Trim(MaskEdBox1) = "" Then MsgBox "El Cuit no puede estar vacio", vbCritical, "Datos incompletos" Text1(2).SetFocus Else rs1.Close rs1.Open "select * from Cliente1 order by CLI_CUIT", cnn, adOpenDynamic, adLockOptimistic Verificar End If End If End Select rs1.Requery 1 DoEvents Unload Me Set frmEditABMcliente = Nothing Exit Sub ErrorSub: MsgBox Err.Description 'Agrega el registro ''''''''''''''''''''''''''''''' End Sub Te paso mi dirección de mail (xxxxxx) Saludos Ivanna
Lo primero es que no veo que estés poniendo los campos 'varchar' entre comillas. Al actualizar el contenido de un campo tienes que hacerlo en función de su contenido. Si es un número, directamente el valor; si es texto hay que ponerlo entre comillas; si es fecha interesa usar una función de conversión (CONVERT), etc... Dicho eso... tu SQL sería algo así: cnn.Execute "UPDATE Cliente1 set CLI_RazonSocial = '" & Text1(1) & _ "', CLI_CUIT = '" & MaskEdBox1 & "'" & _ "', CLI_Direccion = '" & Text1(3) & "'" & _ "', Provincia = '" & Text1(4) & "'" & _ "', Localidad = '" & Text1(5) & "'" & _ "', Pais = '" & Text1(6) & "'" & _ "', CLI_Codigopostal = '" & Text1(7) & "'" &....... Fíjate que al final del texto te he puesto las comillas cerradas. Pero insisto en lo que te comentaba en el anterior mensaje, cuidado que no te puedan teclear una comilla en los campos de texto porque eso provocaría un error en el SQL.