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 đà
43 trang |
Chia sẻ: huyen82 | Lượt xem: 1917 | Lượt tải: 1
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:
- 26953.doc