Chương trình Quản lý dân số tại địa bàn nội thành Hà Nội

DANH M ỤC SÁCH THAM KHẢO I-Giáo trình tin học văn phòng microsoft access 2000 Tác giả Nguyễn Sỹ Dũng Nhà xuất bản đại học Quốc Gia thành phố Hồ Chí Minh II-Microsoft Visul basic lập trình cơ sở dữ liệu 6.0 Tác giả: Nguyễn Thị Ngọc Mai(Chủ biên) Nguyễn Thị Kim Trang Hoàng Đức Hải Cố vấn khoa học: GSTS. Nguyễn Hữu Anh Nhà xuất bản Lao động xã hội MỤC LỤC LỜI NÓI ĐẦU Hiện nay, nền khoa học kỹ thuật và nền kinh tế trên toàn thế giới đang phát triển từng ngày. Việt Nam cũng đang trên đà

doc43 trang | Chia sẻ: huyen82 | Lượt xem: 1801 | Lượt tải: 1download
Tóm tắt tài liệu Chương trình Quản lý dân số tại địa bàn nội thành Hà Nội , để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
phát triển phát triển hội nhập với thế giới, do đó ngành khoa học kỹ thuật của Việt Nam cũng đã có những bước tiến bộ vượt bậc. Đóng góp lớn nhất vào sự phát triển của đất nước phải kể đến những thành tựu về công nghệ thông tin. Công nghệ thông tin phát triển mang lại rất nhiều ứng dụng cho đời sống xã hội. Máy móc tự động hóa đã dần thay thế sức lao động của con người. Lao động trí óc thủ công cũng được hỗ trợ phần lớn bởi các phần mềm ứng dụng quản lý, đặc biệt là trong các cơ quan,tổ chức cần quản lý khối lượng công việc lớn. Hà Nội là thủ đô của đất nước, do đó rất nhiều các cá nhân, tổ chức đầu tư mở rộng kinh doanh trên địa bàn thành phố Hà Nội. Các công ty tư nhân, cổ phần, liên doanh, nhà nước…, các doanh nghiệp lớn nhỏ ra đời hàng loạt đã thu hút một lượng lớn lao động từ khắp mọi tỉnh thành đổ về, chủ yếu là ở miền Bắc. Vì vậy quản lý dân số của thành phố Hà Nội, đặc biệt là khu vực nội thành là một vấn đề rất cần thiết nhưng nếu quản lý bằng văn bản giấy tờ thông thường thì rất khó trong việc lưu trữ sổ sách qua một thời gian dài. Do đó em đã xây dựng chương trình Quản lý dân số tại địa bàn nội thành Hà Nội hi vọng có thể hỗ trợ cho công tác quản lý dân số nội thành Hà Nội. Chương trình quản lý dân số nội thành Hà Nội bao gồm các thông tin về các Quận, các Phường, các Tổ dân phố, các Hộ gia đình trong từng tổ và các Nhân khẩu trong mỗi gia đình. Ngoài ra người sử dụng có thể cập nhật thêm hoặc xóa bỏ bớt các thông tin này. Bên cạnh đó chương trình còn có chức năng tìm kiếm nhân khẩu theo các tiêu chí và lập Báo cáo tổng hợp. Trong thời gian xây dựng chương trình và cũng là đề tài thực hành tốt nghiệp này, em đã được khoa Công nghệ tin học- viện ĐH Mở Hà Nội, và thầy Trương Công Đoàn- người trực tiếp giao đề tài và hướng dẫn tạo điều kiện tốt nhất cho em hoàn thành bài toán này. Em xin chân thành cảm ơn! Hà Nội, ngày 01 tháng 08 năm 2010 Sinh viên Dương Thúy Lan CHƯƠNG I: BÀI TOÁN XÂY DỰNG PHẦN MỀM QUẢN LÝ DÂN SỐ TẠI ĐỊA BÀN NỘI THÀNH HÀ NỘI MÔ TẢ BÀI TOÁN: Việc quản lý dân số tại địa bàn nội thành Hà Nội được mô tả như sau: Qua cuộc điều tra dân số toàn quốc vưa diễn ra tháng 04/2009 có thể thấy Hà Nội là một trong những địa bàn có tình hình dân số phức tạp nhất cả nước, đặc biệt là khu vực nội thành Hà Nội – trung tâm kinh tế, văn hóa, chính trị của cả nước. Nội thành được phân cấp từ Quận đến Phường, đến tổ dân phố. Chương trình phải lưu trữ thông tin các thành viên trong mỗi hộ gia đình như họ tên, tuổi, số chứng minh thư, nghề nghiệp, hình thức lưu trú,…Từ đó chương trình có thể thống kê được dân số theo các đơn vị quản lý hành chính, theo các hình thức lưu trú, theo độ tuổi, theo trình độ, giới tính để phục vụ cho việc điều tra của Ủy Ban Điều Tra Dân Số Quốc Gia. Từ các số liệu này có thể được sử dụng cho các cơ quan nhà nước khác nghiên cứu đưa ra các chiến lược phù hợp với người dân như có bổ sung thêm trường học hay không, đưa ra các ngành nghề phù hợp với lứa tuổi, các trung tâm chăm sóc người già,… YÊU CẦU THỰC HIỆN: Phân tích và thiết kế hệ thống chương trình , xây dựng cơ sở dữ liệu Access hoặc SQL Server để lưu trữ. Cập nhật, sửa, xóa, tìm kiếm được thông tin mỗi người Thống kê theo các tiêu chí khác nhau về dân số CHƯƠNG II: PHÂN TÍCH HỆ THỐNG VỀ CHỨC NĂNG SƠ ĐỒ PHÂN CẤP CHỨC NĂNG CỦA HỆ THỐNG: Hệ thống quản lý bao gồm các chức năng chính: -Chức năng hệ thống: Quản lý thông tin về các Quận, các Phường, các Tổ dân phố, thông tin về tài khoản đăng nhập chương trình. Trong chức năng này người dùng có thể thêm, sửa, xóa, dữ liệu -Chức năng tra cứu: Chức năng này cho phép cập nhật thông tin các hộ gia đình, các nhân khẩu trong từng hộ, tìm kiếm thông tin các nhân khẩu theo từng tiêu chí khác nhau. Ngoài ra người dùng còn có thể lập báo cáo danh sách các hộ gia đình, các nhân khẩu… -Chức năng trợ giúp bao gồm: Giới thiệu về chương trình, hướng dẫn sử dụng các chức năng trong chương trình. Hệ thống Tra cứu Trợ giúp Xây dựng phần mềm quản lý dân số tại địa bàn nội thành Hà Nội Hệ thống Thông tin các Quận Thông tin các Phường Thông tin các Tổ dân phố Thông tin tài khoản đăng nhập Hinh1 : Sơ đồ chức năng của hệ thống Tra cứu Cập nhật thông tin Hộ gia đình Cập nhật thông tin Nhân khẩu Cập nhật thông tin Nghề nghiệp Tìm kiếm thông tin nhân khẩu Danh mục các Hình thức lưu trú, các Trình độ văn hóa Báo cáo tổng hợp Hình 2: Sơ đồ chức năng tra cứu Tìm kiếm Giới thiệu Hướng dẫn sử dụng Hình 4: Sơ đồ chức năng trợ giúp PHÂN TÍCH CƠ SỞ DỮ LIỆU: Xuất phát từ nhu cầu thực tế của bài toán quản lý ta xác định được các thực thể tham gia vào hệ thống cùng với mối quan hệ giữa các thực thể: DANH SÁCH QUẬN DANH SÁCH PHƯỜNG -Mã quận -Mã phường -Tên quận -Tên phưòng -Mã quận DANH SÁCH TỔ DÂN PHỐ DANH SÁCH HỘ GIA ĐÌNH -Mã tổ -Mã hộ khẩu -Tên tổ -Tên chủ hộ -Mã phường -Mã tổ DANH SÁCH NHÂN KHẨU NGHỀ NGHIỆP -Mã hộ khẩu -Mã nghề nghiệp -Tên nhân khẩu -Nghề nghiệp -Ngày sinh -Giới tính -Số chứng minh thư -Nghề nghiệp -Trình độ văn hóa -Hình thức lưu trú TRÌNH ĐỘ HÌNH THỨC LƯU TRÚ -Mã trình độ -Mã hình thức -Trình độ -Tên hình thức TÀI KHOẢN -Username -Password III- CÁC BẢNG CƠ SỎ DỮ LIÊU: 1/ Bảng lưu trữ thông tin Quận (tblQuan) Tên trường Độ rộng Kiểu dữ liệu Chú thích MaQuan(khoá chính) 5 Text Mã quận TenQuan 30 Text Tên quận 2/ Bảng lưu trữ thông tin Phường (tblPhuong) Tên trường Độ rộng Kiểu dữ liệu Chú thích MaPhuong (khoá chính) 5 Text Mã phường TenPhuong 30 Text Tên phường MaQuan 5 Text Mã quận 3/ Bảng lưu trữ thông tin Tổ dân phố (tblTo) Tên trường Độ rộng Kiểu dữ liệu Chú thích MaTo(khoá chính) 5 Text Mã tổ TenTo 20 Text Tên tổ MaPhuong 5 Text Mã phường 4/ Bảng lưu trữ thông tin Hộ khẩu (tblHokhau) Tên trường Độ rộng Kiểu dữ liệu Chú thích MaHK(khoá chính) 5 Text Mã hộ khẩu Tenchuho 30 Text Tên chủ hộ MaTo 5 Text Mã tổ 5/Bảng lưu trữ thông tin Nhân khẩu (tblNhankhau) Tên trường Độ rộng Kiểu dữ liệu Chú thích MaHK 5 Text Mã hộ khẩu TenNhankhau 30 Text Tên nhân khẩu Ngaysinh 50 Date/Time Ngày sinh Gioitinh 50 Yes/No Giới tính SoCMT (khóa chính) 9 Text Số chứng minh thư Nghenghiep 50 Text Nghề nghiệp Trinhdo 50 Text Trình độ Hinhthucluutru 50 Text Hình thức lưu trú 6/ Bảng lưu trữ thông tin Nghề nghiệp (tblNghenghiep) Tên trường Độ rộng Kiểu dữ liệu Chú thích MaNN(khoá chính) 5 Text Mã nghề nghiệp Nghenghiep 30 Text Tên nghề nghiệp 7/ Bảng lưu trữ thông tin Trình độ văn hóa (tblTrinhdo) Tên trường Độ rộng Kiểu dữ liệu Chú thích MaTD(khoá chính) 5 Text Mã trình độ Trinhdo 30 Text Trình độ 8/ Bảng lưu trữ thông tin Hình thức lưu trú (tblHinhthucluutru) Tên trường Độ rộng Kiểu dữ liệu Chú thích MaHT(khoá chính) 5 Text Mã hình thức TenHT 30 Text Tên hình thức 9/ Bảng lưu trữ thông tin Tài khoản (tblAccount) Tên trường Độ rộng Kiểu dữ liệu Chú thích Username(khoá chính) 5 Text Tên đăng nhập Password 30 Text Mật khẩu CHƯƠNG III: CÁC NGÔN NGỮ SỬ DỤNG TRONG CHƯƠNG TRÌNH 1- Giới thiệu về hệ quản trị cơ sở dữ liệu Microsoft Access: Microsoft Access là một trong những phần mềm ứng dụng của bộ Microsoft Office. Access là một hệ quản trị cơ sở dữ liệu ( Data base managenent system). Viết tắt là cơ sở dữ liệu dùng để tạo và sử lý các cơ sở dữ liệu. Cho phép quản lý các số liệu một cách thống nhất có tổ chức, liên kết các số liệu rời rạc lại với nhau và giúp người sử dụng có thể thiết kế chương trình một cachs tự động, tránh những thao tác thủ công trong quá trình tính toán sử lý 2- Ngôn ngữ lập trình visual basic: Visual Basic 6.0 (VB6) là một phiên bản của bộ công cụ lập trình Visual studio, cho phép người dùng tiếp cận nhanh cách thức lập trình trên môi trường Windows. Những ai đã từng quen thuộc với VB thì tìm thấy ở VB6 những tính năng trợ giúp mới và các công cụ lập trình hiệu quả. Người dùng mới làm quen với VB cũng có thể làm chủ VB6 một cách dễ dàng. Với VB6, chúng ta có thể : Khai thác thế mạnh của các điều khiển mở rộng. Làm việc với các điều khiển mới (ngày tháng với điều khiển MonthView và DataTimePicker, các thanh công cụ có thể di chuyển được CoolBar, sử dụng đồ họa với ImageCombo, thanh cuộn FlatScrollBar,…). Làm việc với các tính năng ngôn ngữ mới. Làm việc với DHTML. Làm việc với cơ sở dữ liệu. Các bổ sung về lập trình hướng đối tượng. a) Cài đặt Visual Basic 6.0 Sử dụng chương trình Setup, người dùng có thể cài đặt VB6 lên máy tính của mình. Chương trình Setup này còn cài đặt các tập tin cần thiết để xem tài liệu trên đĩa CD MSDN (Microsoft Developer Network). Nếu cần, người dùng có thể cài đặt riêng phần tài liệu và ví dụ mẫu của Visual Basic lên máy tính. Để cài đặt VB6, người dùng nên kiểm tra máy tính của mình đảm bảo được cấu hình tối thiểu. Các yêu cầu hệ thống tối thiểu : - Microsoft Windows 95 trở lên hoặc là Microsoft Windows NT Workstation 4.0 trở lên. - Tốc độ CPU 66 MHz trở lên. - Màn hình VGA hoặc màn hình có độ phân giải cao được hỗ trợ bởi Microsoft Windows. - 16 MB RAM cho Microsoft Windows 95 hoặc 32MB RAM cho Microsoft Windows NT Workstation Visual Basic là ngôn ngữ lập trình theo hướng đối tượng (OOP – Oriented Object Programming).Sử dụng VB có thể tạo ra những ứng dụng nhanh nhất với giao diện hỗ trợ mạnh cho người sử dụng. Visual Basic là một trong những ngôn ngữ lập trình bậc cao thông dụng nhất hiện nay, là một sản phẩm của Microsoft.Nó cũng giống như hầu hết các ngôn ngữ lập trình bậc cao khác, trong Visual Basic chứa đầy đủ các câu lệnh cần thiết, các hàm xây dựng sẵn. Ngoài ra Visual Basic chứa một số phương tiện giúp cho việc áp dụng kĩ thuật hướng đối tượng trong việc truy cập cơ sở dữ liệu.Trong Visual Basic có rất nhiều phương pháp truy cũng như các đối tượng truy cập dữ liệu như : ADO, ADODB, DAO, RDO…, nói chung các đối tượng này có những thuộc tính tương đối giống nhau.Trong báo cáo này em chủ yếu đi sâu vào đối tượng ADO.Vì ADO là một công cụ truy cập dữ liệu rất hữu hiệu và ADO cũng được cài đặt trong chương trình. ADO là gì ? ADO (ActiveX Data Object hay đối tượng dữ liệu ActiveX).Ta có thể hình dung rằng ADO là một mô hình làm giảm kích thước của mô hình RDO (Đối tượng dữ liệu từ xa).Mô hình dữ liệu ActiveX rất gọn (ADO truy cập tới các cơ sở dữ liệu qua OLEDB với tốc độ truy cập nhanh, bộ nhớ tốn ít…).Nó được thiết kế để cho phép lập trình viên lấy được một tập các Record từ nguồn dữ liệu một cách nhanh nhất nếu có thể.Tốc độ và tính đơn giản là một trong những mục tiêu cốt lõi của ADO, mô hình này được thiết kế để cho phép tạo ra một đối tượng Recordset mà không cần phải di chuyển qua các đối tượng trung gian khác trong quá trình lập trình.Thực tế chỉ có ba đối tượng chính trong mô hình : -Connection : Đại diện kết nối thực sự -Command : Được sử dụng để thực thi các Query dựa vào kết nối dữ liệu. -Recordset : Đại diện cho một tập các Record được chọn Query thông qua đối tượng Command. Đối tượng Connection chứa một tập các đối tượng còn lại là các đối tượng Error đối tượng này giữ lại bất kỳ một thông tin lỗi nào có liên quan đến kết nối.Đối tượng Command có một tập các đối tượng còn gọi là các đối tượng Error đối tượng này giữ lại bất kỳ một thong tin lỗi nào có liên quan đến kết nối.Đối tượng Command có một tập các đối tượng con là Parameter để giữ bất cứ tham số nào có thể thay thế cho query.Recordset cũng có một tập các đối tượng con Properties để lưu các thông tin chi tiết về đối tượng. Connection Command Parameter Recorset Fields Error Sơ đồ mô hình ActiveX Data Object Để sử dụng được thư viện ADO, trong VB cần thực hiện bước nạp thư viện theo thứ tự sau : VB -> Project -> References -> Microsoft ActiveX Data Objects 2.6 Library Các thuộc tính đặc biệt của đối tượng ADO Mô hình ADO có một số thuộc tính mà các mô hình cơ sở dữ liệu khác như DAO và RDO không có.Các thuộc tính này điều khiển cách thức tạo ra Dataset và quyền hạn truy cập trong một kết nối dữ liệu, có một số thuộc tính như sau : Connection String ( Chuỗi kết nối ) Command Text ( Văn bản câu lệnh ) Command Type ( Kiểu câu lệnh ) Cursor Location ( Định vị con trỏ ) Cursor Type ( Kiểu con trỏ ) Lock Type ( Kiểu khóa ) Mode Type ( Kiểu chế độ làm việc ) Ngoài ra trong Visual Basic còn chứa một số kiểu dữ liệu thông dụng khác cho phép lập trình viên tự định nghĩa và các câu lệnh chuẩn khác. CHƯƠNG IV: GIAO DIỆN VÀ CÁC CHỨC NĂNG CỦA HỆ THỐNG 1. Giao diện của form đăng nhập: 2. Giao diện của form main: 3. Giao diện của form thông tin các Quận: 4. Giao diện của form thông tin các Phường: Giao diện của form thông tin các Tổ dân phố và form thông tin Tài khoản cũng tương tự. 5. Giao diện của form cập nhật thông tin Hộ khẩu: 6. Giao diện của form cập nhật thông tin Nhân khẩu: 7. Giao diện của form danh mục Hình thức lưu trú và form Trình độ: 8. Giao diện của form tìm kiếm thông tin nhân khẩu: CHƯƠNG V: MỘT SỐ CODE CHƯƠNG TRÌNH 1. Code form Đăng nhập: Option Explicit Dim rs As New ADODB.Recordset Dim dem As Integer Dim strSQL As String Dim rsKtra As New ADODB.Recordset Dim cnn As New ADODB.Connection Private Sub cmdDangnhap_Click() dem = dem + 1 cnn.CursorLocation = adUseClient cnn.Provider = "Microsoft.Jet.Oledb.4.0" cnn.ConnectionString = "Data Source=" & App.Path & "\Data\QLDS.mdb" cnn.Open strSQL = "Select * from tblAccount where Username='" & txtUser.Text & "'" Set rsKtra = cnn.Execute(strSQL) If (rsKtra.BOF And rsKtra.EOF) Then If dem > 3 Then MsgBox "Sai qua 3 lan, bye!" End End If MsgBox "Ten dang nhap nay khong ton tai,moi nhap lai." cnn.Close Exit Sub End If If Not (rsKtra.BOF And rsKtra.EOF) Then Set rs = cnn.Execute("Select * from tblAccount where Username='" & txtUser.Text & "' AND Password='" & txtPass.Text & "'") End If strSQL = "Select * from tblAccount where Username='" & txtUser.Text & "' AND Password='" & txtPass.Text & "'" Set rsKtra = cnn.Execute(strSQL) If (rsKtra.BOF And rsKtra.EOF) Then If dem > 3 Then MsgBox "Sai qua 3 lan, bye!" End End If MsgBox "Sai mat khau, moi nhap lai." cnn.Close Exit Sub End If If Not (rs.EOF And rs.BOF) Then Set rs = Nothing Unload Me frmMain.Show End If End Sub Private Sub CmdThoat_Click() End End Sub Private Sub Form_Load() dem = 0 End Sub 2. Code form Thông tin các Quận: Option Explicit Dim cnn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim rsKtra As New ADODB.Recordset Dim strSQL As String Dim sStatus As String Private Sub cmdGhi_Click() Dim cmd As New ADODB.Command Set cmd.ActiveConnection = cnn cmd.CommandType = adCmdStoredProc If Len(Trim(txtMaQuan.Text)) <= 0 Or Len(Trim(txtTenQuan.Text)) <= 0 Then MsgBox ("Ban chua nhap Ma quan hoac Ten Quan") Exit Sub End If If sStatus = "Them" Then strSQL = "Select * from tblQuan where MaQuan='" & txtMaQuan.Text & "'" Set rsKtra = cnn.Execute(strSQL) If Not (rsKtra.EOF And rsKtra.BOF) Then MsgBox ("Ma Quan nay da co.") Exit Sub End If cmd.CommandText = "qry_InsertTableQuan" cmd.Parameters.Append cmd.CreateParameter("@MaQuan", adVarChar, adParamInput, 5, txtMaQuan.Text) cmd.Parameters.Append cmd.CreateParameter("@TenQuan", adVarChar, adParamInput, 30, txtTenQuan.Text) Else If txtMaQuan.Text rs.Fields("Ma quan") Then strSQL = "Select * from tblQuan where MaQuan='" & txtMaQuan.Text & "'" Set rsKtra = cnn.Execute(strSQL) If Not (rsKtra.EOF And rsKtra.BOF) Then MsgBox ("Ma Quan nay da co.") Exit Sub End If End If cmd.CommandText = "qry_UpdateTableQuan" cmd.Parameters.Append cmd.CreateParameter("@MaQuan", adVarChar, adParamInput, 5, txtMaQuan.Text) cmd.Parameters.Append cmd.CreateParameter("@TenQuan", adVarChar, adParamInput, 30, txtTenQuan.Text) cmd.Parameters.Append cmd.CreateParameter("@Khoa", adVarChar, adParamInput, 5, rs.Fields("Ma quan")) End If cmd.Execute rs.Requery Set cmd = Nothing sStatus = "" Call HieuchinhCommandButton(1, 1, 0, 1, 0) End Sub Private Sub cmdHuy_Click() Call LaydulieuvaoTextbox Call HieuchinhCommandButton(1, 1, 0, 1, 0) End Sub Private Sub cmdSua_Click() sStatus = "Sua" Call HieuchinhCommandButton(0, 0, 1, 0, 1) End Sub Private Sub cmdThem_Click() Call ClearTextbox sStatus = "Them" Call HieuchinhCommandButton(0, 0, 1, 0, 1) End Sub Private Sub CmdThoat_Click() Unload Me frmMain.Show cnn.Close End Sub Private Sub cmdXoa_Click() If (rs.EOF And rs.BOF) Then Exit Sub Set rsKtra = cnn.Execute("Select * from tblPhuong where MaQuan='" & rs.Fields("Ma quan") & "'") If Not (rsKtra.EOF And rsKtra.BOF) Then If MsgBox("Thong tin ve Quan nay con lien quan den bang tblPhuong" _ & vbCrLf & "Ban chac chan muon xoa?", vbCritical + vbYesNo + vbDefaultButton2, "Chu y") = vbYes Then cnn.Execute ("DELETE from tblQuan where MaQuan='" & rs.Fields("Ma quan") & "'") rs.Requery End If Else If MsgBox("Ban chac chan muon xoa Quan nay?", vbCritical + vbYesNo + vbDefaultButton2, "Chu y") = vbYes Then cnn.Execute ("DELETE from tblQuan where MaQuan='" & rs.Fields("Ma quan") & "'") rs.Requery End If End If Call LaydulieuvaoTextbox End Sub Private Sub Form_Load() cnn.CursorLocation = adUseClient cnn.Provider = "Microsoft.Jet.Oledb.4.0" cnn.ConnectionString = "Data Source=" & App.Path & "\Data\QLDS.mdb" cnn.Open strSQL = "Select MaQuan as [Ma quan], TenQuan as [Ten quan] from tblQuan order by MaQuan" Set rs = cnn.Execute(strSQL) Set DataGrid1.DataSource = rs If Not (rs.BOF And rs.EOF) Then Call LaydulieuvaoTextbox End If Call HieuchinhCommandButton(1, 1, 0, 1, 0) End Sub Private Sub Form_Unload(Cancel As Integer) Set DataGrid1.DataSource = Nothing If rsKtra.State = adStateOpen Then rsKtra.Close Set rsKtra = Nothing If rs.State = adStateOpen Then rs.Close Set rs = Nothing End Sub Private Sub HieuchinhCommandButton(c1 As Byte, c2 As Byte, c3 As Byte, c4 As Byte, c5 As Byte) cmdThem.Enabled = IIf(c1 = 1, True, False) cmdSua.Enabled = IIf(c2 = 1, True, False) cmdGhi.Enabled = IIf(c3 = 1, True, False) cmdXoa.Enabled = IIf(c4 = 1, True, False) cmdHuy.Enabled = IIf(c5 = 1, True, False) End Sub Private Sub cmdLast_Click() If rs.RecordCount <= 0 Then Exit Sub rs.MoveLast Call LaydulieuvaoTextbox End Sub Private Sub cmdNext_Click() If rs.RecordCount <= 0 Then Exit Sub rs.MoveNext If rs.EOF Then rs.MoveFirst Call LaydulieuvaoTextbox End Sub Private Sub cmdPrevious_Click() If rs.RecordCount <= 0 Then Exit Sub rs.MovePrevious If rs.BOF Then rs.MoveLast Call LaydulieuvaoTextbox End Sub Private Sub cmdFirst_Click() If rs.RecordCount <= 0 Then Exit Sub rs.MoveFirst Call LaydulieuvaoTextbox End Sub Private Sub DataGrid1_Click() Call LaydulieuvaoTextbox End Sub Private Sub LaydulieuvaoTextbox() If (rs.BOF And rs.EOF) Then Exit Sub txtMaQuan.Text = "" & rs.Fields("Ma quan") txtTenQuan.Text = "" & rs.Fields("Ten quan") End Sub Private Sub ClearTextbox() txtMaQuan.Text = "" txtTenQuan.Text = "" End Sub 3. Code form cập nhật thông tin Nhân khẩu: Option Explicit Dim cnn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim rsKtra As New ADODB.Recordset Dim strSQL As String Dim sStatus As String Dim rs4 As New ADODB.Recordset Dim rs5 As New ADODB.Recordset Dim rs6 As New ADODB.Recordset Dim rs7 As New ADODB.Recordset Dim gt As Boolean Private Sub HieuchinhCommandButton(c1 As Byte, c2 As Byte, c3 As Byte, c4 As Byte, c5 As Byte) cmdThem.Enabled = IIf(c1 = 1, True, False) cmdSua.Enabled = IIf(c2 = 1, True, False) cmdGhi.Enabled = IIf(c3 = 1, True, False) cmdXoa.Enabled = IIf(c4 = 1, True, False) cmdHuy.Enabled = IIf(c5 = 1, True, False) End Sub Private Sub cmdFirst_Click() If rs.RecordCount <= 0 Then Exit Sub rs.MoveFirst Call LaydulieuvaoTextbox End Sub Private Sub cmdGhi_Click() Dim cmd As New ADODB.Command Set cmd.ActiveConnection = cnn cmd.CommandType = adCmdStoredProc If Len(Trim(DataCombo4.Text)) <= 0 Or Len(Trim(txtHoten.Text)) <= 0 Or Len(Trim(txtSoCMT.Text)) <= 0 Then MsgBox "Chua chon Ma ho khau, chua nhap Ten nhan khau hoac So CMT" Exit Sub End If If sStatus = "Them" Then strSQL = "Select * from tblNhankhau where SoCMT='" & txtSoCMT.Text & "'" Set rsKtra = cnn.Execute(strSQL) If Not (rsKtra.EOF And rsKtra.BOF) Then MsgBox "So CMT nay da co, moi nhap lai." Exit Sub End If cmd.CommandText = "qry_InsertTableNhankhau" cmd.Parameters.Append cmd.CreateParameter("@MaHK", adVarChar, adParamInput, 5, DataCombo4.Text) cmd.Parameters.Append cmd.CreateParameter("@TenNhankhau", adVarChar, adParamInput, 30, txtHoten.Text) cmd.Parameters.Append cmd.CreateParameter("@Ngaysinh", adVarChar, adParamInput, 10, txtNgaysinh.Text) cmd.Parameters.Append cmd.CreateParameter("@Gioitinh", adVarChar, adParamInput, 3, IIf(optNam.Value = True, -1, 0)) cmd.Parameters.Append cmd.CreateParameter("@SoCMT", adVarChar, adParamInput, 9, txtSoCMT.Text) cmd.Parameters.Append cmd.CreateParameter("@Nghenghiep", adVarChar, adParamInput, 5, DataCombo5.Text) cmd.Parameters.Append cmd.CreateParameter("@Trinhdo", adVarChar, adParamInput, 5, DataCombo6.Text) cmd.Parameters.Append cmd.CreateParameter("@Hinhthucluutru", adVarChar, adParamInput, 5, DataCombo7.Text) Else If txtSoCMT.Text rs.Fields("So CMT") Then strSQL = "Select * from tblNhankhau where SoCMT='" & txtSoCMT.Text & "'" Set rsKtra = cnn.Execute(strSQL) If Not (rsKtra.EOF And rsKtra.BOF) Then MsgBox "So CMT nay da co!" Exit Sub End If End If cmd.CommandText = "qry_UpdateTableNhankhau" cmd.Parameters.Append cmd.CreateParameter("@MaHK", adVarChar, adParamInput, 5, DataCombo4.Text) cmd.Parameters.Append cmd.CreateParameter("@TenNhankhau", adVarChar, adParamInput, 30, txtHoten.Text) cmd.Parameters.Append cmd.CreateParameter("@Ngaysinh", adVarChar, adParamInput, 10, txtNgaysinh.Text) cmd.Parameters.Append cmd.CreateParameter("@Gioitinh", adVarChar, adParamInput, 3, IIf(optNam.Value = True, -1, 0)) cmd.Parameters.Append cmd.CreateParameter("@SoCMT", adVarChar, adParamInput, 9, txtSoCMT.Text) cmd.Parameters.Append cmd.CreateParameter("@Nghenghiep", adVarChar, adParamInput, 5, DataCombo5.Text) cmd.Parameters.Append cmd.CreateParameter("@Trinhdo", adVarChar, adParamInput, 5, DataCombo6.Text) cmd.Parameters.Append cmd.CreateParameter("@Hinhthucluutru", adVarChar, adParamInput, 5, DataCombo7.Text) cmd.Parameters.Append cmd.CreateParameter("@Khoa", adVarChar, adParamInput, 9, rs.Fields("So CMT")) End If cmd.Execute rs.Requery Set cmd = Nothing sStatus = "" Call HieuchinhCommandButton(1, 1, 0, 1, 0) End Sub Private Sub cmdHuy_Click() Call LaydulieuvaoTextbox Call HieuchinhCommandButton(1, 1, 0, 1, 0) End Sub Private Sub cmdLast_Click() If rs.RecordCount <= 0 Then Exit Sub rs.MoveLast Call LaydulieuTextbox End Sub Private Sub cmdNext_Click() If rs.RecordCount <= 0 Then Exit Sub rs.MoveNext If rs.EOF Then rs.MoveFirst Call LaydulieuvaoTextbox End Sub Private Sub cmdPrevious_Click() If rs.RecordCount <= 0 Then Exit Sub rs.MovePrevious If rs.BOF Then rs.MoveLast Call LaydulieuvaoTextbox End Sub Private Sub cmdSua_Click() sStatus = "Sua" Call HieuchinhCommandButon(0, 0, 1, 0, 1) End Sub Private Sub cmdThem_Click() Call ClearTextbox sStatus = "Them" Call HieuchinhCommandButton(0, 0, 1, 0, 1) End Sub Private Sub CmdThoat_Click() Unload Me frmMain.Show cnn.Close End Sub Private Sub cmdXoa_Click() If (rs.EOF And rs.BOF) Then Exit Sub If MsgBox("Ban chac chan muon xoa Nhan khau nay?", vbCritical + vbYesNo + vbDefaultButton2, "Chu y") = vbYes Then cnn.Execute ("DELETE from tblNhankhau where SoCMT='" & rs.Fields("So CMT") & "'") rs.Requery End If End If Call LaydulieuvaoTextbox End Sub Private Sub DataGrid1_Click() Call LaydulieuvaoTextbox End Sub Private Sub ClearTextbox() txtHoten.Text = "" txtNgaysinh.Text = "" txtSoCMT.Text = "" DataCombo4.Text = "" DataCombo5.Text = "" DataCombo6.Text = "" DataCombo7.Text = "" txtSoCMT.SetFocus End Sub Private Sub LaydulieuvaoTextbox() DataCombo4.Text = "" & rs.Fields("Ma ho khau") txtHoten.Text = "" & rs.Fields("Ten nhan khau") txtNgaysinh.Text = "" & rs.Fields("Ngay sinh") optNam.Value = IIf(rs.Fields("Gioi tinh") = "Nam", True, False) optNu.Value = Not optNam.Value txtSoCMT.Text = "" & rs.Fields("So CMT") DataCombo5.Text = "" & rs.Fields("Nghe nghiep") DataCombo6.Text = "" & rs.Fields("Trinh do") DataCombo7.Text = "" & rs.Fields("Hinh thuc luu tru") End Sub Private Sub Form_Load() cnn.CursorLocation = adUseClient cnn.Provider = "Microsoft.Jet.Oledb.4.0" cnn.ConnectionString = "Data Source=" & App.Path & "\Data\QLDS.mdb" cnn.Open strSQL = "Select MaHK as [Ma ho khau], TenNhankhau as [Ten nhan khau],Ngaysinh as [Ngay sinh]," _ & "IIf(Gioitinh=0,'Nu','Nam') as [Gioi tinh],SoCMT as [So CMT], Nghenghiep as [Nghe nghiep], Trinhdo as [Trinh do]," _ & "Hinhthucluutru as [Hinh thuc luu tru] from tblNhankhau order by SoCMT" Set rs = cnn.Execute(strSQL) Set DataGrid1.DataSource = rs Set rs4 = cnn.Execute("Select * from tblHokhau") Set DataCombo4.RowSource = rs4 DataCombo4.ListField = "MaHK" If Not (rs4.BOF And rs4.EOF) Then If Not (rs.EOF And rs.BOF) Then DataCombo4.Text = "" & rs.Fields("Ma ho khau") End If End If Set rs5 = cnn.Execute("Select * from tblNghenghiep") Set DataCombo5.RowSource = rs5 DataCombo5.ListField = "MaNN" If Not (rs5.BOF And rs5.EOF) Then If Not (rs.EOF And rs.BOF) Then DataCombo5.Text = "" & rs.Fields("Nghe nghiep") End If End If Set rs6 = cnn.Execute("Select * from tblTrinhdo") Set DataCombo6.RowSource = rs6 DataCombo6.ListField = "MaTD" If Not (rs6.BOF And rs6.EOF) Then If Not (rs.EOF And rs.BOF) Then DataCombo6.Text = "" & rs.Fields("Trinh do") End If End If Set rs7 = cnn.Execute("Select * from tblHinhthucluutru") Set DataCombo7.RowSource = rs7 DataCombo7.ListField = "MaHT" If Not (rs7.BOF And rs7.EOF) Then If Not (rs.EOF And rs.BOF) Then DataCombo7.Text = "" & rs.Fields("Hinh thuc luu tru") End If End If If Not (rs.BOF And rs.EOF) Then Call LaydulieuvaoTextbox End If Call HieuchinhCommandButton(1, 1, 0, 1, 0) End Sub Private Sub Form_Unload(Cancel As Integer) Set DataGrid1.DataSource = Nothing If rsKtra.State = adStateOpen Then rsKtra.Close Set rsKtra = Nothing If rs.State = adStateOpen Then rs.Close Set rs = Nothing End Sub 4. Code form Tìm kiếm nhân khẩu: Option Explicit Dim cnn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim strSQL As String Dim rs1 As New ADODB.Recordset Dim rs2 As New ADODB.Recordset Dim rs3 As New ADODB.Recordset Dim rs4 As New ADODB.Recordset Dim mApp As New CRAXDRT.Application Dim mRpt As New CRAXDRT.Report Private Sub chkHinhthucluutru_Click() dcbHinhthucluutru.Visible = IIf(chkHinhthucluutru.Value = 1, 1, 0) End Sub Private Sub chkHogiadinh_Click() dcbHogiadinh.Visible = IIf(chkHogiadinh.Value = 1, 1, 0) End Sub Private Sub chkHoten_Click() txtHoten.Visible = IIf(chkHoten.Value = 1, 1, 0) End Sub Private Sub chkNgaysinh_Click() txtNgaysinh.Visible = IIf(chkNgaysinh.Value = 1, 1, 0) End Sub Private Sub chkSoCMT_Click() txtSoCMT.Visible = IIf(chkSoCMT.Value = 1, 1, 0) End Sub Private Sub chkNghenghiep_Click() dcbNghenghiep.Visible = IIf(chkNghenghiep.Value = 1, 1, 0) End Sub Private Sub chkTrinhdo_Click() dcbTrinhdo.Visible = IIf(chkTrinhdo.Value = 1, 1, 0) End Sub Private Sub cmdIn_Click() frmIn.Show End Sub Private Sub CmdThoat_Click() Unload Me frmMain.Show cnn.Close End Sub Public Sub SetFormCenter(frm As Form) frm.Left = (Screen.Width - frm.Width) / 2 frm.Top = (Screen.Height - frm.Height) / 2 End Sub Private Sub cmdTim_Click() strSQL = "SELECT tblHokhau.MaHK as [Ma ho khau],tblHokhau.Tenchuho as [Ten chu ho]," _ & "tblNhankhau.TenNhankhau as [Ten nhan khau],tblNhankhau.Ngaysinh as [Ngay sinh]," _ & "IIf(Gioitinh=0,'Nu','Nam') as [Gioi tinh], tblNhankhau.SoCMT as [So CMT]," _ & "tblNghenghiep.Nghenghiep as [Nghe nghiep]," _ & "tblTrinhdo.Trinhdo as [Trinh do]," _ & "tblHinhthucluutru.TenHT as [Hinh thuc luu tru]" _ & "from tblHokhau,tblNhankhau,tblHinhthucluutru,tblNghenghiep,tblTrinhdo " _ & "WHERE tblHokhau.MaHK=tblNhankhau.MaHK " _ & "AND tblNghenghiep.MaNN=tblNhankhau.Nghenghiep " _ & "AND tblTrinhdo.MaTD=tblNhankhau.Trinhdo " _ & "AND tblHinhthucluutru.MaHT=tblNhankhau.Hinhthucluutru" If chkHogiadinh.Value = 1 Then strSQL = strSQL & " AND tblHokhau.MaHK like '%" & dcbHogiadinh.Text & "%'" End If If chkHoten.Value = 1 Then strSQL = strSQL & " AND tblNhankhau.TenNhankhau like '%" & txtHoten.Text & "%'" End If If chkNgaysinh.Value = 1 Then strSQL = strSQL & " AND tblNhankhau.Ngaysinh like '%" & txtNgaysinh.Text & "%'" End If If chkSoCMT.Value = 1 Then strSQL = strSQL & " AND tblNhankhau.SoCMT like '%" & txtSoCMT.Text & "%'" End If If chkNghenghiep.Value = 1 Then strSQL = strSQL & " AND tblNghenghiep.Nghenghiep like '%" & dcbNghenghiep.Text & "%'" End If If chkTrinhdo.Value = 1 Then strSQL = strSQL & " AND tblTrinhdo.Trinhdo like '%" & dcbTrinhdo.Text & "%'" End If If chkHinhthucluutru.Value = 1 Then strSQL = strSQL & " AND tblHinhthucluutru.TenHT like '%" & dcbHinhthucluutru.Text & "%'" End If Set rs = cnn.Execute(strSQL) Set DataGrid1.DataSource = rs End Sub Private Sub Form_Load() Call SetFormCenter(Me) cnn.CursorLoc._.

Các file đính kèm theo tài liệu này:

  • doc26953.doc
Tài liệu liên quan