Tài liệu Luận văn Xây dựng từ điển MultiMedia: Bộ Giáo Dục và Đào tạo
Trường Đại học Dân lập Đông Đô
Khoa Công Nghệ Thông Tin
luận văn tốt nghiệp
Chuyên ngành: Công nghệ thông tin
Giáo viên hướng dẫn: TS. Nguyễn Văn Xuất
Giáo viên phản biện: TS. Đào Thanh Tĩnh
Sinh viên: Nguyễn Quang Hưng - C2 – CNTT
Hà Nội 2000
Mục lục
Lời nói đầu....................................................................................................3
Chương I: Phát biểu bài toán.........................................................................4
Một số khái niệm...........................................................................4
Kĩ thuật và công nghệ multimedia............................................4
Từ điển multimedia...................................................................5
Những hệ thống đang sử dụng.......................................................6
Yêu cầu của hệ thống mới.............................................................6
Yêu cầu tra cứu...................................................
51 trang |
Chia sẻ: hunglv | Lượt xem: 1131 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Luận văn Xây dựng từ điển MultiMedia, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Bộ Giáo Dục và Đào tạo
Trường Đại học Dân lập Đông Đô
Khoa Công Nghệ Thông Tin
luận văn tốt nghiệp
Chuyên ngành: Công nghệ thông tin
Giáo viên hướng dẫn: TS. Nguyễn Văn Xuất
Giáo viên phản biện: TS. Đào Thanh Tĩnh
Sinh viên: Nguyễn Quang Hưng - C2 – CNTT
Hà Nội 2000
Mục lục
Lời nói đầu....................................................................................................3
Chương I: Phát biểu bài toán.........................................................................4
Một số khái niệm...........................................................................4
Kĩ thuật và công nghệ multimedia............................................4
Từ điển multimedia...................................................................5
Những hệ thống đang sử dụng.......................................................6
Yêu cầu của hệ thống mới.............................................................6
Yêu cầu tra cứu.........................................................................7
Yêu cầu dữ liệu.........................................................................7
Yêu cầu bảo mật.......................................................................7
Chương II: Phân tích hệ thống............................................................8
Phân tích dữ liệu............................................................................8
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
Chức năng cập nhật........................ .......................................11
Chức năng tra cứu....................................................................11
Chương III: Thiết kế hệ thống...........................................................14
Bảng dữ liệu.................................................................................15
Mô hình quan hệ..........................................................................16
Thiết kế giao diện.........................................................................17
Màn hình chính.......................................................................17
Mật khẩu.................................................................................18
Màn hình cập nhật thông tin...................................................19
Màn hình soan thảo các file âm thanh,video..........................20
Giao dien nhập nội dung text..................................................21
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
Lời nói đầu
Ngày nay, không ai có thể phủ nhận vai trò của tin học trong mọi lĩnh vực khoa học kĩ thuật đời sống xã hội. Tin học được ứng dụng nhiều trong các công tác quản lí, phục vụ vui chơi giải trí, nghiên cứu khoa học và đặc biệt là tin học được ứng dụng khá nhiều trong kĩ thuật từ điển.
Với khả năng lưu trữ lớn máy tính đã thay thế hoàn toàn những cuốn từ điển đồ sộ, hơn thế nữa với tốc độ tìm kiếm rất nhanh, chính sác máy tính đã trở thành một công cụ đắc lực giúp đỡ con người trong việc tra cứu và tìm kiếm thông tin đạt hiệu cao. Hiện nay, sự phát triển mạnh mẽ của công nghệ multimedia đã cung cấp một diện mạo mới cho từ điển. Với sự kết hợp đa dạng của âm thanh hình ảnh đã cung cấp cho người sử dụng nhiều thông tin hơn mở ra một hướng hoàn toàn mới trong việc tra cứu cung như trong thiết kế từ điển.
“Xây dựng từ điển multimedia” là một đề tài mới mẻ bắt kịp sự phát triển của công nghệ thông tin nó cũng đáp ứng được nhu cầu ngày càng cao của xã hội. Mục tiêu của đề tài này là thiết kế một bộ công cụ để xây dựng dữ liệu cho từ điển có chủ đề về văn hoá với các dạng dữ liệu như hình ảnh (hội họa), phim video (sân khấu điện ảnh) nội dung bằng chữ (văn học thơ ca) và âm thanh (âm nhạc).
Mặc dù có nhiều cố gắng nhưng do hạn chế về thời gian cũng như kinh nghiệm nên bản luận văn này chắc chắn còn nhiều thiếu sót. Em rất mong được sự góp ý kiến của các thầy và bè bạn để chương trình này được hoàn thiện hơn.
Em xin chân thành cảm ơn thầy giáo Nguyễn Văn Xuất và các thầy giáo trong khoa Công Nghệ Thông Tin Trường Đại học Dân Lập Đông Đô đã hướng dẫn tận tình và tạo điều kiện cho em hoàn thành đề tài này.
Hà nội ngày 30 tháng 05 năm 2000
Sinh viên
Nguyễn Quang Hưng
Chương I
Phát Biểu bài toán
Một số khái niệm
a. Kỹ thuật và công nghệ Multimedia.
Để hiểu thêm chi tiết về mô hình hệ thống multimedia ta đi sâu vào tìm hiểu các dạng file multimedia. Các ưu điểm, nhược điểm cũng như các ứng dụng của các dạng file dữ liệu. Từ đó đưa ra cách sử dụng thích hợp nhất.
Các dạng file dữ liệu multimedia.
Trong multimedia có các dạng dữ liệu lưu trữ trong máy tính như sau :
Văn bản (text).
Âm thanh (sound, void) Đối với dữ liệu dạng âm thanh có một số chuẩn để lưu trữ dữ liệu này. Phổ biến nhất hiện nay theo Microsoft đưa ra, theo chuẩn này, dữ liệu âm thanh phục vụ cho multimedia được cất giữ ở các file có phần mở rộng *.WAV và *.MID.Các file dạng *.WAV dùng để chứa dữ liệu âm thanh nói chung và không yêu cầu chất lượng cao. Các file MIDI.MID dùng chứa dữ liệu âm thanh đòi hỏi chất lượng cao thường là âm thanh có giai điệu (audio) như các bản hạc, bài hát, nhạc cụ ghi ta, piano.Các file dạng WAV ghi laị chính bản thân âm thanh còn các file dạng MIDI chỉ ghi lại các câu lệnh. Các câu lệnh này dùng để “nói chuyện” hay ra lệnh cho các thiết bị MIDI phát ra âm thanh. Mỗi câu lệnh trong file MIDI bao gồm các thông tin sau : nốt nhạc, loại nhạc cụ, nhịp điệu và một vài đặc trưng âm nhạc khác.Yêu cầu về phần cứng.
Máy tính PC tương thích IBM 8 MR trở lên và chạy Windows 95.
Microphone hoặc Recorder hay Cassette.
Sound card.
Âm điệu (audio)
Hình ảnh (image) Các file dữ liệu ảnh được sử dụng trong các tài liệu multimedia rất đa dạng. Nhưng những hình ảnh mà Web Browser có thể hiển thị là các ảnh có dạng * . GIF, * JPEG, *.XBM.*.XBM là dạng ảnh Bitmap dùng cho hệ thống Windows và chỉ hỗ trợ cho 2 màu. Hầu hết các trình duyệt trên PC và Mac đều có thể sử dụng hiển thị dạng ảnh này. Nhưng dạng ảnh này được tạo trên hệ điều hành Unix.GIF : được hỗ trợ 256 màu, nói chung đây là dạng ảnh nén và là những ảnh có kích thước lớn. GIF bị giới hạn trong phạm vi hẹp hơn rất nhiều khi chọn màu. sử dụng GIF có nhiều điểm lợi hơn và là dạng đồ họa phổ biến nhất được dùng trên trang Web. GIF có hiệu quả cao và tính năng nén bên trong làm cho hình ảnh tương đối nhỏ. GIF hỗ trợ tính trong suốt và xen kẽ là các tính năng có thể nâng cao sự hấp dẫn.
Video (hình ảnh động-motion image) Dạng dữ liệu kết hợp dữ liệu ảnh động và dữ liệu âm thanh động vào 1 file gọi là dữ liệu video. File chứa dữ liệu video gọi là file loại AVI. Ưu điểm của file loại AVI. Khi thể hiện các file AVI có cảm giác rất thực, mọi việc diễn ra như trong thực tế. Có được như thế là vì sự chuyển động của ẩnh trên màn hình và âm thanh phát ra từ card âm thanh đã đồng bộ với nhau. Nhược điểm của file loại AVI. Khó thay đổi dữ liệu.
Animation (hình ảnh sử dụng theo nguyên tắc chiếu phim). Dạng dữ liệu kết hợp dữ liệu ảnh và dữ liệu âm thanh động trong quá trình thể hiện tạo ra dữ liệu animation.Ưu điểm của dữ liệu animation. Trong chế độ hiển thị theo nguyên tắc chiếu phim animation, các ảnh bitmap được chứa trong nhiều file, thứ tự xuất hiện của các ảnh theo kịch bản là thứ tự đọc các file ảnh. Tương tự như vậy đối với âm thanh. Các file âm thanh được chuẩn bị trước thường là file dạng wav. Thứ tự xuất hiện âm thanh tuân theo thứ tự đọc các file dạng wav.Điều này chứng tỏ dữ liệu animation dùng nhiều file vì vậy việc thay đổi rất đơn giản. Nhược điểm của dữ liệu animation. Nhược điểm duy nhất là do sử dụng nhiều file ảnh và âm thanh trong 2 quá trình độc lập nhau vì vậy tính đồng bộ không cao, chất lượng thể hiện không tốt, không có cảm giác thực.
c. Từ điển mutimedia
Ngày nay với sự phát triển như vũ bão của công nghệ thông tin nói chung và công nghệ multimedia nói riêng đã đem lại một hình thức mới cho từ điển - Từ điển Multimedia. Với khả năng lưu trữ lớn,tìm kiếm thông tin nhanh của máy tính, đa dạng về thông tin thì nguồn thông tin mà từ điển multimedia đem lại không chỉ là những tri thức được thể hiện bằng chữ mà còn kèm theo cả âm thanh hình ảnh một cách trực quan sinh động mang lại cho con người lượng thông tin nhiều hơn phong phú hơn.
Các hệ thống đang sử dụng
Hiện nay trong cuộc sống hàng ngày của con người không thể thiếu được các công cụ tra cứu, nhất là học sinh sinh viên các bộ từ điển đã phần nào thoả mãn được các nhu cầu tra cứu, hoc tập của họ.
Cũng nằm trong việc đáp ứng nhu cầu bức xúc đó các bộ phần mềm từ điển ra đời. Ngay từ khi mới xuất hiện nó đã trở thành một công cụ đồng hành của giới nghiên cứu cũng như những người yêu thích tin học. Tuy nhiên với sự phát triển không ngừng của xã hội thì những phần mềm từ điển cũng phải không ngừng phát triển để bắt kịp vơi đà tăng trưởng đó. Từ điển multimedia ra đời không nằm ngoài xu hướng đó. Ngoài khả năng tra cứu bằng những đoạn văn bản thông thường thì nó còn cung cấp cho người sử dụng những thông tin được cập nhật bằng hình ảnh, âm thanh.
Tuy nhiên một khó khăn cho người dùng là việc cập nhật thông tin cho từ điển. Với sự khác nhau về cách sử dụng của mỗi loại nguồn tin 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(ListTracuu.List(i), Len(txtTracuu.Text)) = StrConv(txtTracuu.Text, 3) Then
ListTracuu.ListIndex = i
Exit Sub
End If
Next
End Sub
Private Sub txtTracuu_GotFocus()
txtTracuu.SelStart = 0
txtTracuu.SelLength = Len(txtTracuu.Text)
End Sub
Private Sub txtTracuu_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
txtTracuu.Text = Left(ListTracuu.Text, InStr(ListTracuu.Text, "-") - 1)
End If
End SubVERSION 5.00
VB.Form frmTacpham
Dim rs As Recordset
Dim db As Database
Private Sub CmAudio_Click()
If Listnoidung.SelectedItem.Selected = True Then
Call Removes(datPrimaryRS.Recordset.Fields("stt").Value, Listnoidung.SelectedItem.Text, Listnoidung.SelectedItem.Index)
End If
End Sub
Private Sub cmdAdd_Click()
datPrimaryRS.Recordset.AddNew
End Sub
Sub ShowTracuu()
Dim db As Database
Dim rs As Recordset
Set db = OpenDatabase(datPrimaryRS.DatabaseName)
Set rs = db.OpenRecordset("select * from noidung where matacpham=" & datPrimaryRS.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)
If rs.Fields(1).Value = "img" Then
'Item.Icon = 1
Else
'Item.Icon = 2
End If
rs.MoveNext
Loop
End If
End Sub
Private Sub cmdDelete_Click()
With datPrimaryRS.Recordset
.Delete
.MoveNext
If .EOF Then .MoveLast
End With
End Sub
Private Sub Cmdseach_Click()
Picture1.Visible = True
End Sub
Private Sub cmdUpdate_Click()
datPrimaryRS.UpdateRecord
datPrimaryRS.Recordset.Bookmark = datPrimaryRS.Recordset.LastModified
End Sub
Private Sub cmdClose_Click()
Screen.MousePointer = vbDefault
Unload Me
End Sub
Private Sub CmFind_Click(Index As Integer)
Select Case Index
Case 0
datPrimaryRS.Recordset.FindFirst
("tentacpham like'* " & Txseach.Text & " *'")
Case 1
datPrimaryRS.Recordset.FindPrevious
("tentacpham like'* " & Txseach.Text & " *'")
Case 2
datPrimaryRS.Recordset.FindNext
("tentacpham like'* " & Txseach.Text & " *'")
Case 3
datPrimaryRS.Recordset.FindLast
("tentacpham like'* " & Txseach.Text & " *'")
End Select
End Sub
Private Sub CmNoidung_Click()
Picture2.Visible = True
End Sub
Private Sub Command1_Click()
Picture1.Visible = False
End Sub
Private Sub Command2_Click(Index As Integer)
Picture2.Visible = False
If Index = 0 Then
If Option1(0).Value = True Then
Load frmOpenAVI
frmOpenAVI.File.Pattern = "*.wav;*.mp3;*.mid"
frmOpenAVI.Show (1)
If frmOpenAVI.Filename "" Then
Call Add(frmOpenAVI.Filename, datPrimaryRS.Recordset.Fields("stt").Value, "audio")
Exit Sub
End If
End If
If Option1(1).Value = True Then
frmEditor1.Show (1)
If frmEditor1.Filename "" Then
Call Add(frmEditor1.Filename, datPrimaryRS.Recordset.Fields("stt").Value, "text")
Exit Sub
End If
End If
If Option1(2).Value = True Then
frmOpenImage.Show (1)
If frmOpenImage.Filename "" Then
Call Add(frmOpenImage.Filename, datPrimaryRS.Recordset.Fields("stt").Value, "img")
Exit Sub
End If
End If
If Option1(3).Value = True Then
Load frmOpenAVI
frmOpenAVI.File.Pattern = "*.avi"
frmOpenAVI.Show (1)
If frmOpenAVI.Filename "" Then
Call Add(frmOpenAVI.Filename, datPrimaryRS.Recordset.Fields("stt").Value, "video")
Exit Sub
End If
End If
End If
End Sub
Sub Add(v As String, i As Integer, k As String)
Dim db As Database
Set db = OpenDatabase(datPrimaryRS.DatabaseName)
db.Execute
("insert into noidung values ("&i& ",'"& k &"','"& v &"')")
Dim item As ListItem
Set item = Listnoidung.ListItems.Add(, , v)
End Sub
Sub Removes(i As Integer, v As String, k As Integer)
Dim db As Database
Set db = OpenDatabase(datPrimaryRS.DatabaseName)
db.Execute
("delete * from noidung where matacpham=" & i & " and duongdan ='" & v & "'")
Dim item As ListItem
Listnoidung.ListItems.Remove (k)
End Sub
Private Sub Command3_Click()
If Listnoidung.SelectedItem.Selected = True Then
'Call Remove(datPrimaryRS.Recordset.Fields("stt").Value, Listnoidung.SelectedItem.Text, Listnoidung.SelectedItem.Index)
End If
End Sub
Private Sub datPrimaryRS_Error(DataErr As Integer, Response As Integer)
MsgBox "Data error event hit err:" & Error$(DataErr)
Response = 0
End Sub
Private Sub datPrimaryRS_Reposition()
Screen.MousePointer = vbDefault
On Error Resume Next
datPrimaryRS.Caption = "Record: " & (datPrimaryRS.Recordset.AbsolutePosition + 1)
Call ShowTracuu
End Sub
Private Sub datPrimaryRS_Validate(Action As Integer, Save As Integer)
Select Case Action
Case vbDataActionMoveFirst
Case vbDataActionMovePrevious
Case vbDataActionMoveNext
Case vbDataActionMoveLast
Case vbDataActionAddNew
Case vbDataActionUpdate
Case vbDataActionDelete
Case vbDataActionFind
Case vbDataActionBookmark
Case vbDataActionClose
Screen.MousePointer = vbDefault
End Select
Screen.MousePointer = vbHourglass
End Sub
Private Sub Form_Load()
Set db = OpenDatabase(datPrimaryRS.DatabaseName)
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 theloai from tacpham")
If rs.RecordCount 0 Then
rs.MoveFirst
Cmbtheloai.Clear
Do Until rs.EOF
Cmbtheloai.AddItem rs.Fields(0).Value
rs.MoveNext
Loop
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
Screen.MousePointer = vbDefault
End Sub
Attribute VB_Name = "Module1"
Public pathdata As String
Public Function msg(v As String, style As Integer) As Boolean
Load frmMsg
If style = 0 Then ' khong co nut bo qua
frmMsg.Command2.Visible = False
frmMsg.Label1.Caption = v
frmMsg.Show (1)
msg = True
Else
frmMsg.Command2.Visible = True
frmMsg.Label1.Caption = v
frmMsg.Show (1)
msg = frmMsg.ok
End If
End Function
VB.Form frmMsg
Public ok As Boolean
Private Sub Command1_Click()
ok = True
Unload Me
End Sub
Private Sub Command2_Click()
ok = False
Unload Me
End Sub
VB.Form frmOpenAVI
Private Sub CmCancel_Click()
Filename = ""
Me.Hide
End Sub
Private Sub CmOk_Click()
If Txtfile.Text "" Then
Filename = Dir.Path & "\" & File.Filename
End If
Me.Hide
End Sub
Private Sub Dir_Change()
File.Path = Dir.Path
End Sub
Private Sub Drive_Change()
Dir.Path = Drive.Drive
End Sub
Private Sub File_Click()
Txtfile.Text = File.Filename
End Sub
VB.Form frmOpenImage
Public Filename As String
Private Sub Chkhienthi_Click()
If Txtfile.Text "" Then
If Chkhienthi.Value 0 Then
Set p = LoadPicture(Dir.Path & "\" & File.Filename)
If p.Height > p.Width Then
PictPreview.Width = PictPreview.Height * p.Width \ p.Height
Else
PictPreview.Height = PictPreview.Width * p.Height \ p.Width
End If
PictPreview.Picture = p
End If
Else
PictPreview.Picture = LoadPicture("")
End If
End Sub
Private Sub CmCancel_Click()
Filename = ""
Me.Hide
End Sub
Private Sub CmOk_Click()
If Txtfile.Text "" Then
Filename = Dir.Path & "\" & File.Filename
End If
Me.Hide
End Sub
Private Sub Dir_Change()
File.Path = Dir.Path
End Sub
Private Sub Drive_Change()
Dir.Path = Drive.Drive
End Sub
Private Sub File_Click()
Dim p As Picture
Txtfile.Text = File.Filename
If Chkhienthi.Value 0 Then
Set p = LoadPicture(Dir.Path & "\" & File.Filename)
If p.Height > p.Width Then
PictPreview.Width = PictPreview.Height * p.Width \ p.Height
Else
PictPreview.Height = PictPreview.Width * p.Height \ p.Width
End If
PictPreview.Picture = p
End If
End Sub
Private Sub Form_Load()
File.Pattern = "*.bmp;*.jpg;*.gif;*.pcx"
End Sub
VB.Form frmOpenText
Public Filename As String
Private Sub CmCancel_Click()
Filename = ""
Me.Hide
End Sub
Private Sub CmOk_Click()
If Txtfile.Text "" Then
If InStr(Txtfile.Text, ".rtf") = 0 Then
Filename = Dir.Path & "\" & Txtfile.Text & ".rtf"
Else
Filename = Dir.Path & "\" & Txtfile.Text
End If
End If
Me.Hide
End Sub
Private Sub Dir_Change()
File.Path = Dir.Path
End Sub
Private Sub Drive_Change()
Dir.Path = Drive.Drive
End Sub
Private Sub File_Click()
Txtfile.Text = File.Filename
End Sub
Private Sub Form_Activate()
Txtfile.SetFocus
CmOk.Default = True
Dir.Path = App.Path
End Sub
Private Sub Form_Load()
File.Pattern = "*.txt;*.rtf"
End Sub
VB.Form frmEditor1
Public Filename As String
Dim SavEdit As Boolean
Private Sub CmCancel_Click()
Me.Hide
End Sub
Private Sub CmEdit_Click(Index As Integer)
Select Case Index
Case 0
frmOpenText.Filename = ""
frmOpenText.Dir.Path = App.Path
frmOpenText.Caption = "Mở tệp"
frmOpenText.Show (1)
Filename = frmOpenText.Filename
If Filename "" Then
Editor.LoadFile (Filename)
End If
Case 1
If Filename "" Then
Editor.SaveFile (Filename)
SavEdit = True
Else
frmOpenText.Filename = ""
frmOpenText.Dir.Path = App.Path
frmOpenText.Caption = "Lưu trữ"
frmOpenText.Show (1)
Filename = frmOpenText.Filename
If Filename = "" Then
SavEdit = False
Else
Editor.SaveFile (Filename)
SavEdit = True
End If
End If
Case 2
Case 3
Case 4
Case 5
End Select
End Sub
Private Sub CmOk_Click()
If Not SavEdit Then
ask = MsgBox("ban co muon save khong", vbYesNo)
If ask = vbYes Then
Call CmEdit_Click(1)
End If
Else
Me.Hide
End If
End Sub
Private Sub Editor_Change()
SavEdit = False
End Sub
Private Sub Form_Load()
If Filename "" Then
Editor.LoadFile (Filename)
Else
Editor.Text = ""
End If
End Sub
Tài liệu tham khảo
Giáo trình Visual Basic 6 – Nhà xuất bản giáo dục
Giáo trình công nghệ multimedia trường đại học dân lập Đông Đô
Các file đính kèm theo tài liệu này:
- phantich1.doc
- TomtatHung.doc