none
Error en Visual Basic 6.0 (Syntax Error) RRS feed

  • Pregunta

  •  Set rst = New ADODB.Recordset
       rst.Open "SELECT * FROM Password WHERE " & _
           "Password = 'UserName = [Form2.txtuser'] and ['Password = Form2.txtpass]", conn, adOpenForwardOnly, adLockReadOnly
       Do While Not rst.EOF
          Shell "C:\Program Files (x86)\Microsoft Office\Office15\MSACCESS.EXE C:\Control Equipo\Menu\ControlEquipos.accdb", vbMaximizedFocus
          For Each fld In rst.Fields
              MsgBox ("Usuario no Autorizado")
          Next
       rst.MoveNext
       Loop

    (No Encuentro el "Syntax Error"

      
    martes, 9 de junio de 2020 0:32

Todas las respuestas

  • Fíjate en las comillas simples que tienes dentro de la sentencia SQL. Están fuera de lugar (no encierran el texto a comparar, y además faltan las comillas dobles para sacar de la sentencia las variables a evaluar).

    rst.Open "SELECT * FROM Password WHERE " & _
            " UserName = '" & Form2.txtuser & "' and Password = '" & Form2.txtpass & "'", conn, adOpenForwardOnly, adLockReadOnly

    Por cierto, ten cuidado con esa sentencia porque es susceptible de ataques de inyección de SQL. Cualquier usuario podrá saltarse el login tecleando un pedacito de SQL en el txtUser. Por este motivo (entre otras razones) se recomienda nunca concatenar datos introducidos por el usuario en una sentencia SQL. En lugar de concatenarlos, se deben introducir como parámetros.

    martes, 9 de junio de 2020 5:57
  • Toda la razón con Alberto, deberías pasar los datos del login mediante parámetros.

    Saludos

    martes, 9 de junio de 2020 13:20
    Moderador