MỤC LỤC
Lời nói đầu.3
Chương I: Phát biểu bài toán.4
1. Một số khái niệm.4
a. Kĩ thuật và công nghệ multimedia.4
b. Từ điển multimedia.5
2. Những hệ thống đang sử dụng.6
3. Yêu cầu của hệ thống mới.6
a. Yêu cầu tra cứu.7
b. Yêu cầu dữ liệu.7
c. Yêu cầu bảo mật.7
Chương II: Phân tích hệ thống.8
1. Phân tích dữ liệu.8
2. Phân tích chức năng.10
2.1 Chức năng tổng quát. .10
2.2.1 Chức năng bảo mật. .11
2.2.2 Chức năng cập nhật. .11
2.2.3 Chức năng tra cứu.11
Chương III: Thiết kế hệ thống.14
1. Bảng dữ liệu.15
2. Mô hình quan hệ.16
3. Thiết kế giao diện.17
a. Màn hình chính.17
b. Mật khẩu.18
c. Màn hình cập nhật thông tin.19
d. Màn hình soan thảo các file âm thanh,video.20
e. Giao dien nhập nội dung text.21
f. Giao diên cập nhật file ảnh.22
Kết luận.23
Phụ lục 1.24
Phụ luc 2.30
Tài liệu tham khảo.52
51 trang |
Chia sẻ: lethao | Lượt xem: 1627 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Luận văn Xây dựng từ điển multimedia, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
in hình ảnh, âm thanh, tiếng nói thì đối với người không thạo sử dụng sẽ rất lúng túng trong quá trình cập nhật thông tin cho từ điển.
3. Yêu cầu của hệ thống từ điển multimedia
Yêu cầu chung
Để khắc phục những nhược điểm qua phần đánh giá ở phần trên, chương trình xây dựng từ điển multimedia được xây dựng với các yêu cầu như sau:
Xây dựng phần mềm theo tiêu chuẩn hiện đại đáp ứng những nhu cầu về tra cứu của người sử dụng.
Từ thực tế sử dụng chúng ta thấy rằng ngoài việc tra cứu và tìm kiếm thông tin thì người sử dụng cũng có nhu cầu cập nhật những thông tin mới. Để đáp ứng nhu cầu bức thiết đó chương trìng phải có những công cụ hỗ trợ cho việc cập nhật thông tin một cách dễ dàng hiệu quả.
Chương trình phải được bảo mật về thông tin, có chế độ cảnh báo đối với người dùng lạ.
Yêu cầu về tra cứu
Tra cứu tác phẩm theo từng loại hình văn hoá nghệ thuật:
Âm nhạc
Văn thơ
Phim ảnh
Tranh ảnh
b. Các yêu cầu dữ liệu vào của chương trình
Dữ liệu mà chương trình sử dụng và quản lý rất đa dạng và phân tán cho nên phải đảm bảo một số các yêu cầu:
Các định dạng file phải chính xác tuyệt đối.
Mọi thay đổi về vị trí file dữ liệu đều cần phải cập nhật lại.
c. Các yêu cầu bảo mật hệ thống
Công nghệ bảo mật thông tin của hệ thông phải thuận tiện, chắc chắn tuy nhiên phải tránh gây phiền hà đối với người sử dụng.
Chương II
PHÂN TÍCH HỆ THỐNG
Phân tích dữ liệu hệ thống
Trước hết thiết kế dữ liệu là phải tạo ra một cơ sở dữ liệu lưu trữ thông tin của các đối tượng quản lý như ấn phẩm, tác giả, thể loại... sao cho thông tin không bị lưu trữ dư thừa về mặt logic (không bị trùng lặp) và khi cần có thể truy xuất thông tin theo yêu cầu cho trước. Có nhiều cách thiết kế cơ sở dữ liệu ý niệm, tuy nhiên thông dụng và hữu hiệu nhất là sơ đồ thực thể quan hệ. Mục tiêu của phần này là phải xây dựng được sơ đồ quan hệ thực thể các ấn phẩm văn hoá.Cho phép biểu diễn các thông tin về những mối quan hệ quan trọng giữa chúng. Mô hình dữ liệu làm nền tảng cho việc thiết kế cơ sở dữ liệu trên máy tính.
Định nghĩa những vùng dữ liệu chính xuất hiện trong bài toán, đối với việc quản lý các ấn phẩm văn hoá trong giới hạn của bài luận văn này tôi chỉ đề cập đến hệ thống dữ liệu tra cứu và cập nhật thông tin cho các ấn phẩm.
Nghiên cứu trong trường hợp quản lý các ấn phẩm chúng ta thấy rằng những thực thể cần nghiên cứu như :
Tác giả
Tác phẩm
Thể loại
Nội dung tác phẩm
Giữa các đối tượng này có mối quan hệ như sau:
Một tác phẩm chỉ có duy nhất một tác giả ngược lại một tác giả lại có thể có nhiều tác phẩm, chúng có quan hệ một - nhiều.
Mỗi thể loại cũng có nhiều tác phẩm nhưng mỗi tác phẩm chỉ được xếp vào một thể loại mà thôi, chúng có quan hệ một - nhiều.
Giữa tác phẩm và nội dung có mối quan hệ nhiều - nhiều có nghĩa là một ấn phẩm có thể có nhiều nội dung khác nhau ngược lại một nội dung lại có thể xuất hiện ở nhiều ấn phẩm (ví dụ như một đĩa CD âm nhạc có thể có nhiều bài hát và một bài hát lại có thể xuất hiện ở nhiều đĩa CD khác nhau)
Chúng ta có hình thể hiện sau đây:
Đối với mỗi thực thể ta có những thuộc tính như sau:
Tác giả
Tên tác giả (*)
Thể loại
Thông tin tác giả
Tác phẩm
STT (*)
Tên tác phẩm
Thể loại
Tác giả
Năm xuất bản
Nhà xuất bản
Nội dung tác phẩm
Thể loại
Thể loại (*)
Loại hinh
Nội dung
Nội dung
Loại hình (loại hình của nội dung)
Đường dẫn (đường dẫn tới file chứa nội dung)
Phân tích các chức năng của hệ thống
Qua khảo sát các yêu cầu đối với hệ thống từ điển ấn phẩm, phần này chúng ta tiếp tục phân tích cấu trúc logic của hệ thống. Qua đó có thể nhận biết được mối quan hệ trong hệ thống, làm tiền đề cho các bước tiếp theo.
Cách tiếp cân bài toán ở đây là ta đi từ chức năng tổng quát, phân tích thành các chức năng nhỏ hơn.
Chức năng tổng quát
Đối với một hệ thống từ điển nói chung bao gồm các chức năng như sau:
Chức năng bảo mật và an toàn hệ thống
Chức năng tra cứu
Chức năng cập nhật thông tin
Các chức năng
Chức năng bảo mật hệ thống:
Đối với một ứng dụng liên quan đến cơ sở dữ liệu luôn đòi hỏi thông tin mà nó quản lý phải được bảo vệ chắc chắn. Có hai loại nguy cơ dẫn đến hư hỏng , mất mát thông tin là: nguy cơ từ các sự cố kĩ thuật như hỏng hóc về phần cứng, bộ phận lưu giữ thông tin(đĩa cứng, đĩa mềm ), các nguy cơ làm sai lạc thông tin từ những ý đồ xấu, từ sự sử dụng sai quy định hay thiếu hiểu biết. Đây là những nguy cơ không thể tránh khỏi đối với mọi hệ thông tin.
Việc hạn chế tới mức tối đa thiệt hại do nguy cơ sự cố kĩ thuật được gọi là công tác an toàn thông tin của ứng dụng. Công việc phòng chống nguy cơ phá hoại, ăn cắp hoặc làm hỏng thông tin do sử dụng sai mục đích được gọi là công tác bảo mật.
Để đảm bảo an toàn dữ liệu của hệ thống, trong sơ sở dữ liệu phải có cơ chế sao lưu định kì ra các công cụ lưu trữ và bảo quản nơi an toàn.
Để thực hiện bảo mật dữ liệu chương trình phải tạo lập các kiểm soát đối với người dùng, trong đó có phân biệt rõ ràng đối với người sử dụng. Các thông tin về người dùng sẽ được lưu trữ có hệ thống trong cơ sở dữ liệu đặc trưng.
Chức năng cập nhật thông tin.
Làm nhiệm vụ cập nhật các dữ liệu đầu vào của chương trình. Do tính chất dữ liệu của hệ thống, chức năng này đòi hỏi người thực hiện phải có tinh thần trách nhiệm cao và có nghiệp vụ theo yêu cầu công việc. Nhìn từ phía phân tích hệ thống, chúng ta thấy nổi lên các vấn đề như sau:
Trùng lặp về tên gọi của dữ liệu dẫn đến nhầm lẫn trong tìm kiếm và tra cứu thông tin.
Dữ liệu của chương trình là các file nằm rải rác trên thiết bị lưu trữ (ổ cứng) cho nên không thể đảm bảo được việc mất mát thông tin sẽ không sảy ra.
Do sự đa dạng và phong phú của dữ liệu hệ thống, chỉ mốt sai sót nhỏ cũng dẫn đến một khả năng là chương trình không nhận biết được về nhận dạng tập tin và sẽ hiển thị thông tin sai về mặt nội dung.
Đối với các vấn đề trên chúng ta có cách giải quyết như sau:
Xử lý trùng lặp về tên gọi của thông tin, xét về khía cạnh các ấn phẩm như ở phần phân tích dữ liệu chúng ta biết rằng một tác phẩm chỉ có một tác giả ngược lại một tác giả lại có nhiều tác phẩm vậy thì với khoá tìm kiếm gồm hai thuộc tính là tác giả và tác phẩm ta có thể xác định được chính xác một ấn phẩm như mong muốn. Vậy thì việc cập nhật thông tin cho một ấn phẩm nhất thiết phải đầy đủ hai thông tin là tên tác phẩm và tên tác giả.
Xử lý về việc thông tin nằm phân tán trên các thiết bị lưu trữ, một giải pháp được đưa ra là sao lưu toàn bộ dữ liệu của chương trình vào một nơi quy định mà độ an toàn thông tin cao hơn (như đĩa CDROM hay băng từ) đề phòng trường hợp mất mát thông tin thì chương trình sẽ tìm trên các thiết bị lưu trữ và khôi phục lại dữ liệu đã bị mất. Việc này tỏ ra rất hữu ích tuy nhiên nó cũng có hạn chế là nó sẽ chiếm nhiều tài nguyên của hệ thống.
Về sự đa dạng của thông tin cho nên phải có cơ chế kiểm tra nghiêm ngặt các thông tin đầu vào. Thứ hai phải phân loại thông tin theo các chủng loại sau:
Hình ảnh(picture)
Âm thanh (audio)
Văn bản (text)
Hình ảnh động (video)
Khi cập nhật các thông tin này ta có cơ chế lọc thông tin cho từng chủng loại trên và cho phép người sử dụng có thể được xem thông tin trước khi nó được đưa vào cơ sở dữ liệu để quản lý. Điều này đảm bảo cho thông tin đầu vào luôn luôn đúng đắn về mặt nội dung cũng như cho logic của hệ thống .
2.2.3 Chức năng tra cứu thông tin.
Đây là chức năng đáp ứng những yêu cầu về tra cứu thông tin của người sử dụng. Do tính chất cũng như nhu cầu của bài toán chức năng này phải đáp ứng những yêu cầu cụ thể sau:
Có thể tra cứu các tác phẩm của một tác giả
Có thể tra cứu các tác phẩm của một trong một giai đoạn (theo năm xuất bản).
Liệt kê các tác phẩm của một nhà xuất bản đã từng ấn hành.
Có thể truy xuất nội dung của một tác phẩm theo từng loại hình khác nhau có thể là một bức tranh, một đoạn truyện ngắn một bản nhạc hay một bộ phim.
Tất cả những điều đó nằm trong chức năng tra cứu. Thao tac của chức năng này là truy xuất các thông tin của một ấn phẩm trong cơ sở dữ liệu sau đó thể hiện lên trên biểu mẫu.
Chương III
THIẾT KẾ CHƯƠNG TRÌNH TỪ ĐIỂN
SƠ ĐỒ THUẬT TOÁN CỦA CHƯƠNG TRÌNH
1. Thiết kế các bảng cơ sở dữ liệu
Bảng là một đối tượng được định nghĩa và dùng để lưu giữ liệu mỗi bảng lưu giữ các thông tin về một chủ thể nhất định. Trên cơ sở phân tích dữ liệu ở trên ta thiết kế các bảng để lưu trữ dữ liệu trong chương trình như sau:
* Dữ liệu đầu vào
Bảng tacpham
Tên
Kiểu
Độ rộng
Khoá
ý nghĩa
Tentacpham
Text
30
Tên tác phẩm
stt
Integer
4
*
Mã tác phẩm
tacgia
Text
30
Tên tác giả
theloai
Text
4
Tên thể loại
Noidung
Integer
4
Nội dung
Namsangtac
Integer
4
Năm sáng tác
Nhaxuatban
Text
50
Nhà xuất bản
* Dữ liệu trích rút
ảng tacgia
Tên
Kiểu
Độ rộng
Khoá
ý nghĩa
Tentacgia
Text
30
*
Tên tác giả
Theloai
Integer
4
Thể loại
Ghichu
Text
50
Ghi chú
Bảng tepnoidung
Tên
Kiểu
Độ rộng
Khoá
ý nghĩa
Noidung
integer
4
*
Mã tệp nội dung
Tentep
Text
30
Tên tệp
Duongdan
Text
50
Đường dẫn
Loaihinh
text
6
Định dạng tệp
Bảng theloai
Tên
Kiểu
Độ rộng
Khoá
ý nghĩa
Tentheloai
Text
30
*
Tên thể loại
Loaihnh
Text
30
Loại hình
Ghichu
Text
50
Ghi chú
e. Bảng mật khẩu
Tên
Kiểu
Độ rộng
Khoá
ý nghĩa
TenNguoiSuDung
Text
30
Tên Người Sử Dụng
Matkhau
Text
8
Mật khẩu
2. Mô hình quan hệ cơ sở dữ liệu trong thiết kế
2.2.2 Thiết kế giao diện chương trình
a. Màn hình chính
b. Màn hình khai báo mật khẩu
c. Màn hình cập nhật thông tin
d. Các màn hình soạn thảo thông tin là các file âm thanh và phim
e. Giao dien nhập nội dung text
f. Giao diện nhập file ảnh
KẾT LUẬN
Qua thời gian thực tập và làm đồ án tốt nghiệp em đã nhận được sự chỉ bảo và giúp đỡ tận tình của thầy giáo hướng dẫn, với kiến thức thu được ở trường, cùng với sự cố gắng của bản thân em đã hoàn thành bản luận văn này. Theo đánh giá của bản thân em đã làm được các vẫn đề sau:
Hoàn thành giai đoạn khảo sát và xác định mục tiêu của hệ thống từ điển.
Phân tích hệ thống, xây dựng mô hình chức năng và mô hình dữ liệu .
Tiến hành thết kế và cài đặt thử nghiệm chương trình.
Tuy nhiên với thời gian và kinh nghiệm thực tế chưa nhiều nên trong bản đồ án còn nhiều thiếu sót. Một lần nữa em rất mong nhận được sự chỉ bảo của các thầy giáo để khắc phục những thiếu sót đó.
Phụ lục I
GIỚI THIỆU VỀ VISUAL BASIC VÀ NGÔN NGỮ SQL
1. Visual Basic 5.0
Visual Basic đã trải qua một chặng đường dài từ khi ra đời vào đầu những năm 90. Là công cụ RAD(Rapid Application Development Phát triển ứng dụng nhanh), Visual Basic giúp cho quá trình phát triển các ứng dụng dưới môi trường Windows trở lên dễ dàng và hiệu quả.
Phiên bản Visual Basic 5.0 có rất nhiều cải tiến, nhưng nổi bật nhất là khả năng biên dịch các ứng dụng thành mã bẩm sinh và khả năng tạo các thành phần ActiveX. Với nhiều tính năng mới, Visual Basic 5.0 đã trở thành một ngôn ngữ phát triển hệ khách/chủ đa dạng và toàn diện nhất trong giới tin học hiện nay.
Tính năng biên dịch các ứng dụng thành mã bẩm sinh đã được công nhận là nhanh hơn 20% so với mã P trong phiên bản 4.0. Có rất nhiều Control mới được bổ sung vào phiên bản Visual Basic 5.0 Enterprise Edition. Khả năng tạo ra các lớp làm cho Visual Basic 5.0 trở thành một ngôn ngữ định hướng đối tượng thực sự.
Visual Basic là một môi trường mở. Nó có thể hỗ trợ Client/Server, Architecture, ActiveX,Component Object Model (COM), Distributed Component Object Model (DOM), Open Database Connectivity(ODBC)...
Với bộ công cụ mạnh, Visual Basic 5.0 có thể can thiệp khá sâu vào hệ thống, tạo ra các Control phục vụ trong các ứng dụng, hoặc cung cấp cho các nhà phát triển khác. Khả năng liên kết nhúng trong môi trường Windows là một thế mạnh của Visual Basic nói chung và Visual Basic 5.0 nói riêng. Nó có thể truy nhập được các chương trình khác như Microsoft Exel, Microsoft Word ...
Bất chấp nhiều phê phán trong giai đoạn đầu, Visual Basic đã được thừa nhận trong giới tin học như là một ngôn ngữ thích ứng tốt trong việc phát triển các ứng dụng các ứng dụng. Visual Basic 5.0 được tích hợp các tính năng hỗ trợ Internet và Windows có thể cạnh tranh với các ngôn ngữ lập trình mạnh nhất hiện nay như C hay Java.
II. Ngôn ngữ SQL
SQL (Structured Query Language ) là ngôn ngữ để thao tác trên cơ sở dữ liệu chuẩn. Ngôn ngữ này cho phép thao tác trên hầu hết các hệ thống quản trị cơ sở dữ liệu chính như SQL Server, Access, Sybase, Oracle, SQL Base...
Với Visual Basic, SQL có ý nghĩa quan trọng đặc biệt vì nó là kết nối chính trong giao tiếp giữa Visual Basic với Jet Database Engine. Nó là nền tảng để nhà sản xuất cơ sở dữ liệu quyết định cách thức điều khiển và vận hành cơ sở dữ liệu, cách thức lưu trữ dữ liệu, cách dùng các cú pháp và cách xử lý.
Không giống Visual Basic 5.0, SQL là một chuẩn được phát triển bởi American National Standards Institute (ANSI). SQL là ngôn ngữ hướng văn bản thuộc loại ngôn ngữ thế hệ thứ tư. Các ngôn ngữ thế hệ thứ tư là các ngôn ngữ phi thủ tục vì các câu lệnh sẽ cho hệ quản trị cơ sở dữ liệu biết bạn muốn làm gì chứ không càn chỉ ra làm như thế nào. SQL có thể được gửi tới một Database Engine bằng nhiều biện pháp khác nhau. Database Engine lại có một kiểu công cụ tương tác nhất định để gửi đến các điều lệnh SQL nhằm đạt một kết quả nào đó. Đôi lúc điều này được xem là ISQL (Interactive Structured Query Language-Ngôn ngữ hỏi có cấu trúc tương tác). SQL rất mạnh nhưng súc tích, chỉ có 30 lệnh với 4 lệnh cơ bản:
SELECT
UPDATE
DELETE
INSERT
Các loại truy vấn
1. Truy vấn chọn SELECT
Đây là một trong những truy vấn quan trọng và được sử dụng nhiều nhất. Truy vấn này dùng để chọn ra các trường trên cùng một bảng hoặc trên nhiều bảng khác nhau với các điều kiện định trước.
Cú pháp chung:
SELECT (field list) FROM (table name [IN (database) ])
[WHERE (search conditions)]
[GROUP BY (field list)]
[ HAVING (search conditions)]
[ORDER BY (field list)] [WITH (owwner access options)]
Mỗi câu lệnh SELECT phải có ít nhất mệnh đề SELECT và FROM. Các mệnh đề khác là tuỳ chọn.Trật tự các mệnh đề là cố định, mệnh đề HAVING chỉ có khi có mệnh đề GROUP BY. Để thực hiện truy vấn chọn có một loạt các mệnh đề khác kèm theo, cụ thể là:
FROM: là mệnh đề dùng để chỉ ra tên của bảng trong cơ sở dữ liệu
IN: là một phần của mệnh đề FROM dùng để chỉ ra bảng nằm trong một cơ sở dữ liệu khác có thể gắn với truy vấn.
WHERE: là mệnh đề quan trọng nhất của truy vấn chọn. Nó cho phép chỉ ra bộ điều kiện cho bộ kết quả. Trong truy vấn nếu ta không sử dụng mệnh đề WHERE thì kết quả nhận được sẽ là các bản ghi được chỉ ra trong trường SELECT.
Toán hạng
Mô tả
=
Bằng
>
Lớn hơn
<
Nhỏ hơn
<=
Nhỏ hơn hoặc bằng
>=
Lớn hơn hoặc bằng
Khác
GROUP BY: là mệnh đề không bắt buộc, dùng để sắp xếp các bản ghi với giá trị đồng nhất trong danh sách các trường vào một bản ghi đơn lẻ.
HAVING: là mệnh đề dùng để thay đổi bộ bản ghi có sẵn. Sau khi mệnh đề GROUP BY được sử dụng với thời gian tìm kiếm điều kiện HAVING được sử dụng tương tự như mệnh đề WHERE.
ORDER BY: là mệnh đề dùng để sắp xếp các bản ghi đã trả về sau khi truy vấn. Có ít nhất một trường phải được sử dụng làm khoá sắp xếp, với thứ tự tăng dần hoặc giảm dần (ngầm định là tăng dần).
2.Truy vấn INSERT
Truy vấn này thêm bản ghi vào bảng
Cú pháp chung:
INSERT [INTO] (table) [column list]
[VALUES {{insert values}] [SQL select statement]
Trong đó:
Table là tên bảng để thêm bản ghi
Column list là một bảng kê các cột có dữ liệu được chèn, được tách biệt bằng dấu phẩy(,).
Insert values là danh sach các giá trị được chèn vào các cột trong column list. Số lượng các giá trị trong insert values phải giống như trong column list.
SQL select statement là một cách khác để chèn các giá trị vào một bảng. Có thể lựa các giá trị của một bảng khác để chèn. Trong trường hợp này không được dùng từ kháo VALUES. Chú ý số lượng cột trả về trong điều kiện SQL cũng giống với con số trong danh sách column list.
Microsoft yêu cầu phải có từ khoá INTO trong khi SQL không yêu cầu điều đó. Đây là loại truy vấn thường dùng để truyền dữ liệu vào bảng dữ liệu chính.
3. Truy vấn cập nhật UPDATE
Trong một số trường hợp, ta cần phải thực hiện cập nhật hàng loạt các giá trị mới cho các trường. Truy vấn cập nhật sẽ giúp thực hiện công việc này, ta phải chỉ rõ các bản ghi cập nhật bằng cách sử dụng mệnh đề WHERE. Truy vấn cập nhật sẽ không có kết quả trả về. Nếu cần biết có bao nhiêu bản ghi được cập nhật thành công bằng truy vấn này thì sau khi thực hiện xong phải thực hiện truy vấn chọn với các điều kiện như trong truy vấn cập nhật.
Cú pháp chung:
UPDATE (table)
SET (assignment list)
[WHERE (search conditions)]
Trong đó:
Table là tên bảng cập nhật
Assignment list là danh sách mọi chi tiết cập nhật sẽ diễn ra.
Search conditions là các biểu thức SQL hợp lệ để giới hạn số lượng cập nhật.
4. Truy vấn xoá DELETE
Truy vấn này dùng để xóa các bản ghi từ một hay nhiều bảng. Các bản ghi được xóa phải thỏa mãn điều kiện trong mệnh đề WHERE. Đây là một truy vấn rất có ích, cho phép thực hiện xóa cùng một lúc nhiều bản ghi trong cơ sở dữ liệu thỏa mãn điều kiện nhất định. Trong truy vấn, khi xóa trên nhiều bảng và một trong các bảng đó chứa khóa chính thì truy vấn sẽ mắc lỗi.
Cú pháp chung:
DELETE
FROM (table)
[WHERE (search conditions)]
Trong đó:
Table là tên bảng để xóa.
Search conditions là các biểu thức SQL hợp lệ để giới hạn số lượng bản ghi bị xóa.
Phụ lục II
CHƯƠNG TRÌNH NGUỒN
VB.Form frmmain
Dim anpham As String
Dim db As Database
Dim login As Boolean
Dim dkloc As String
Dim rs As Recordset
Dim tacgia As String
Dim datra As Boolean
Dim change As Boolean
Sub listrefresh()
ListTracuu.Clear
For i = 0 To Listtemp.ListCount - 1
ListTracuu.AddItem Listtemp.List(i)
Next
End Sub
Sub loaddata(v As String)
If v "" Then
DataTracuu.RecordSource = "select * from tacpham where " & v & " and tentacpham not like '*_'"
Else
DataTracuu.RecordSource = "select * from tacpham where tentacpham not like '*_'"
End If
DataTracuu.Refresh
Call ShowList
End Sub
Sub ShowList()
ListTracuu.Clear
Listtemp.Clear
With DataTracuu.Recordset
If .RecordCount 0 Then
.MoveFirst
Do Until .EOF
If .Fields(0).Value "" Then
Listtemp.AddItem .Fields(0).Value & " - " & .Fields(2).Value
ListTracuu.AddItem .Fields(0).Value & " - " & .Fields(2).Value
End If
.MoveNext
Loop
End If
End With
End Sub
Sub ShowTracuu(anpham As String, tacgia As String)
DataTracuu.Recordset.FindFirst ("tentacpham='" & anpham & "' and tacgia='" & tacgia & "'")
Dim db As Database
Dim rs As Recordset
Set db = OpenDatabase(DataTracuu.DatabaseName)
Set rs = db.OpenRecordset("select * from noidung where matacpham=" & DataTracuu.Recordset.Fields("noidung").Value)
Dim item As ListItem
Listnoidung.ListItems.Clear
If rs.RecordCount 0 Then
rs.MoveFirst
Do Until rs.EOF
Set item = Listnoidung.ListItems.Add(, , rs.Fields(2).Value)
Select Case rs.Fields(1).Value
Case "img"
item.Icon = 1
Case "audio"
item.Icon = 2
Case "video"
item.Icon = 3
Case "text"
item.Icon = 4
End Select
rs.MoveNext
Loop
End If
End Sub
Private Sub cmdtracuu_Click(Index As Integer)
Select Case Index
Case 0
Call ListTracuu_DblClick
If Not datra Then
Call listrefresh
datra = True
End If
Case 1
If Listdatra.ListCount 0 Then
If Listdatra.ListIndex = Listdatra.ListCount - 1 Then
Listdatra.ListIndex = 0
Else
Listdatra.ListIndex = Listdatra.ListIndex + 1
End If
For i = 0 To ListTracuu.ListCount - 1
If ListTracuu.List(i) = Listdatra.Text Then
ListTracuu.ListIndex = i
Exit For
End If
Next
Call ListTracuu_DblClick
End If
Case 2
If Listdatra.ListCount 0 Then
ListTracuu.Clear
For i = 0 To Listdatra.ListCount - 1
ListTracuu.AddItem Listdatra.List(i)
Next
datra = False
End If
Case 3
If login Then
If ListTracuu.Text "" Then
DataTracuu.Recordset.Edit
DataTracuu.Recordset.Fields(0).Value = DataTracuu.Recordset.Fields(0).Value & "_"
DataTracuu.Recordset.Update
Call loaddata("")
If Listdatra.ListCount 0 Then
For i = 0 To Listdatra.ListCount - 1
If Listdatra.List(i) = v Then
Listdatra.RemoveItem (i)
Exit For
End If
Next
End If
End If
End If
End Select
End Sub
Private Sub cmdtracuu_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
cmdtracuu(Index).BorderStyle = 1
End Sub
Private Sub Command1_Click(Index As Integer)
Select Case Index
Case 0
i = 0
While Listdaxoa.ListCount > i
If Listdaxoa.Selected(i) = True Then
change = True
db.Execute "update tacpham set tentacpham='" & Left(Listdaxoa.List(i), Len(Listdaxoa.List(i)) - 1) & "' where tentacpham='" & Listdaxoa.List(i) & "'"
Listdaxoa.RemoveItem i
Else
i = i + 1
End If
Wend
Case 1
i = 0
While Listdaxoa.ListCount > i
If Listdaxoa.Selected(i) = True Then
db.Execute "delete * from tacpham where tentacpham='" & Listdaxoa.List(i) & "'"
change = True
Listdaxoa.RemoveItem i
Else
i = i + 1
End If
Wend
Case 2
Picture2.Enabled = True
PicXoa.Visible = False
If change Then
Call loaddata("")
End If
End Select
End Sub
Private Sub Form_Load()
pathdata = "c:\vb5\newtd\an pham.mdb"
DataTracuu.DatabaseName = pathdata
Set db = OpenDatabase(DataTracuu.DatabaseName)
login = False
Call loaddata("")
End Sub
Sub adddatra(v As String)
For i = 0 To Listdatra.ListCount - 1
If Listdatra.List(i) = v Then
Exit Sub
End If
Next
Listdatra.AddItem v
End Sub
Private Sub Image4_Click(Index As Integer)
If Index = 0 Then
dkloc = ""
If Cmbtacgia.Text "" Then
dkloc = dkloc & " tacgia='" & Cmbtacgia.Text & "' "
End If
If Cmbnamsangtac.Text "" Then
If dkloc "" Then
dkloc = dkloc & " and "
End If
dkloc = dkloc & " namxuatban=" & Cmbnamsangtac.Text
End If
If cmbNXB.Text "" Then
If dkloc "" Then
dkloc = dkloc & " and "
End If
dkloc = dkloc & " nhaxuatban='" & cmbNXB.Text & "' "
End If
Call loaddata(dkloc)
End If
Pickhoatracuu.Visible = False
Picture2.Enabled = True
End Sub
Private Sub lblkhoatracuu_Click()
Pickhoatracuu.Top = 1500
Pickhoatracuu.Left = 2000
Pickhoatracuu.Visible = True
Picture2.Enabled = False
Set rs = db.OpenRecordset("select distinct tacgia from tacpham")
If rs.RecordCount 0 Then
Cmbtacgia.Clear
rs.MoveFirst
Do Until rs.EOF
Cmbtacgia.AddItem rs.Fields(0).Value
rs.MoveNext
Loop
End If
Set rs = db.OpenRecordset("select distinct nhaxuatban from tacpham")
If rs.RecordCount 0 Then
rs.MoveFirst
cmbNXB.Clear
Do Until rs.EOF
cmbNXB.AddItem rs.Fields(0).Value
rs.MoveNext
Loop
End If
Set rs = db.OpenRecordset("select distinct namxuatban from tacpham")
If rs.RecordCount 0 Then
Cmbnamsangtac.Clear
rs.MoveFirst
Do Until rs.EOF
Cmbnamsangtac.AddItem rs.Fields(0).Value
rs.MoveNext
Loop
End If
Cmbtacgia.AddItem ""
cmbNXB.AddItem ""
Cmbnamsangtac.AddItem ""
End Sub
Private Sub ListNoidung_ItemClick(ByVal item As ComctlLib.ListItem)
Dim Filename As String
Filename = item.Text
Select Case item.Icon
Case 1
Case 2
mp.Visible = True
mp.Filename = Filename
mp.Play
Case 3
End Select
End Sub
Private Sub ListTracuu_DblClick()
Call adddatra(ListTracuu.Text)
ShowTracuu anpham, tacgia
End Sub
Private Sub ListTracuu_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
t = InStr(ListTracuu.Text, "-")
If t 0 Then
tacgia = Right(ListTracuu.Text, Len(ListTracuu.Text)-t - 1)
anpham = Left(ListTracuu.Text, t - 1)
DataTracuu.Recordset.FindFirst
("tentacpham='" & anpham & "' and tacgia='" & tacgia & "'")
txtTracuu.Text = anpham
End If
End Sub
Private Sub mnuCapnhat_Click()
frmTacpham.Show (1)
End Sub
Private Sub mnuCapnhat_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
mnuCapnhat.BorderStyle = 1
End Sub
Private Sub mnuDaxoa_Click()
change = False
Listdaxoa.Clear
Set rs = db.OpenRecordset
("select * from tacpham where tentacpham like '*_'")
If rs.RecordCount 0 Then
rs.MoveFirst
Do Until rs.EOF
Listdaxoa.AddItem rs.Fields(0).Value
rs.MoveNext
Loop
End If
Picture2.Enabled = False
PicXoa.Top = 1500
PicXoa.Left = 2200
PicXoa.Visible = True
End Sub
Private Sub mnuDaxoa_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
mnuDaxoa.BorderStyle = 1
End Sub
Private Sub mnuGTCT_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
mnuGTCT.BorderStyle = 1
End Sub
Private Sub mnumatkhau_Click()
frmLogin.Show (1)
login = frmLogin.ok
End Sub
Private Sub mnumatkhau_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
mnumatkhau.BorderStyle = 1
End Sub
Private Sub mnuTracuu_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
mnuTracuu.BorderStyle = 1
End Sub
Private Sub mp_EndOfStream(ByVal Result As Long)
mp.Visible = False
End Sub
Private Sub Picture2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
For i = 0 To 3
cmdtracuu(i).BorderStyle = 0
Next
mnuTracuu.BorderStyle = 0
mnuCapnhat.BorderStyle = 0
mnumatkhau.BorderStyle = 0
mnuDaxoa.BorderStyle = 0
mnuGTCT.BorderStyle = 0
End Sub
Private Sub txtTracuu_Change()
For i = 0 To ListTracuu.ListCount - 1
If Left(Li
Các file đính kèm theo tài liệu này:
- Xây dựng từ điển multimedia.doc