“ POLYCLINIC INFORMATION SYSTEM” PROJECT REPORT 2004 Submitted for the partial fulfillment of the requirement of the award Of
MASTER OF COMPUTER APPLICATION
SUBMITTED BY Manish Kumar Dubey ROLL NO. 0203714046
UNDER THE GUIDANCE OF Internal Guide: Mr Rajeev pathak
INSTITUTE OF MANAGEMENT EDUCATION SAHIBABAD
178, MAIN G.T. ROAD SAHIBABAD, GHAZIABAD(U.P) CERTIFICATE This is to certify that the project report titled “ LIBRARY INFORMATION SYSTEM” is a bonafied work carried out by JAI PRAKASH PANDEY in partial fulfillment of the requirement for the degree of Master of computer application from Uttar Pradesh Technical University, Lucknow under the guidance and direction.
INTERNAL GUIDE
H.O.D SEAL
EXAMINER
ACKNOWLEDGEMENT
Nothing concrete can be achieved without an optimal combination of the inspiration and perspiration. No work accomplished without the guidance of the experts . It is only the critiques from ingenious , intellectuals that help transforms the product into a quality product. This project is the result of countless hours works of mine. For this I am grateful toward Mr. Rakesh Arora internal guide for his valuable guidance and sustained help to me during the making of this project. I am also thankful to Mr.Rajiv Pathak H.O.D of IT deptt .for his assistance and encouragement to complete the peoject on time . We are also grateful to Lab Assistant & other members who have helped me to complete the project.
Jai Prakash pandey MCA-IVth Sem. Roll. 0203714036
INDEX
1. INTRODUCTION 2. ANALYSIS Data Flow Diagram ER Diagram Synopsis of Table 3. DATA DESIGN I/O Forms Reports Coding 4. TESTING 5. IMPLEMENTATION Software Hardware 6. MAINTENANCE 7. CONCLUSIONS Limitations Enhancement 8. APPENDIX
`PREFACE` ` This project (Library Information System) is a general purpose project , which satisfies all the needs of a typical library system. The project has been tailored to solve the problems faced by the Librarian, Members &Students in a manual processing of the information. Librarian usually perform their work manually in which large amount of time and human effort is wasted in retrieving information ,handling of huge data ,generation of reports ,updation of data etc. These problems can be easily solved by the automation of existing library information. The package “ Library Information System” is fully menu driven and provide very quick and accurate information about all the members ,issued and return status of books.
INTRODUCTION Library Information system
Library Information System has been made a view to provide the members ,employee & students with better facilities to obtain Books, cd’s for educational purpose. The main purpose is to provide easy and convenient way to the members & students to get or issue books from library with inbuilt security features. The system provides information about to be issued & returned status of the Books & Cd’s.and also provides the information that which book is issued to which member or student. Different members or students have different choices of books as per their requirement , this system provides easy navigational features which provides a very user-friendly interface which help the students & members to obtain books & cd’c easily.
DESCRIPTION Modules:The whole project has been divided into following modules:
Security Modules Data Capture Module Operational Module Data Updating Module Data Display Module Data Report Module
->Security Module: The security modules of the project contains Two interface: i>Login Interface ii> Password Interface i> Login Interface: The Login interface has been designed so that only authorized user can access the transaction of the books and make the necessary entry and updation. ii>
Password Interface: The password changing interface has been designed so that the user can change the password for increased security. Data Capture Module:-
The data capture module of the project contains the following interface: student information interface, member information interface, employee information interface, issue & return information interface and add/update information interface. Student info. Interface: The student info interface keeps all the info regarding his name, id, class, address,phone no, and also the info. regarding the issue of books like the date of issue, date of returning member info interface: The member info interface takes the info about the members to whom the book is issued and info like name, id, address, phone no, email. Employee Information Interface The employee info interface keeps the info regarding his name, address, designation, date of joining. And so on. Issue & Return Status: This interface keeps tracks of all the info like which book is issued to which student or member ,date of issue, the date of returning. Updation info interface: In this interface we can add, updatew the information regarding the books ,the members and so on. OPERATIONAL MODULE: The operational module of the project shows how various operation are being carried out in hierarchy
when the administrator enters the data or updates the data.
DATA UPDATING MODULE: The data updating module contains the following interface: student information updating interface, member info updating interface, and information changing interface.
DATA DISPLAY MODULE: The data display module contains the following interfaces: students info. interface, member info. interface, employee info. interface, searching interface. ->DATA REPORT MODULE: The data report –module generates the reports for the transaction of books . It generates the reports in the standard format and also allows for printing or saving the data reports. .
ANALYSIS
Analysis is a set of model which shows the technical representation of the system. Analysis is a model building activity in which we use notation that satisfies the operational principles. In this we create a model that depict information content and flow ,we partition the system functionally and behaviorally and we depict the essence of what must be built The analysis model must achieve three primary objectives : 1.> Requirements Description of system 2.> Establish a basis for creation of software design. 3.> Define a set of requirements that can be validated once the software is built.
ER DIAGRAM OF BOOKS TABLE
2 BOOK_ID TITLE AUTHOR
BOOKS
EDITION
PRICE
ISBN PUBLISHER
CAT_ID
ER DIAGRAM OF STUDENT TABLE
2
NAME STD_ID CLASS
STUDENT
EMAIL PHONE ADDRESS
ER DIAGRAM OF MEMBER TABLE
3
NAME
ADDRESS MEM_ID
MEMBER
PHONE EMAIL
ER DIAGRAM OF BOOK ISSUE
4 ACC NO.
ISSUE BOOK
NAME
ISSUE DATE
DATA FLOW DIAGRAM The DFD was first developed by Larry Constantine as a way of expressing system requirement\s in graphical form. A DFD also known as a ‘BUBBLE CHART’ has the purpose of clarifying system requirements and identifying major transformation that will become programs in system design.
DFD Symbols In the DFD there are Four symbol as shown below in fig. 1. A square defines a Source or Destination of the system data. 2. An arrow identifies Data flow –Data in motion . It is a pipeline through which information flows 3. A circle or a ‘BUBBLE’ represents a process that transforms incoming data flow into outgoing Data flow. 4. A open rectangle is data store
DFD SYMBOLS 1 PROCESS
DATA STORE
SOURCE/SINK
DATA FLOW
ER DIAGRAM OF BOOKS TABLE
2 BOOK_ID TITLE AUTHOR
BOOKS
EDITION
PRICE
ISBN PUBLISHER
CAT_ID
LIBRARY INFORMATION SYSTEM DATA FLOW DIAGRAM
LEV.1 2.1 BOOKS-TRANS.
2.2 BOOKS-SEARCH
2 MAIN
2.3 MEMBERS 2.5 STUDENTS
2.4 EMPLOYEE.
2
2.1 TRANSACTIONS
2.1.1 BOOK-ISSUED
2.1.2 BOOK-MISSED Book-info. Book_detail
Std_id,name&class,
employee-id,name&design. Book-info,doi,toi,dor STUDENT Bal;ance 2.1.3 RETURN EMPLOYEE
balance
3 2.2 BOOK_SEARCH
2.2.1 MISSED
2.2.2 AVAILABLE
2.2.3 ISSUED
Book_info
BOOK_INFO.
BOOK-DETAIL
BOOK_INFO.
Book_id,doi,dor,toi,tor. Std_id,name&class
STUDENT
EMPLOYEE
4
book_id,doi Dor,toi,tor, Staff_id, Name& Design.
2.3 MEMBERS
2.3.1 STUDENTS
2.3.2 EMPLOYEE
Student_details
EMPLOYEE_details ADMINISTRATOR
Info_details to update
2.3.3 UPDATE
BOOK-ISSUED &RETURN
1
STUDENTS STUDENTS
Book_info, Doi,toi 2.1.1.1 ISSUED& RETURN
UPDATE
Book_info., Dor,tor
EMPLOYEE EMPLOYEE
DATABASE
SYSTEM DESIGN
After analysing the various aspects of the proposed system one has to go on with the design phase ,which includes: Input Design Database Design Output Design Form Design
DATA BASE DESIGN BOOKS TABLE:FIELD NAME
DATA TYPE
SIZE
ACC.NO TITLE AUTHOR PUBLISHER EDITION PRICE CAT_ID ISBN *
NUMBER TEXT TEXT TEXT NUMBER NUMBER TEXT TEXT
10 25 20 20 10 05 10 20
STUDENTS TABLE:FIELD NAME DATA TYPE
SIZE
STUDENT ID * NAME CLASS SECTION ADDRESS PHONE NO
10 30 02 02 50 11
TEXT TEXT NUMBER NUMBER TEXT NUMBER
MEMBER TABLE:FIELD NAME MEMBER ID * NAME ADDRESS PHONE NO DATE OF JOINING
DATA TYPE TEXT TEXT TEXT NUMBER DATE/TIME
SIZE 10 25 50 12 -
EMPLOYEE TABLE:FIELD NAME EMP_ID * NAME ADDRESS 1 ADDRESS 2 PHONE NO EMAIL PASSWORD
DATA TYPE TEXT TEXT TEXT TEXT NUMBER TEXT TEXT
SIZE 10 25 50 50 12 25 10
BOOK ISSUE TABLE:FIELD NAME MEMBER ID * STUDENT ID BOOK NAME CD NAME BOOK ID ISSUE DATE R. DATE
DATA TYPE TEXT TEXT TEXT TEXT TEXT DATE/TIME DATE/TIME
SIZE 10 10 20 20 05 -
CD TABLE:FIELD NAME
DATA TYPE
SIZE
CD_CODE * CD NAME CD TYPE STATUS
TEXT TEXT TEXT TEXT
10 10 10 10
MAGAZINE TABLE:FIELD NAME
DATA TYPE
SIZE
SERIAL NO * NAME TYPE
TEXT TEXT TEXT
15 15 10
* Primary Key
Login form:
Dim r As New Recordset Dim ct As Control Dim cn As New Connection Private Sub cmdexit_Click() Unload Me End Sub Private Sub cmdstart_Click() r.MoveFirst Do While Not r.EOF If UCase(Trim(TXTUN)) = UCase(Trim(r!Username)) And Trim(TXTPASS) = Trim(r!Password) Then i=1 frmMain.Show frmlogin.Hide Exit Do End If r.MoveNext Loop If i = 0 Then MsgBox "Invalid user." TXTUser = "" TXTPASS = "" End If End Sub Private Sub Form_Activate() TXTUN.Text = "" TXTPASS.Text = "" End Sub
Private Sub Form_Load() Dim i As Integer With cn .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "data source=" & App.Path & "\library.mdb" .Open End With r.Open "select * from login", cn, adOpenDynamic, adLockOptimistic i=0 End Sub
Main form Private Sub emp_Click() frmEmployee.Show End Sub Private Sub MDIForm_Load() frmlogin.Show End Sub Private Sub muna_Click() frmabout.Show End Sub Private Sub munb_Click() frmBook.Show End Sub Private Sub munc_Click() frmCD.Show End Sub Private Sub muncc_Click() frmcdreport.Show End Sub Private Sub munE_Click() 'Dim i As Integer 'i = MsgBox("Are you sure?", vbYesNo) 'If i = vbYes Then ' frmMain.Show
'End If Unload Me End Sub Private Sub munI_Click() Load frmIssue frmIssue.Visible = True frmIssue.Show End Sub Private Sub MUNIBC_Click() frmissuedreport.Show End Sub Private Sub munm_Click() frmmagazine.Show End Sub Private Sub munmbr_Click() frmmissingreport.Show End Sub Private Sub munMem_Click() frmMember.Show End Sub Private Sub munml_Click() frmmemberreport.Show End Sub Private Sub munR_Click() frmreturn.Show End Sub
Private Sub munRC_Click() frmreturnreport.Show End Sub Private Sub munS_Click() frmstudent.Show End Sub Private Sub munmg_Click() frmmagazinereport.Show End Sub
Book form Dim cn As New Connection Dim rs As New Recordset Dim ct As Control Private Sub cmdCancel_Click() rs.CancelUpdate rs.MoveFirst display list disable End Sub Private Sub cmdDelete_Click() Dim i As Integer i = MsgBox("ARE YOU SURE?", vbYesNo) If i = vbYes Then rs.Delete rs.MoveFirst display MsgBox "RECORD DELETED" End If list End Sub Private Sub cmdModify_Click() Enable End Sub Private Sub CmdNew_Click() For Each ct In Me If TypeOf ct Is TextBox Then
ct.Text = "" End If Next Dim newNo As String Dim iBookNo As Integer rs.MoveLast newNo = rs!Bookid iBookNo = Val(Mid(newNo, 2, 3)) + 1 If iBookNo < 10 Then txtBookID = "B00" & iBookNo ElseIf iBookNo < 100 Then txtBookID = "B0" & iBookNo ElseIf iBookNo < 1000 Then TxtBookNO = "B" & iBookNo End If rs.AddNew Enable End Sub Private Sub cmdSave_Click() If TXTBOOKN = "" Or txtBookID = "" Or txtuthor = "" Or txtPrice = "" Or txtEdition = "" Or txtPub = "" Or Combo2 = "" Or Combo1 = "" Then MsgBox (" enter the value ") Else rs!Bookname = TXTBOOKN rs("BookID") = txtBookID rs("Author") = txtuthor rs("Edition") = txtEdition rs("Publisher") = txtPub rs("Price") = txtPrice rs("Category") = Combo2 rs("Status") = "available" rs.Update
disable list End If End Sub
Private Sub Form_Load() With cn .Provider = "microsoft.jet.OLEDB.4.0" .ConnectionString = "data source =" & App.Path & "\library.mdb" .Open End With rs.Open "select * from BookMaster", cn, adOpenDynamic, adLockOptimistic display list disable End Sub Private Sub List1_Click() rs.MoveFirst rs.Move List1.ListIndex display End Sub Public Sub display() TXTBOOKN = rs!Bookname txtBookID = rs("BookID") txtuthor = rs("author") txtEdition = rs("Edition") txtPub = rs("Publisher")
txtPrice = rs("Price") Combo2 = rs("Category") Combo1 = rs("Status") End Sub Public Sub Enable() For Each ct In Me If TypeOf ct Is TextBox Then ct.Enabled = True End If Next For Each ct In Me If TypeOf ct Is CommandButton Then ct.Enabled = False End If Next cmdsave.Enabled = True cmdcancel.Enabled = True List1.Enabled = False End Sub Public Sub disable() For Each ct In Me If TypeOf ct Is TextBox Then ct.Enabled = False End If Next For Each ct In Me If TypeOf ct Is CommandButton Then ct.Enabled = True End If Next cmdsave.Enabled = False cmdcancel.Enabled = False List1.Enabled = True End Sub
Public Sub list() List1.Clear rs.MoveFirst While Not rs.EOF List1.AddItem rs("BookID") rs.MoveNext Wend rs.MoveFirst display End Sub Private Sub TXTBOOKN_KeyDown(KeyCode As Integer, Shift As Integer) If ((KeyCode >= 33 And KeyCode <= 64) Or (KeyCode >= 91 And KeyCode <= 96) Or (KeyCode >= 123 And KeyCode <= 255)) Then MsgBox ("ENTER THE CHARACTER") TXTBOOKN = "" TXTBOOKN.SetFocus End If End Sub Private Sub TXTBOOKN_LostFocus() TXTBOOKN = StrConv(TXTBOOKN, vbProperCase) End Sub Private Sub txtPrice_KeyDown(KeyCode As Integer, Shift As Integer) If Not (KeyCode >= 48 And KeyCode <= 57) Then MsgBox ("PLEASE ENTER THE NUMERIC KEY") txtPrice = "" txtPrice.SetFocus
End If End Sub Private Sub txtPub_KeyDown(KeyCode As Integer, Shift As Integer) If ((KeyCode >= 33 And KeyCode <= 64) Or (KeyCode >= 91 And KeyCode <= 96) Or (KeyCode >= 123 And KeyCode <= 255)) Then MsgBox ("ENTER THE CHARACTER") txtPub = "" txtPub.SetFocus End If End Sub Private Sub TXTuthor_KeyDown(KeyCode As Integer, Shift As Integer) If ((KeyCode >= 33 And KeyCode <= 64) Or (KeyCode >= 91 And KeyCode <= 96) Or (KeyCode >= 123 And KeyCode <= 255)) Then MsgBox ("ENTER THE CHARACTER") txtuthor = "" txtuthor.SetFocus End If End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) cn.Close End Sub Private Sub txtedition_KeyDown(KeyCode As Integer, Shift As Integer) If Not (KeyCode >= 48 And KeyCode <= 57) Then
MsgBox ("PLEASE ENTER THE NUMERIC KEY") txtEdition = "" txtEdition.SetFocus End If End Sub
Student form Dim rstudent As New Recordset Dim ct As Control Dim c As New Connection Private Sub cmdCancel_Click() rstudent.CancelUpdate rstudent.MoveFirst disable display filllist End Sub Private Sub cmdDelete_Click() Dim i As Integer i = MsgBox("ARE YOU SURE?", vbYesNo) If i = vbYes Then rstudent.Delete rstudent.MoveFirst display MsgBox "RECORD DELETED" End If filllist End Sub Private Sub cmdModify_Click() enab End Sub Private Sub CmdNew_Click() For Each ct In Me If TypeOf ct Is TextBox Then ct.Text = "" End If Next Dim newNo As String
Dim imemberNo As Integer rstudent.MoveLast newNo = rstudent!StudentId imemberNo = Val(Mid(newNo, 2, 3)) + 1 If imemberNo < 10 Then txtSID = "S00" & imemberNo ElseIf iMember < 100 Then txtSID = "S0" & imemberNo ElseIf imemberNo < 1000 Then txtSID = "S" & imemberNo End If rstudent.AddNew enab End Sub Private Sub cmdSave_Click() If txtSID = "" Or TxtClass = "" Or txtName = "" Or TxtClass = "" Or txtSec = "" Or txtAddress = "" Or txtPn = "" Then MsgBox "enter the value" Else rstudent!StudentId = txtSID rstudent!Name = txtName rstudent!Class = TxtClass rstudent!Section = txtSec rstudent!Address = txtAddress rstudent!PhoneNo = txtPn rstudent.Update disable filllist End If End Sub Private Sub Combo1_Click() rstudent.MoveFirst
rstudent.Move Combo1.ListIndex display End Sub Private Sub Form_Load() c.Provider = "Microsoft.Jet.OLEDB.4.0" c.ConnectionString = "data source=" & App.Path & "\Library.mdb" c.Open rstudent.Open "select * from studentmaster", c, adOpenDynamic, adLockOptimistic disable filllist End Sub Public Sub enab() For Each ctl In Me If TypeOf ctl Is TextBox Then ctl.Enabled = True End If Next For Each ctl In Me If TypeOf ctl Is CommandButton Then ctl.Enabled = False End If Next cmdsave.Enabled = True cmdcancel.Enabled = True End Sub Public Sub disable() For Each ctl In Me If TypeOf ctl Is TextBox Then ctl.Enabled = False End If
Next For Each ctl In Me If TypeOf ctl Is CommandButton Then ctl.Enabled = True End If Next cmdsave.Enabled = False cmdcancel.Enabled = False End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) c.Close End Sub Public Sub display() txtSID = rstudent!StudentId txtName = rstudent!Name TxtClass = rstudent!Class txtSec = rstudent!Section txtAddress = rstudent!Address txtPn = rstudent!PhoneNo rstudent.Update disable End Sub Public Sub filllist() Combo1.Clear rstudent.MoveFirst While Not rstudent.EOF Combo1.AddItem rstudent("studentID") rstudent.MoveNext Wend
rstudent.MoveFirst display End Sub Private Sub txtname_KeyDown(KeyCode As Integer, Shift As Integer) If ((KeyCode >= 33 And KeyCode <= 64) Or (KeyCode >= 91 And KeyCode <= 96) Or (KeyCode >= 123 And KeyCode <= 255)) Then MsgBox ("ENTER THE CHARACTER") txtName = "" txtName.SetFocus End If End Sub Private Sub txtsec_KeyDown(KeyCode As Integer, Shift As Integer) If ((KeyCode >= 33 And KeyCode <= 64) Or (KeyCode >= 91 And KeyCode <= 96) Or (KeyCode >= 123 And KeyCode <= 255)) Then MsgBox ("ENTER THE CHARACTER") txtSec = "" txtSec.SetFocus End If End Sub Private Sub txtpn_KeyDown(KeyCode As Integer, Shift As Integer) If Not (KeyCode >= 48 And KeyCode <= 57) Then MsgBox ("PLEASE ENTER THE NUMERIC KEY") txtPn = "" txtPn.SetFocus End If
End Sub Private Sub txtclass_KeyDown(KeyCode As Integer, Shift As Integer) If Not (KeyCode >= 48 And KeyCode <= 57) Then MsgBox ("PLEASE ENTER THE NUMERIC KEY") TxtClass = "" TxtClass.SetFocus End If End Sub
MEMBER FORM Dim con As New Connection Dim rmember As New Recordset Dim ctl As Control Private Sub cmdCancel_Click() rmember.CancelUpdate rmember.MoveFirst filllist Bigshow disable End Sub Private Sub cmdDelete_Click() Dim i As Integer i = MsgBox("ARE YOU SURE?", vbYesNo) If i = vbYes Then rmember.Delete rmember.MoveFirst Bigshow MsgBox "RECORD DELETED" End If filllist End Sub Private Sub cmdModify_Click() Enable End Sub Private Sub CmdNew_Click() For Each ctl In Me If TypeOf ctl Is TextBox Then ctl.Text = "" End If
Next Dim newNo As String Dim imemberNo As Integer rmember.MoveLast newNo = rmember!MemberID imemberNo = Val(Mid(newNo, 2, 3)) + 1 If imemberNo < 10 Then txtMii = "M00" & imemberNo ElseIf iMii < 100 Then txtMii = "M0" & imemberNo ElseIf iMemberID < 1000 Then txtMii = "M" & imemberNo End If rmember.AddNew Enable End Sub Private Sub Combo1_Click() rmember.MoveFirst rmember.Move Combo1.ListIndex Bigshow End Sub Private Sub Form_Load() con.Provider = "Microsoft.Jet.OLEDB.4.0" con.ConnectionString = "data source=" & App.Path & "\Library.mdb" con.Open rmember.Open "select * from membermaster", con, adOpenDynamic, adLockOptimistic disable filllist End Sub
Public Sub Enable() For Each ctl In Me If TypeOf ctl Is TextBox Then ctl.Enabled = True End If Next For Each ctl In Me If TypeOf ctl Is CommandButton Then ctl.Enabled = False End If Next cmdsave.Enabled = True cmdcancel.Enabled = True End Sub Public Sub disable() For Each ctl In Me If TypeOf ctl Is TextBox Then ctl.Enabled = False End If Next For Each ctl In Me If TypeOf ctl Is CommandButton Then ctl.Enabled = True End If Next cmdsave.Enabled = False cmdcancel.Enabled = False End Sub Public Sub Bigshow() txtMii = rmember!MemberID txtName = rmember!Name txtAddress = rmember!Address
txtPn = rmember!Phone txtDoj = rmember!Dateofjoining txtEd = rmember!Expirydate End Sub Private Sub cmdSave_Click() If txtMii = "" Or txtName = "" Or txtAddress = "" Or txtPn = "" Or txtDoj = "" Or txtEd = "" Then MsgBox ("ENTER THE VALUE") Else rmember!MemberID = txtMii rmember!Name = txtName rmember!Address = txtAddress rmember!Phone = txtPn rmember!Dateofjoining = txtDoj rmember!Expirydate = txtEd rmember.Update disable filllist End If End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) con.Close End Sub Public Sub filllist() Combo1.Clear rmember.MoveFirst While Not rmember.EOF Combo1.AddItem rmember("memberid") rmember.MoveNext Wend rmember.MoveFirst Bigshow
End Sub Private Sub txtname_KeyDown(KeyCode As Integer, Shift As Integer) If ((KeyCode >= 33 And KeyCode <= 64) Or (KeyCode >= 91 And KeyCode <= 96) Or (KeyCode >= 123 And KeyCode <= 255)) Then MsgBox ("ENTER THE CHARACTER") txtName = "" txtName.SetFocus End If End Sub Private Sub txtpn_KeyDown(KeyCode As Integer, Shift As Integer) If Not (KeyCode >= 48 And KeyCode <= 57) Then MsgBox ("PLEASE ENTER THE NUMERIC KEY") txtPn = "" txtPn.SetFocus End If End Sub
MAGAZINE FORM Dim co As New Connection Dim rm As New Recordset Dim ct1 As Control Private Sub CmdAdd_Click() For Each ct In Me If TypeOf ct Is TextBox Then ct.Text = "" End If Next Dim newNo As String Dim i As Integer rm.MoveLast newNo = rm!MagazineID i = Val(Mid(newNo, 2, 3)) + 1 If i < 10 Then txtSerial = "Z00" & i ElseIf i < 100 Then txtSerial = "Z0" & i ElseIf i < 1000 Then txtSerial = "Z" & i End If rm.AddNew enab End Sub Private Sub cmdCancel_Click() rm.CancelUpdate rm.MoveFirst play disable list End Sub
Private Sub cmdDelete_Click() Dim i As Integer i = MsgBox("ARE YOU SURE?", vbYesNo) If i = vbYes Then rm.Delete rm.MoveFirst play MsgBox "RECORD DELETED" End If list End Sub Private Sub cmdModify_Click() enab End Sub Private Sub cmdSave_Click() If txtSerial = "" Or txtName = "" Or txttype = "" Then MsgBox ("ENTER THE VALUE") Else rm!MagazineID = txtSerial rm!Name = txtName rm!Type = txttype rm.Update disable list End If End Sub Public Sub play() txtSerial = rm!MagazineID txtName = rm!Name txttype = rm!Type End Sub
Private Sub Form_Load() co.Provider = "Microsoft.Jet.OLEDB.4.0" co.ConnectionString = "data source=" & App.Path & "\Library.mdb" co.Open rm.Open "select * from MagazineMaster", co, adOpenDynamic, adLockOptimistic list play disable End Sub Private Sub List1_Click() rm.MoveFirst rm.Move List1.ListIndex play End Sub
Public Sub enab() For Each ctl In Me If TypeOf ctl Is TextBox Then ctl.Enabled = True End If Next For Each ctl In Me If TypeOf ctl Is CommandButton Then ctl.Enabled = False End If Next cmdsave.Enabled = True cmdcancel.Enabled = True End Sub
Public Sub disable() For Each ctl In Me If TypeOf ctl Is TextBox Then ctl.Enabled = False End If Next For Each ctl In Me If TypeOf ctl Is CommandButton Then ctl.Enabled = True End If Next cmdsave.Enabled = False cmdcancel.Enabled = False End Sub Public Sub list() List1.Clear rm.MoveFirst While Not rm.EOF List1.AddItem rm("MagazineID") rm.MoveNext Wend rm.MoveFirst play End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) co.Close End Sub
Private Sub txtname_KeyDown(KeyCode As Integer, Shift As Integer) If ((KeyCode >= 33 And KeyCode <= 64) Or (KeyCode >= 91 And KeyCode <= 96) Or (KeyCode >= 123 And KeyCode <= 255)) Then MsgBox ("ENTER THE CHARACTER") txtName = "" txtName.SetFocus End If End Sub
CD FORM Dim c As Control Dim rcd As New Recordset Dim co As New Connection Private Sub cmdCancel_Click() rcd.CancelUpdate rcd.MoveFirst play disable End Sub Private Sub cmdDelete_Click() Dim i As Integer i = MsgBox("ARE YOU SURE?", vbYesNo) If i = vbYes Then rcd.Delete rcd.MoveFirst play MsgBox "RECORD DELETED" End If list End Sub Private Sub cmdModify_Click() enab End Sub Private Sub CmdNew_Click() For Each c In Me If TypeOf c Is TextBox Then c.Text = "" End If
Next Dim newNo As String Dim iCd As Integer rcd.MoveLast newNo = rcd!cdcode iCd = Val(Mid(newNo, 2, 3)) + 1 If iCd < 10 Then txtCode = "C00" & iCd ElseIf iCd < 100 Then txtCode = "C0" & iCd ElseIf iCd < 1000 Then txtCode = "C" & iCd End If rcd.AddNew enab End Sub Private Sub cmdSave_Click() If txtCode = "" Or txtName = "" Or txttype = "" Or txtstatus = "" Then MsgBox ("enter the value") Else rcd!cdcode = txtCode rcd!cdname = txtName rcd!Type = txttype rcd!Status = txtstatus rcd.Update disable list End If End Sub Private Sub Form_Load() co.Provider = "Microsoft.Jet.OLEDB.4.0"
co.ConnectionString = "data source=" & App.Path & "\Library.mdb" co.Open rcd.Open "select * from CDmaster", co, adOpenDynamic, adLockOptimistic disable list End Sub Public Sub play() txtCode = rcd!cdcode txtName = rcd!cdname txttype = rcd!Type txtstatus = rcd!Status End Sub Public Sub enab() For Each c In Me If TypeOf c Is TextBox Then c.Enabled = True End If Next For Each c In Me If TypeOf c Is CommandButton Then c.Enabled = False End If Next cmdsave.Enabled = True cmdcancel.Enabled = True End Sub Public Sub disable() For Each c In Me If TypeOf c Is TextBox Then
c.Enabled = False End If Next For Each c In Me If TypeOf c Is CommandButton Then c.Enabled = True End If Next cmdsave.Enabled = False cmdcancel.Enabled = False End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) co.Close End Sub Private Sub List1_Click() rcd.MoveFirst rcd.Move List1.ListIndex play End Sub Public Sub list() List1.Clear rcd.MoveFirst While Not rcd.EOF List1.AddItem rcd("CDcode") rcd.MoveNext Wend rcd.MoveFirst play End Sub
Private Sub txtname_KeyDown(KeyCode As Integer, Shift As Integer) If ((KeyCode >= 33 And KeyCode <= 64) Or (KeyCode >= 91 And KeyCode <= 96) Or (KeyCode >= 123 And KeyCode <= 255)) Then MsgBox ("ENTER THE CHARACTER") txtName = "" txtName.SetFocus End If End Sub
ISSUE FORM Dim c As New Connection Dim rissue As New Recordset Dim r As New Recordset Dim r1 As New Recordset Dim r3 As New Recordset Dim r2 As New Recordset Dim ct As Control
Private Sub Bookname_Click() r2.MoveFirst r2.Move Bookname.ListIndex lbc.Caption = "Book ID : " txtID = r2!Bookid If LCase(Trim(r2!Status)) = "available" Then Enable ElseIf LCase(Trim(r2!Status)) = "issued" Then MsgBox "BOOK IS ALREADY ISSUED" disable ElseIf LCase(Trim(r2!Status)) = "missing" Then MsgBox "BOOK IS MISSING" disable End If End Sub Private Sub cmdissue_Click() For Each ct In Me If TypeOf ct Is TextBox Then End If Next Dim newNo As String
Dim iRegNo As Integer rissue.MoveLast newNo = rissue!issuecode iRegNo = Val(Mid(newNo, 2, 3)) + 1 If iRegNo < 10 Then Txtic = "b00" & iRegNo ElseIf iRegNo < 100 Then Txtic = "b0" & iRegNo ElseIf iRegNo < 1000 Then Txtic = "b" & iRegNo End If DTPicker1.Value = Date cmdissue.Enabled = False rissue.AddNew End Sub Private Sub Command1_Click() If Option1.Value = True Then rissue!MemberID = memid Else rissue!StudentId = stuID End If If option5.Value = True Then rissue!Bookid = txtID Else rissue!cdcode = txtID End If If Bookname.Visible = True Then r2!Status = "issued" r2.Update MsgBox "Book is Issued!" ElseIf cdname.Visible = True Then r3!Status = "issued"
r3.Update MsgBox "CD IS ISSUED" End If rissue!issuecode = Txtic rissue!remarks = txtRemarks rissue!Dateofissue = DTPicker1.Value rissue!returningdate = text1 rissue.Update cmdissue.Visible = True End Sub Private Sub Form_Load() c.Provider = "Microsoft.Jet.OLEDB.4.0" c.ConnectionString = "data source =" & App.Path & "\library.mdb" c.Open rissue.Open "select * from IssueMaster", c, adOpenDynamic, adLockOptimistic r.Open " select studentID from Studentmaster", c, adOpenDynamic, adLockOptimistic r1.Open " select memberID from MemberMaster", c, adOpenDynamic, adLockOptimistic r2.Open " select * from BookMaster", c, adOpenDynamic, adLockOptimistic r3.Open "select * from CDMaster", c, adOpenDynamic, adLockOptimistic fill memid.Visible = False stuID.Visible = False cdname.Visible = False Bookname.Visible = False Me.Show disable End Sub
Private Sub Option1_Click() If Option1.Value = True Then memid.Visible = True stuID.Visible = False End If End Sub Private Sub Option2_Click() If Option2.Value = True Then memid.Visible = False stuID.Visible = True End If End Sub Private Sub Option5_click() If option5.Value = True Then Bookname.Visible = True cdname.Visible = False End If End Sub Private Sub Option6_Click() If option6.Value = True Then Bookname.Visible = False cdname.Visible = True End If End Sub Private Sub DTPicker1_Validate(Cancel As Boolean) text1 = DTPicker1.Value + 2 End Sub Public Sub fill()
r.MoveFirst stuID.Clear r.MoveFirst While Not r.EOF stuID.AddItem r("studentID") r.MoveNext Wend r.MoveFirst r1.MoveFirst memid.Clear r1.MoveFirst While Not r1.EOF memid.AddItem r1("memberID") r1.MoveNext Wend r2.MoveFirst Bookname.Clear r2.MoveFirst While Not r2.EOF Bookname.AddItem r2("Bookname") r2.MoveNext Wend r2.MoveFirst r3.MoveFirst cdname.Clear r3.MoveFirst While Not r3.EOF cdname.AddItem r3("CdName") r3.MoveNext Wend
End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) c.Close End Sub Public Sub Enable() DTPicker1.Visible = True text1.Visible = True txtRemarks.Visible = True End Sub Public Sub disable() DTPicker1.Visible = False text1.Visible = False txtRemarks.Visible = False End Sub Private Sub cdname_Click() r3.MoveFirst r3.Move cdname.ListIndex lbc.Caption = "CD code: " txtID = r3!cdcode Dim i As Integer If LCase(Trim(r3!Status)) = "available" Then Enable ElseIf Trim(r3!Status) = "issued" Then i = MsgBox("CD IS ALREADY ISSUED") disable ElseIf Trim(r3!Status) = "missing" Then i = MsgBox("CD IS MISSING")
disable End If txtID = r3!cdcode End Sub
RETURN FORM
Option Explicit Dim r As New Recordset Dim ct As Control Dim r1 As New Recordset Dim r2 As New Recordset Dim c As New Connection Private Sub cmdok_Click() Dim m As Integer m = Val(Txtic) r!returningdate = txtRetDate r!payfine = Txtpf r.Update r1.MoveFirst Do While Not r1.EOF If Trim(r1("bookid")) = Trim(m) Then r1!Status = "Available" MsgBox ("BOOK IS RETURNED") r1.Update Exit Do End If r1.MoveNext Loop r2.MoveFirst Do While Not r2.EOF If Trim(r2("cdcode")) = Trim(m) Then r2!Status = "Available" r2.Update End If r2.MoveNext
Loop MsgBox ("IT IS RETURNED") End Sub Private Sub Form_Load() c.Provider = "Microsoft.Jet.OLEDB.4.0" c.ConnectionString = "data source=" & App.Path & "\Library.mdb" c.Open r.Open "select * from issuemaster", c, adOpenDynamic, adLockOptimistic r1.Open "select * from bookmaster", c, adOpenDynamic, adLockOptimistic r2.Open "select * from CDmaster", c, adOpenDynamic, adLockOptimistic filllist play Me.Show End Sub Public Sub filllist() List1.Clear r.MoveFirst While Not r.EOF List1.AddItem r!issuecode r.MoveNext Wend r.MoveFirst End Sub Private Sub List1_Click() r.MoveFirst r.Move List1.ListIndex play
End Sub Public Sub play() On Error Resume Next If Trim(r!StudentId) <> "" Then txtstu = r!StudentId lbl1.Caption = "Student ID : " End If If Trim(r!MemberID) <> "" Then txtstu = r!MemberID lbl1.Caption = "Member ID : " End If If Trim(r!Bookid) <> "" Then txtbook = r!Bookid lbl2.Caption = "Book ID : " Else txtbook = r!cdcode lbl2.Caption = "CD Code : " End If Txtic = r!issuecode txtIssDate = r!Dateofissue txtRetDate = Date Txtpf = r!payfine Dim fi As Integer fi = CDate(txtRetDate) - CDate(txtIssDate) If fi > 2 Then fi = fi - 2 Txtpf = fi * 2 Else Txtpf = 0 End If Txtpf.Enabled = False r.Update
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) c.Close End Sub
EMPLOYEE FORM
Dim c As New Connection Dim remployee As New Recordset Dim ct As Control Private Sub cmdCancel_Click() remployee.CancelUpdate remployee.MoveFirst filllist display disable End Sub Private Sub cmdDelete_Click() Dim i As Integer i = MsgBox("ARE YOU SURE?", vbYesNo) If i = vbYes Then remployee.Delete remployee.MoveFirst display MsgBox "RECORD DELETED" End If filllist End Sub Private Sub cmdModify_Click() Enable End Sub Private Sub CmdNew_Click() For Each ct In Me If TypeOf ct Is TextBox Then
ct.Text = "" End If Next Dim newNo As String Dim iemp As Integer remployee.MoveLast newNo = remployee!EmployeeID iemp = Val(Mid(newNo, 2, 3)) + 1 If iemp < 10 Then txtemp = "E00" & iemp ElseIf iemp < 100 Then txtemp = "E0" & iemp ElseIf iemp < 1000 Then txtemp = "E" & iemp End If remployee.AddNew Enable End Sub Private Sub cmdSave_Click() If txtemp = "" Or txtName = "" Or txtlast = "" Or txtAdd1 = "" Or txtAdd2 = "" Or txttel = "" Or txtmail = "" Or TXTPASS = "" Then MsgBox ("ENTER THE VALUE") Else remployee!EmployeeID = txtemp remployee!FirstName = txtName remployee!Lastname = txtlast remployee!Address1 = txtAdd1 remployee!Address2 = txtAdd2 remployee!Tel = txttel remployee!Email = txtmail remployee!Password = TXTPASS remployee.Update disable
filllist End If End Sub Private Sub Form_Load() c.Provider = "Microsoft.Jet.OLEDB.4.0" c.ConnectionString = "data source=" & App.Path & "\library.mdb" c.Open remployee.Open "select * from employee1", c, adOpenDynamic, adLockOptimistic display disable filllist End Sub Public Sub Enable() For Each ct In Me If TypeOf ct Is TextBox Then ct.Enabled = True End If Next For Each ct In Me If TypeOf ct Is CommandButton Then ct.Enabled = False End If Next cmdsave.Enabled = True cmdcancel.Enabled = True End Sub Public Sub disable() For Each ct In Me If TypeOf ct Is TextBox Then
ct.Enabled = False End If Next For Each ct In Me If TypeOf ct Is CommandButton Then ct.Enabled = True End If Next cmdsave.Enabled = False cmdcancel.Enabled = False End Sub Public Sub display() txtemp = remployee!EmployeeID txtName = remployee!FirstName txtlast = remployee!Lastname txtAdd1 = remployee!Address1 txtAdd2 = remployee!Address2 txttel = remployee!Tel txtmail = remployee!Email TXTPASS = remployee!Password End Sub Public Sub filllist() List1.Clear remployee.MoveFirst While Not remployee.EOF List1.AddItem remployee("employeeID") remployee.MoveNext Wend remployee.MoveFirst display End Sub Private Sub List1_Click()
remployee.MoveFirst remployee.Move List1.ListIndex display End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) c.Close End Sub Private Sub txtname_KeyDown(KeyCode As Integer, Shift As Integer) If ((KeyCode >= 33 And KeyCode <= 64) Or (KeyCode >= 91 And KeyCode <= 96) Or (KeyCode >= 123 And KeyCode <= 255)) Then MsgBox ("ENTER THE CHARACTER") txtName = "" txtName.SetFocus End If End Sub Private Sub txtlast_KeyDown(KeyCode As Integer, Shift As Integer) If ((KeyCode >= 33 And KeyCode <= 64) Or (KeyCode >= 91 And KeyCode <= 96) Or (KeyCode >= 123 And KeyCode <= 255)) Then MsgBox ("ENTER THE CHARACTER") txtlast = "" txtlast.SetFocus End If End Sub Private Sub txttel_KeyDown(KeyCode As Integer, Shift As Integer) If Not (KeyCode >= 48 And KeyCode <= 57) Then MsgBox ("PLEASE ENTER THE NUMERIC KEY") txttel = "" txttel.SetFocus
End If End Sub
FORM ABOUT Private Sub Command1_Click() Unload Me End Sub Private Sub Command1_Click() DataReport2.Show End Sub Option Explicit Private Sub Command1_Click() DataReport4.Show End Sub Private Sub Command1_Click() DataReport3.Show End Sub Private Sub Command1_Click() DataReport1.Show End Sub Option Explicit Private Sub Command1_Click() DataReport5.Show End Sub Option Explicit Private Sub Command1_Click() DataReport6.Show End Sub
TESTING Testing is the only phase in the whole software development process that is regarded as destructive processes rather than a constructive one. During the testing phase Engineers creates a series of test cases that are include the software that has been built. The basic principle that software engineer most understand before applying methods to design an effective test cases are: - All tests should be traceable to system requirement. - Test should be planned long before testing begins. - Testing should begin in small and progress towards testing in the large. - To be most effective and independents third party should conduct testing. TEST CASES: In book table we have taken ISBN as a primary key to identify the book and through this we establish the relationship with other tables and for fetching the complete information related to a particular book. In the student table we have taken std_id as primary key which describe information about a particular student. The next table is member table in which we have taken mem_id as a primary key which describes about6 a particular member. The cd table has a primary key cd_code which contains the complete information about cd.
The employee table has primary key emp_id which describes about the employee of library and the designation of the employee. The table magazine have serial no as a primary key which describes about the magazine.
IMPLEMENTATION The implementation part is less creative than system design . It is primarily concerned with user training, site preparation ,and file conversion. During the final testing ,user acceptance is tested, following by user training. Depending on the nature of the system ,extensive user training may be required . Conversion usually takes phase at about the same timer the user is being trained. These are the various requirements regarding project hardware, software and the data:Hardware Requirement: Computer System: Standard PC/AT compatible with Pentium processor. Primary Memory: It works with in 32 MB RAM Secondary Memory: It will work on both ,hard disk as well as floppy disk drive along with D2K 6.0 but u can use hard disk for voluminious data processing. It will increase the accessibility.
Video Adapters And monitors: It is a colored program ,so better to use a colored monitor but it can perform satisfactorily on various monochrome adapter as: IBM monochrome adapter Hercules monochrome adapter IBM CGA card 80*25 in text mode
Printer: Any printer supported to PC/AT in Windows 95 can be used to get print outs but INKJET printer is most suitable and economical.
SOFTWARE REQUIREMENTS: FRONTEND:-
Visual basic 6.0
BACKEND:-
MS-Access
LIMITATIONS ------------------------------------------------------------------
There are always some boundary or limitations in any first time software creation . So some limitations of our project are as follows: in this project there is no graphical reports related to issue & return of book. In this project there is no way for calculating the collection of funds accepted as fine for the books. In this project there is no way for the marinating the database of employees ,members ,&students related to their mode of joining, daily attendance.
ENHANCEMENT
There is always room for enhancements or expanding any software development so we can easily enhance our project according to our limitations .We can enhance our project in the given following areas We can enhance all the graphical report related to transactions of books. We can enhance the entire database related to employees, members & students. When we enhance these given thing in this project then it will become more end userfriendly.
CONCLUSIONS A package can be only developed successfully if the project team has a widespread understanding about the nature of problem faced by librarian & members of the library. Obviously , the project team members try to tackle each and every problems regarding the coding in the project. It is evident most of the time , it is not possible to make such package that can solve all the problems: some bugs are always there. Library Information System is completely user’s friendly system which can be access by a person having not much knowledge of computers. The library information system looks for the requirement related to the members &student and also provide some of the security features. It will be unjustified if it is claimed that this project is complete in all respects. Therefore the site has certain limitations and persuades us to provide perfection to this system.
APPENDIX
* *
Mastering in Visual Basic 6.0 PL/SQL
By Bradely By Ivan Barros
MAINTENANCE
The project “Library Information System” is a graphical user interface and is quite user friendly . To make the project maintenance easier in the future this project is divided into number of modules. The project containing following module:
Add Member Add Student Updation Searching
By dividing the project in module ,the project debugging becomes quite easier. It is easy to detect the errors in modules rather than in full project. If we want to modify any module we can easily modify that particular module, there is no need to change full code of project as each module is quite independent of each other. Hence, maintenance of the project is simplified in future by dividing the project in modules.
E-R DIAGRAM
Month
Bill no
Date
Student_ID
Na me
Publication Title
SEM
Student
Period icity
Student_id
NOC
Magazine
Vo lu me
ACCESSION STUDENT -ID
Year
SUB
Sub-No
ISSUE
DOI
DATE
YEA R
ORDER
ID
PA GE AUTHOR
Accession
NOC TITLE VENDOR
PUBLI
VENDOR_ID
BILLNO Na me
VOLUM E
BILL-ID COST
GIVEN By
BILL_ NO
BILL DATE
BILL AMOUNT
BILL
8 Vendor_id