lilmae23
lilmae23

Reputation: 1

python saying table does no exist but the table is in DB browser

I am trying to make a search application connecting 4 databases but when I enter something in the input field. The application breaks

When I debug the application, it says 'MemberDetails' table does not exist. But the table does exist as it has been created in DB browser and I've used it in another form. Ive checked the connection, and added error checking statements but none return. I was just wondering if there's another way to fix this or will I have to recreate the table? This is my code for the search form: import PySimpleGUI as sg import sqlite3

sg.theme('LightGray1') #add colour 
default_color = 'dark red'

title = [[sg.Column([[sg.Text('Member Search Form', size =(30,1), font = 'Helvetica, 35',   text_color = 'red', justification = 'center')]])]]

#menu definiton
menu = [[sg.Column([[sg.Button('Memberships', key= '_MEMBERSHIPS_'), sg.Button('Main Menu', key= '_MAINMENU_'),sg.Button('Fitness', key= '_FITNESS_'),sg.Button('Help',  key='_HELP_'),sg.Button('Exit', key='_EXIT_')]])]]

#GUI 
lookup= sg.Frame('MemberID:', [
        [sg.Input(size=(20,1), enable_events=True, key='_INPUT_')],
        [sg.Listbox(values=[], size=(20,6), enable_events=True,
                    key='_MEMBERS_')]
])

#search function
def searchmembers(memberID):
 conn = sqlite3.connect('assessment3.db')
 cursor = conn.cursor()
 
 #Join tables
 query = "SELECT * FROM MemberDetails JOIN Membership ON MemberDetails.memberID = Membership.memberID JOIN Booking ON Membership.bookingID = Booking.bookingID JOIN Fitness ON Booking.fitnessID = Fitness.fitnessID WHERE MemberDetails.memberID LIKE ?"
 cursor.execute(query, ('%' + memberID + '%'))
 results = cursor.fetchall()
 return results


#Define Layout
layout = [
    [title],
    [menu],
    [lookup,sg.Output(size=(80, 10), font='Helvetica')],
]

#Define window
window = sg.Window('Member Search Form',
               layout, size=(500,500),
               default_element_size=(12,1),
               default_button_element_size=(12,1))

#Create an event loop
while True:
    event, values = window.read()
    if event == sg.WIN_CLOSED:
         if sg.popup_yes_no('ARE YOU SURE YOU WANT TO EXIT?') == 'Yes': break
    elif event == '_INPUT_':
         memberID= values['_INPUT_']
         print("memberID value passed from GUI: ", memberID)
         results=searchmembers(memberID)
         if len(results) == 0:
              sg.popup_ok('No match in database')
         else:
              window['_MEMBERS_'].update(values=results)
    elif event == '_MEMBERS_':
        memberID = values['_MEMBERS_'][0]
        print("memberID selected from listbox: ", memberID)
        window['_INPUT_'].update(value=memberID)
        window['_MEMBERS_'].update(values=[])

    elif event == '_MEMBERSHIPS_':
        import Memberships
    elif event == '_MAINMENU_':
        import MainScreen
    elif event == '_FITNESS_':
        import Fitness
    elif event == '_HELP_':
        import Help
    elif event == '_EXIT_':
          if sg.popup_yes_no('ARE YOU SURE YOU WANT TO EXIT?') == 'Yes': break
    else: 
        break

window.close() 

Upvotes: 0

Views: 99

Answers (0)

Related Questions