Luận văn Xây dựng từ điển multimedia

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

 

doc51 trang | Chia sẻ: lethao | Lượt xem: 1544 | Lượt tải: 3download
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:

  • docXây dựng từ điển multimedia.doc