elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Vuelve Concurso Programación Abril Negro 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Error de Syntaxis
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error de Syntaxis  (Leído 309 veces)
acura01

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Error de Syntaxis
« en: 9 Junio 2020, 02:36 »

 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
   


En línea

NEBIRE


Desconectado Desconectado

Mensajes: 2.264


Ver Perfil
Re: Error de Syntaxis
« Respuesta #1 en: 9 Junio 2020, 16:47 »

tu fallo está en en
Código
  1. "Password = 'UserName = [Form2.txtuser'] and ['Password = Form2.txtpass]"
  2.  

Una expresión en la forma: 'a = b = c' VB lo interpreta como un buleano: 'a = (b=c)' y obviamente como se evalua a TRUE/FALSE...
De todos modos, es un cacao. por ejemplo, parece ser que hay una tabla llamada "Password"... si existe una tabla así, es preferible llamarla "tblPassword", de hecho es buena práctica llamar a las tablas con un prefijo, que te permita saber de un vistazo, que esa tabla tiene posibilidades de existir...

No queda claro qué es cada cosa... pero voy a arriesgarme a intentar interpretar lo que podría ser que tienes:
Código
  1. dim cnStr  ' es buena practica usar una variable de cadena para separar errores de cadena
  2.       ' de errores con la bd... al menos hasta que aprendas a formar correctamente las cadenas.
  3.  
  4. cnStr = "SELECT * FROM Password " & _
  5.          "WHERE Username = " & Form2.txtuser.text & _
  6.          " and  Password = " & form2.txtpass.text
  7. Set rst = New ADODB.Recordset
  8. rst.Open cnStr
  9. '...
  10.  
Asegúrate que los textboxes no tienen espacios en blanco a uno u otro lado del texto, que no forman parte de la cadena precisa... es decir quizás debas usar una función 'Trim' para eliminar espacios a ambos lados. De hecho es recomendable cuando el dato es entrado por un usuario manualmente...

En Net, todavía podría valer algo parecido a lo que intentas hacer...
Código
  1. dim cnStr  ' es buena practica usar una variable de cadena para separar errores de cadena
  2. ' de errores con la bd... al menos hasta que aprendas a formar correctamente las cadenas.
  3.  
  4. cnStr = "SELECT * FROM Password" & _
  5.          " Where [Username]= '" & Form2.txtuser.text & _
  6.          " 'And  [Password]= '" & form2.txtpass.text & "'"
  7. Set rst = New ADODB.Recordset
  8. rst.Open cnStr
  9. '...
  10.  
Hay varias maneras válidas, pero siempre se requerirá una cadena de texto válida, al menos para que no cante error de sintaxis, luego si te sigue fallando sería porque no logra abrir la conexión si parte del contenido no es correcto.


« Última modificación: 9 Junio 2020, 16:49 por NEBIRE » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines