Check out system in microsoft access

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • dablonddeemu
    New Member
    • May 2013
    • 1

    Check out system in microsoft access

    Hello!
    Im designing a check out system for a small library we have at my office. I want to make an easy check out system, but this is my first time using acces. If you could help me figure out where to go from here, please let me know.

    The book table is
    ID (key)
    title
    author
    isbn
    location

    I would like to be able to check books in and out i with some sort of form. We have IDs that when swiped type our the your name, id, and time swiped. I would like the check out prosses to be as simple as possable. For example
    Enter book id
    Swipe ID
    enter email adress

    We are at a university, so there are thousands of potentail users. We dont want to have to create a profile for every person, just take there name and email when the check out a book.

    My questions:
    SHould this all be done on one table?
    If not, what others would you recommend I have with what info?
    How can i create a form that automatically calculates a due date 2 weeks from wehn the book is checked out?
    Can I automate an email people a reminder to return the books before the due date?

    Thanks for your help, I am totally new to access.
  • Seth Schrock
    Recognized Expert Specialist
    • Dec 2010
    • 2965

    #2
    This sounds like a fun project! We limit threads to only one question, so I'll tackle the table design as that is the foundation for the database and is very important to make a functional database. If you could ask the question about the 2 weeks and the emails (which are totally possible) in two additional threads, we would be more than happy to assist you. (Breaking up the threads helps keep the threads clean and easier for others to benefit from them.)

    A word of advice about table/field/control names: Don't use spaces or special characters (other than underscore "_") in the names. You can use camel case (first letter of each word capitalized for readability, i.e. MyField) or use the underscore in place of the spaces. It will make it easier to design your database.

    Just to be clear, is the Swipe ID the ID of the person checking the books out/in? Also, I assume that each person can check out more than one book at a time? Something to consider, if you don't create profiles for each person checking out a book, you will have to enter their name and email address every time they check out a book. If you did create a profile for each person, that information could be stored and then you would be able to pull up that information the next time they come in and don't have to risk typing in a name or an email address incorrectly each time. To me, this seems worth the slight amount of extra time to create the profile once and then not have to again. This is totally up to you, but it does effect the table design and not having the profile makes generating the email address harder. It also makes it harder to find all the books that a particular person has out as you would have to type the person's name the exact same way each time (period after middle initial or not, including the middle initial or not, using a nickname, OConner vs O'Conner, etc.).

    Enough about the profile. What I would do is to create a table that would hold the information about the checking out process and a table of the books that were checked out. For example, I'll name the first table tblCheckOut and the second table tblBooksChecked Out. Fields would be as shown below
    Code:
    [I]tblCheckOut[/I]
    CheckOutID
    SwipeID
    CheckOutDate_Time
    Patron
    EmailAddress
    If you decide to use patron profiles, then make Patron a number field and leave out EmailAddress. Otherwise, make Patron a text field and leave EmailAddress.

    Code:
    [I]tblBooksCheckedOut[/I]
    BookCheckID
    CheckOutID_fk
    BookID
    DueDate      'If books cannot be renewed, then leave out this field as it is just a calculated field.
    CheckInDate
    Relate the tables using the tblCheckOut.Che ckOutID = tblBooksChecked Out.CheckOutID_ fk one-to-many relationship. This will allow you to checkout books with a single swipe by utilizing subforms.

    The check-in process would use a query to find all the books still out (CheckInDate Is Null) and then try to find a match for the BookID you typed in. If no match, the book has already been checked in or it never was checked out (this does happen occasionally at my library).

    Also, since you are the one who really knows what you are dealing with and what you are wanting, it makes sense to give you the tools to help you decide for yourself what is needed. Here is a link that will help you know how to design your tables correctly: Database Normalization and Table Structures. You are still totally welcome to ask for help here, but this will help you understand the reasoning behind the suggestions.

    Comment

    Working...