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
1
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.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas