Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/09/2014, 16:10
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Error con Entry y Get()

Tu error es muy simple.

Código:
a=principal.pantalla_login.tbx_usuario1.get()
AttributeError: 'function' object has no attribute 'tbx_usuario'
pantalla_login es una función y no veo porque debería el atributo tbx_usuario.

Ademas veo que no estas usando clases apropiadamente, tienes dependencias con variables globales, hardcodeas credenciales de acceso en código fuente, etc..

Algo mas o menos así debería de funcionar.
Código Python:
Ver original
  1. from tkinter import *
  2. import pypyodbc
  3.  
  4. root=Tk()
  5. root.resizable(0,0)
  6. root.geometry('600x300+500+300')
  7.  
  8. class Principal():  
  9.     def valida_acceso(self):
  10.         connection_string ='Driver={SQL Server Native Client 11.0};Server=150.150.1.2;Database=Sh;Uid=sp;Pwd=sp;'
  11.         connection = pypyodbc.connect(connection_string)
  12.         SQL = "SELECT * FROM Usuarios WHERE Usuario=?"
  13.         cur = connection.cursor()
  14.         a = self.tbx_usuario.get()
  15.         cur.execute(SQL,a)
  16.         row= cur.fetchone()
  17.         if row:
  18.             print (row[0], row[1])
  19.         connection.commit()
  20.         cur.close()
  21.         connection.close()
  22.        
  23.     def pantalla_login(self):
  24.         lab_usuario = Label(root, text="Usuario: ", font=("Helvetica", 14,
  25.                              'bold'),bg='red').grid(row=3, column=1, sticky=W)
  26.         self.tbx_usuario = Entry(root, text="Usuario", textvariable=StringVar(), font=
  27.                               ("Helvetica", 14),fg='blue').grid(row=3,
  28.                             column=2, sticky=W)
  29.         Button(root, text="Accesar".format(1),font=("Helvetica", 14,'bold'),
  30.                             command=self.valida_acceso).grid(row=6,column=2,sticky=E)
  31.         root.mainloop()
  32.  
  33. principal = Principal()
  34. principal.pantalla_login()