Problema con VB & ACCESS

Iniciado por ka0s, 25 Junio 2010, 15:57 PM

0 Miembros y 1 Visitante están viendo este tema.

ka0s

Gente, tengo un problema con una consulta a la BD. Tengo distintas partes de mi programa donde INSERTA, MODIFICA y BORRA y anda perfecto.

Generé otro formulario para dar otra ALTA DE USUARIOS y pasé a usar el mismo código que nombraba anterior, obviamente cambiando las variables y datos, pero me empezó a generar error.

Private Sub cmdmodificar_Click()
If txtnro.Text = "" Or txtdni.Text = "" Or txtpassword.Text = "" Or cmbacceso.Text = "" Then
    MsgBox "Complete los datos requeridos.", vbExclamation, "Complete los datos"
Else
    'MODIFICA LOS VALORES, SEGÚN EL ID SELECCIONADO.
    Call Conectar("UPDATE Login SET DNI='" & txtdni.Text & "'" & "where Nro=" & nroinasistencias)
    Call Conectar("UPDATE Login SET Password='" & txtpassword.Text & "'" & "where Nro=" & nroinasistencias)
    Call Conectar("UPDATE Login SET Acceso='" & cmbacceso.Text & "'" & "where Nro=" & nroinasistencias)
    'Actualiza la grilla.
    Set RST = New ADODB.Recordset
    Call Conectar("Select * from Login")
    Set frmaltausuarios.grilla.Recordset = RST
    frmaltausuarios.grilla.Refresh
    Unload frmmodificarusuarios
   
End If

End Sub


Eso es lo que hago. (Ya se que toda la sentencia la puedo tener en una sola linea, pero lo hago así en varias para tener el código más claro)

Eso en otra parte de mi programa (cambiando valores) funciona PERFECTO pero cuando lo quise empezar a usar para MODIFICAR USUARIOS de la tabla Login de la BD empieza a tirar error.

dice "ERROR DE SINTAXIS EN LA INSTRUCCION UPDATE". Lo mismo pasa cuando quiero INSERTAR algo. (Paso a poner el código)

Private Sub cmdalta_Click()
If txtdni.Text = "" Or txtpassword.Text = "" Or cmbacceso.Text = "" Then
    MsgBox "Complete los datos requeridos.", vbExclamation, "Complete los datos"
Else
    'Agrega los datos nuevos a la grilla
    Call Conectar("INSERT INTO Login(DNI,Password,Acceso) VALUES  ('" & txtdni.Text & "','" & txtpassword.Text & "','" & cmbacceso.Text & "')")
    'Actualiza la grilla.
    Set RST = New ADODB.Recordset
    Call Conectar("Select * from Login")
    Set frmaltausuarios.grilla.Recordset = RST
    frmaltausuarios.grilla.Refresh
    Unload frmaltausuarios2
End If
End Sub


Acá figura "ERROR DE LA SINTAXIS EN LA INSTRUCCIÓN INSERT INTO".

Cuando cargamos en el intérprete de SQL la sentencias estas, LAS TOMA PERFECTO, pero en cambio por VB no. Y me estoy volviendo loco porque YA LAS USÉ EN OTRA PARTE DEL PROGRAMA como dije antes.

Espero que haya quedado claro.

Muchas gracias por leer y tratar de ayudarme!!

elmaro

Buenas

Fijate en ponerlo asi:

    Call Conectar("UPDATE Login SET DNI='" & txtdni.Text & "'" & " where Nro=" & nroinasistencias)
    Call Conectar("UPDATE Login SET Password='" & txtpassword.Text & "'" & " where Nro=" & nroinasistencias)
    Call Conectar("UPDATE Login SET Acceso='" & cmbacceso.Text & "'" & " where Nro=" & nroinasistencias)


Faltaba una separación entre la comilla simple y el "where"

ka0s

Probé eso y nada. Sigue tirando lo mismo.

O sea EJECUTA la instrucción, tira el error y termina el programa. Pero me fijo en la BD y lo cambia. (SOLAMENTE DNI), el resto siempre queda igual, no lo modifica :S.

Gracias por responder.
Veremos que ***** será ¬¬

ka0s

Gracias a ElMaro lo pude solucionar.
El problema era LAS PALABRAS RESERVADAS DEL VB.
Solucioné poniendo PASSWORD entre corchetes []. O sea [Password]

Saludos y gracias a todos igualmente!

BlackZeroX

ADO tiene propiedades qué sustituye a las sentencias SQL... pff

Dulce Infierno Lunar!¡.
The Dark Shadow is my passion.