Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: ka0s en 25 Junio 2010, 15:57 pm



Título: Problema con VB & ACCESS
Publicado por: ka0s en 25 Junio 2010, 15:57 pm
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.

Código:
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)

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!!


Título: Re: Problema con VB & ACCESS
Publicado por: elmaro en 25 Junio 2010, 16:47 pm
Buenas

Fijate en ponerlo asi:
Código:
    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"


Título: Re: Problema con VB & ACCESS
Publicado por: ka0s en 25 Junio 2010, 16:52 pm
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á ¬¬


Título: Re: Problema con VB & ACCESS
Publicado por: ka0s en 25 Junio 2010, 19:06 pm
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!


Título: Re: Problema con VB & ACCESS
Publicado por: BlackZeroX en 25 Junio 2010, 20:17 pm
ADO tiene propiedades qué sustituye a las sentencias SQL... pff

Dulce Infierno Lunar!¡.