Tổng quan về công ty Tân Thế Kỷ (New Century Soft)
1 Giới thiệu về công ty Tân Thế Kỷ (New Century Soft).
1.1 Địa chỉ của công ty
Công ty có Trụ sở chính:
28A4 Phạm Hồng Thái, Ba Đỡnh, Hà Nội
Website:http:// www.ncs.com.vn
Chi nhánh tại TP Hồ Chớ Minh
Tầng 4, 456A đường Nguyễn Thị Minh Khai, Quận 3, TP Hồ Chí Minh
2F Tanabe Building 2, 6-17-4 Shimbashi, Minato-ku, Tokyo 105- 0004,Japan
Hội đồng quản trị, ban lãnh đạo, ban giám đốc gồm những người đó từng đảm nhận vai trí lãnh đạo tại các công ty phần mềm của Nhật Bản, Mỹ,
Việt Nam, trong đó Giám đốc Điều hàng đó tốt nghiệp Thạc sĩ Quản trị doanh nghiệp tại Nhật. Đội ngũ nhân viên: tổng số chuyên viên phần mềm: 82 người Trong đó 100% tốt nghiệp Đại học chuyên ngành Công nghệ Thông tin từ các trường Đại học Bách Khoa Hà Nội và Đại học Quốc Gia Ngoài ra một số kỹ sư đó từng được đào tạo và làm việc tại các công ty phần mềm của Nhật Bản, Mỹ, Pháp Ngoài ra còn có 02 Tiến sĩ, 06 Thạc sĩ Công nghệ Thông tin.
1.2 Quá trình hình thành và phát triển của công ty:
Công ty Tân Thế Kỷ(New Century Soft) là một trong những công ty hàng đầu trong lĩnh vực tư vấn và phát triển phần mềm tại Việt Nam hiện nay Công ty được thành lập từ tháng 9 năm 2001, bằng chính nhiệt huyết sẵn có của mỡnh hiện nay công ty đó tự hào khẳng định được thương hiệu của mỡnh đó và sẽ đứng vững trong thị trường kinh doanh và phát triển các sản phẩm phần mềm phấn đấu trở thành một trong những công ty năng động, sáng tạo và thành công bậc nhất tại Việt Nam còng như nước ngoài. Mặc dù thành lập chưa được bao lâu nhưng công ty Tân Thế Kỷ đó nhanh chúng chiếm được cảm tình của khách hàng trong nước còng như nước ngoài bởi chất lượng sản phẩm và dịch vụ của mỡnh Công ty có trụ sở chính đặt tại Hà Nội, chi nhánh tại Thành phố Hồ Chí Minh và văn phòng đại diện tại Tokyo, Nhật Bản Trong thời gian đầu công ty chú trọng vào phát triển dịch vụ gia công phần mềm cho các công ty nước ngoài và đó nhanh chúng nhận được nhiều đơn đặt hàng tại thị trường Nhật Bản Với đội ngũ cán bộ nhiệt tình giàu kinh nghiệm và tay nghề cao công ty có đủ khả năng để có thể đáp ứng mọi nhu cầu khó tính nhất của khách hàng trong và ngoài nước. Bênh cạnh lĩnh vực gia công phần mềm công ty còn tập trung vào phát triển và cung cấp các giải pháp đào tạo trực tuyến theo chuẩn SCORM, một sản phẩm rất có triển vọng phát triển toàn cầu trong tương lai không xa Công ty đó giành được nhiều uy tín từ các công ty, tổ chức trong và ngoài nước bằng chính chất lượng các sản phẩm của mỡnh Đặc biệt hơn vào tháng 1 năm
2006 công ty được cấp chứng chỉ ISO 9001:2000 cho hoạt động phát triển tư vấn và cung cấp các giải pháp công nghệ thông tin Đây chính là minh chứng cho sản phẩm và chất lượng dịch vụ mà công ty cung cấp Hiện nay công ty tập trung nỗ lực trên các lĩnh vực chính sau:
Gia công phần mềm cho thị trường nước ngoài, tập trung chủ yếu vào Nhật bản và Mỹ.
Tư vấn và phát triển các giải pháp đào tạo trực tuyến (eLearning Solution) theo chuẩn quốc tế.
Nghiên cứu và phát triển các sản phẩm phần mềm và dịch vụ dựa trên công nghệ Mobile thế hệ thứ ba (3G Mobile).
Tư vấn và phát triển giải pháp ERP cho thị trường Việt Nam.
Tư vấn và phát triển giải pháp thương mại điện tử cho thị trường Việt Nam.
1.3 Sơ đồ tổ chức của công ty
Hội đồng Quản trị, Ban lãnh đạo NCS
Chi nhánh NCS tại TPHCM Văn phòng đại diện tại TOKYO
Trung tâm I Trung tâm II Trung tâm III
1.4 Định hướng phát triển của công ty
Công ty đang tập trung tối ưu vào việc làm hài lũng những khách hàng trong và ngoài nước bằng chính những giải pháp, sản phẩm và dịch vụ chất lượng cao với chi phí và thời gian hợp lý Công ty luụn kiờn định với phương châm phát triển sau:
Đội ngũ chuyên nghiệp: xây dựng một công ty phần mềm chuyên nghiệp có năng lực kỹ thuật cao và đội ngũ quản lý tài năng, có khả năng thực hiện các dự án phát triển phần mềm trong nước còng như nước ngoài, phấn đấu trở thành doanh nghiệp tiên phong trong công cuộc cách mạng Công nghệ thông tin ở Việt Nam.
Quy trình chuyên nghiệp: phát triển và ứng dụng thành công các quy trình sản xuất phần mềm tiờn tiến nhằm đáp ứng yêu cầu khắt khe của khách hàng về chất lượng, sản phẩm còng như thời gian giao hàng.
Môi trường chuyên nghiệp: hoàn thiện một môi trường làm việc chuyên nghiệp cho công nghiệp tri thức, tạo cơ hội tối đa cho sự sáng tạo và tiến bộ nghề nghiệp đối với mọi thành viên của công ty
Chinh phục thị trường nội địa: tăng cường đội ngũ kỹ sư phát triển và nhân viên khai thác thị trường nhằm vào các dự án phần mềm trong nước.
Mở rộng thị trường quốc tế: khai thác các cơ hội làm gia công phần mềm cho đối tác nước ngoài, sử dụng tối đa lợi thế cạnh tranh sẵn có của các kỹ sư Việt Nam.
2 Chức năng và nhiệm vụ của công ty Tân Thế Kỷ (New Century Soft)
2.1 Tư vấn, cung cấp các giải pháp hệ thống Công nghệ thông tin
Hiện nay phương châm học tập của con người đang ngày càng đa dạng con người mong muốn có thể được học tập ở bất cứ nơi đâu từ hải đảo xa xôi cho đến các vùng nói heo hút hay bất cứ khi nào như những lúc nghỉ trưa hay những lúc đang đi trên các phương tiện giao thông công cộng Họ mong muốn sử dụng tốt nhất thời gian của mỡnh để có thể trau dồi thêm kiến thức cho mỡnh với một mức chi phí thấp và đạt hiệu quả cao Thấu hiểu được khát khao đó của rất nhiều người đam mê học tập nhưng do hoàn cảnh còn khó khăn nên công ty đó đưa ra một giải pháp đào tạo trực tuyến (e-Learning) có thể đáp ứng được tất cả các ước muốn của những người có thời gian eo hẹp và kinh phí cho việc học tập còn hạn chế Hiện nay giải pháp tổng thể về e-Learning gồm có: Hệ thống quản lý đào tạo trực tuyến, công cụ mô phỏng phần mềm, công cụ tạo bài giảng và hệ thống hội nghị trực tuyến Hy vọng trong tương lai không xa giải pháp trên sẽ trở nên phổ biến đến từng xóm làng heo hút hay hải đảo xa xôi.
2.1.2 Giải pháp quản trị ERP(Enterprise Resource Planning) Đó là một giải pháp dựa trên mô hình quản trị doanh nghiệp dựa trên phân tích hệ thống một cách tổng thể, cho phép người điều hành có thể quản lý và sử dụng nguồn lực của doanh nghiệp một cách hiệu quả nhất Phần mềm ERP có thể giúp phát huy một cách tối ưu mọi nguồn lực của doanh nghiệp điều đó là một xu hướng đang ngày càng trở nên phổ biến trên thế giới nói chung và ở Việt Nam nói riêng.
2.1.3 Giải pháp thương mại điện tử(Portal)
Giải pháp Portal là một bước tiến mới cho website truyền thống Giải pháp Portal ra đời để giải quyết những hạn chế của các Website truyền thống, khi đó thông tin và dịch vụ được phân loại nhằm thuận tiện cho tìm kiếm và hạn chế vựi lấp thông tin và cho phộp bảo toàn đầu tư lâu dài mở ra một môi trường chủ động hơn để cho các website truyền thống có thể tích hợp thêm nhiều ứng dụng và chức năng mới.
2.2.1 Thiết kế, cài đặt, nâng cấp Website
Công ty nhận thiết kế, cài đặt và nâng cấp Website cho tất cả các doanh nghiệp có nhu cầu xây dựng và quảng cáo hình ảnh còng như các sản phẩm của doanh nghiệp trên Website Công ty có đội ngũ nhân viên chuyên nghiệp có tinh thần trách nhiệm cao với công việc đảm bảo làm hài lũng mọi yêu cầu của những khách hàng khó tính nhất không chỉ trên lĩnh vựcWebsite mà cả trên những sản phẩm của công ty tạo ra.
2.2.2 Liên kết dữ liệu doanh nghiệp với Website
Mọi thông tin của doanh nghiệp sẽ được liên kết với Website của doanh nghiệp một cách nhanh chóng chính xác và đầy đủ nhất Không chỉ có vậy doanh nghiệp còn được hưởng những tiện ích hiện đại nhất của hiện nay như công cụ quản trị Website(Conent Management System) với những chức năng mạnh nhất hiện nay như tìm kiếm thông tin siờu nhanh, có những bức ảnh động, tích hợp sẵn trình soạn thảo tiờn tiến, tạo liên kết động, chức năng cập nhật thông tin tự động…
2.3 Nâng cấp, chuyển đổi, thiết kế lại phần mềm
2.3.1 Nâng cấp, chuyển đổi phần mềm giữa các nền tảng
Tổng quan về HTTT quản lý thuốc
1.1.1 Hệ thống thông tin là gì?
HTTT là một ứng dụng đầy đủ và toàn diện nhất các thành tựu của công nghệ, của tin học vào tổ chức Xây dựng thành công một HTTT không thể theo một thực đơn sẵn có Trước hết cần phải hiểu biết về tổ chức, sau đó phải vận dụng các hiểu biết về công nghệ thông tin, về quá trình hình thành và phát triển các HTTT để dự kiến một HTTT thích hợp cho nó.
Có rất nhiều định nghĩa khác nhau về HTTT tuy nhiên theo cách hiểu của các nhà tin học thì: HTTT được thể hiện bởi những con người, các thủ tục, dữ liệu và thiết bị tin học hoặc không tin học Đầu vào (Input) của HTTT được lấy ra từ các nguồn (Sources) và được xử lý bởi hệ thống sử dụng nó cùng các dữ liệu được lưu trữ trước đó Kết quả sử lý (Output) được chuyển đến các đích (Destination) hoặc cập nhật vào các kho lưu trữ dữ liệu (Storage).
Mô hình hệ thống thông tin
1.1.2 Phân loại HTTT trong tổ chức
Có 2 cách phân loại các HTTT trong tổ chức hay được dùng: phân loại theo mục đích phục vụ của thông tin đầu ra và phân loại theo nghiệp vụ mà nó phục vụ.
* Phân loại theo mục đích phục vụ của thông tin đầu ra:
+ HTTT xử lý giao dịch TPS (Transaction Processing System): là một HTTT nghiệp vụ Nó phục vụ cho hoạt động của các tổ chức ở mức vận hành Nó thực hiện việc ghi nhận các giao dịch hàng ngày cần thiết cho hoạt động nghiệp vụ của tổ chức.
VD : Hệ thống trả lương, lập đơn đặt hàng, làm hóa đơn, theo dõi khách hàng, theo dõi nhà cung cấp, đăng kí môn theo học của sinh viên ( học chế tín chỉ ), cho mượn sách và tài liệu trong thư viện, cập nhật thuế ngân hàng và tính thuế phải trả của những người nộp thuế
Thu thập Xử lý và luu trữ Phân phát
+ HTTT quản lý MIS (Management Information System): là HTTT quản lý trợ giúp cho hoạt động quản lý của tổ chức như lập kế hoạch, kiểm tra thực hiện, tổng hợp và làm báo cáo, làm các quyết định quản lý trên cơ sở các quy trình thủ tục cho trước.
VD : Hệ thống theo dõi năng lực bán hàng, theo dõi chi tiêu, theo dõi năng suất hoặc sự vắng mặt của nhân viên, nghiên cứu về thị trường….
Hệ thống trợ giúp ra quyết định DSS (Decission Suport Sýtem) là một hệ máy tính được sử dụng ở mức quản lý của tổ chức Nó có nhiệm vụ tổng hợp dữ hiệu và tiến hành phân tích bằng các mô hình để trợ giúp ra quyết định cho các nhà quản lý.
+ Hệ thống chuyên gia ES (Expert System) là một hệ thống trợ giúp ra quyết định ở mức chuyên sâu Ngoài những kiến thức, kinh nghiệm của các chuyên gia và các luật suy diễn nó còn có thể trang bị những thiết bị cảm nhận để thu các thông tin từ những nguồn khác nhau Hệ thống có thể sử lý và dựa vào các luật suy diễn để đưa ra quyết định rất hữu ích và thiết thực.
Hệ thống tăng cường khả năng cạnh tranh ISCA (Information System for Competititive Advantage) được sử dụng như một trợ giúp chiến lược. HTTT tăng cường khả năng cạnh tranh được thiết lập cho người sử dụng là những người ngoài tổ chức, có thể là khách hàng, nhà cung cấp và còng có thể là một tổ chức khác cùng ngành công nghiệp…(trong khi 4 loại HTTT trên được sử dụng chủ yếu cho các bộ phận trong tổ chức Hệ thống này là công cụ đắc lực thực hiện các ý đồ chiến lược)
Phân loại theo nghiệp vụ của HTTT
Bảng phân loại HTTT theo lĩnh vực và mức ra quyết định
KD và sx chiến lược Tài chính chiến thuật
KD và sx chiến thuật Tài chính tác nghiệp
KD và sx tác nghiệp
1.1.3 Mô hình biểu diễn Hệ thống thông tin
Cùng với HTTT có thể được mô tả khác nhau tuỳ theo quan điểm của người mô tả có 3 mô hình đó được đề cập đến để mô tả cùng 1 HTTT Đó là mô hình logic, mô hình vật lý ngoài và mô hình vật lý trong.
* Mô hình logic: mô tả hệ thống làm gì? Dữ liệu mà nó thu thập, xử lý phải thực hiện, các kho chứa kết quả hoặc dữ liệu để lấy cho các xử lý và thống tin mà hệ thống sản sinh ra.
* Mô hình vật lý ngoài: chú ý tới những khía cạnh nhận thấy được của hệ thống như là các vật mang tin và mang kết quả còng như hình thức đầu vào và đầu ra, phương tiện để thao tác với hệ thống…
* Mô hình vật lý trong: liên quan tới khía cạnh vật lý của hệ thống, tuy nhiên không phải là cái nhận của người sử dụng mà là của nhân viên kĩ thuật
Quá trình Xây dựng phần mềm ứng dụng cho HTTT quản lý
1.2.1 Nguyên nhân dẫn tới việc phát triển một hệ thống thông tin
Mục đích cuối cùng của dự án phát triển một HTTT là trang bị cho tổ chức những công cụ quản lý tốt nhất và phự hợp nhất Phát triển một HTTT thốngHệ thông tin văn phòng bao gồm việc phân tích hệ thống đang tồn tại, thiết kế một hệ thống mới, thực hiện và tiến hành cài đặt nó Phân tích một hệ thống bắt đầu từ việc thu thập dữ liệu và chỉnh đốn chúng để đưa ra được chẩn đoán về tình hình thực tế Thiết kế là nhằm xác định các bộ phận của một hệ thống mới có khả năng cải thiện tình trạng hiện tại và Xây dựng các mô hình logic và mô hình vật lý ngoài của hệ thống đó Cài đặt một hệ thống là tích hợp nó vào hoạt động của tổ chức.
Có rất nhiều nguyên nhân buộc một tổ chức phải tiến hành phát triển một HTTT mới Có thể tóm lược như sau:
Giải quyết vấn đề quản lý: những yêu cầu mới của quản lý còng có thể dẫn đến sự cần thiết của một dự án phát triển HTTT mới. Nhằm nâng cao năng lực cạnh tranh, nâng cao chất lượng sản phẩm, giảm chi phí sản xuất, cung cấp thông tin tôt hơn cho người có yêu cầu, nâng cao năng lực và hiệu quả quản lý, hiện đại hóa phương pháp và phương thức quản lý của tổ chức.
Tận dụng những cơ hội mới: như cơ hội mở rộng kinh doanh, hội nhập; sự xuất hiện của những công nghệ mới.
Áp lực cạnh tranh đối với tổ chức: đó là sự mở rộng quy mô và loại hình của các tổ chức cùng ngành.
Yêu cầu quản lý của cấp trên: đó là các nghị quyết, chỉ thị, quyết định không chỉ của cấp trên mà còn của các cơ quan pháp luật, Nhà nước
1.2.1 Phương pháp phát triển của một HTTT
Mục đích chính xác của dự án phát triển HTTT là có được một sản phẩm đáp ứng nhu cầu của người sử dụng mà nó được hoà hợp vào trong các hoạt động của tổ chức, chính xác về mặt kĩ thuật, tuân thủ các giới hạn về tài chính và thời gian định trước Một HTTT là 1 đối tượng phức tạp, vận đông trong môi trường còng rất phức tạp Có 3 nguyên tắc cơ sở chung để phát triển HTTT:
Nguyên tắc 1 : Sử dụng các mô hình
Một HTTT bao gồ 3 mô hình: mô hình logic, mô hình vật lý ngoài, mô hình vật lý trong Bằng cách cùng mô tả về một đối tượng chúng ta thấy 3 mô hình này quan tâm tới HTTT từ các góc độ khác nhau.
Nguyên tắc 2 : Chuyển từ cái chung sang cái riêng
Nguyên tắc đi từ cái chung tới cái riêng là một nguyên tắc của sự đơn giản hoá Để hiểu tốt một hệ thống thì trước hết phải hiểu các mặt chung trước khi xem xét chi tiết Sự cần thiết áp dụng nguyên tắc này là hiển nhiên.
Nguyên tắc 3 : Chuyển từ mô hình vật lý sang mô hình logic khi phân tích và chuyển từ mô hình logic sang mô hình vật lý khi thiết kế.
Nhiệm vụ phát triển sẽ đơn giản hơn khi sử dụng nguyên tắc chuyển từ mô hình vật lý sang mô hình logic khi phân tích và chuyển từ mô hình logic sang mô hình vật lý khi thiết kế
Phân tích bắt đầu từ thu thập dữ liệu về HTTT đang tồn tại. Nguồn dữ liệu chính là những người sử dụng, các tài liệu và quan sát.
Cả 3 nguồn này cung cấp chủ yếu sự mô tả mô hình vật lý ngoài của hệ thống
1.2.2 Các giai đoạn của phát triển HTTT
Một HTTT dù lớn hay nhỏ khi xây dựng không thể tuỳ tiện làm mà phải tuân thủ theo 7 giai đoạn nhất định.
Giai đoạn 1: Đánh giá yêu cầu
Cung cấp cho lãnh đạo tổ chức hoặc hội đồng giám đốc những dữ liệu đích thực để ra quyết định về thời cơ, tính khả thi và hiệu quả của một dự án phát triển hệ thống Giai đoạn này được thực hiện tương đối nhanh và không đũi hỏi chi phí lớn.
1.1.2 Các công đoạn của giai đoạn đánh giá yêu cầu a Lập kế hoạch
Mỗi giai đoạn của quá trình phát triển hệ thống cần phải được lập kế hoạch cẩn thận Mức độ hình thức hóa của kế hoạch này sẽ thay đổi theo quy mô dự án và theo giai đoạn phân tích b Làm rõ yêu cầu
Mục đích là làm cho phân tích viên hiểu đúng yêu cầu của người yêu cầu Xác định chính xác đối tượng yêu cầu, thu thập những yếu tố cơ bản của môi trường hệ thống và xác định khung cảnh nghiên cứu. b Viết dự án sơ bộ
Tổng chi phí dự kiến.
I Nội dung. a Mô tả bằng lời tổ chức và HTTT. b Mô tả bằng các mô hình hoặc sơ đồ. c Vấn đề hoặc cơ hội, giải pháp giải quyết bằng tin học hóa.
II Các hoạt động của dự án.
III Bảng tổng hợp chi phí.
IV Bảng tiến độ thực hiện công việc.
V Đánh giá chung. a Các đối tượng được hưởng lợi. b Khỏi quát
VI Ý kiến và đề nghị. c Đánh giá khả thi
Khả thi về kinh tế:
Khả thi về mặt kỹ thuật.
Khả thi về mặt tổ chức và con người:
Đạo đức kinh doanh: đây là vấn đề mới trong những năm gần đây vì vậy cần được nghiên cứu kỹ. d Chuẩn bị và trình bày báo cáo
Bao gồm tài liệu, công cụ trình bày báo cáo, thời gian báo cáo. Kết thúc giai đoạn đánh giá yêu cầu cần phải quyết định có tiếp tục thực thi dự án hay không.
Giai đoạn 2: Phân tích chi tiết
Phân tích chi tiết được tiến hành sau khi có sự đánh giá thuận lợi về yêu cầu Mục đích chính là hiểu rõ các vấn đề của hệ thống đang nghiên cứu, xác định những nguyên nhân đích thực của những vấn đề đó, xác định những đũi hỏi và ràng buộc áp đặt đối với hệ thống và xác định mục tiêu mà HTTT mới phải đạt được.
Lập kế hoạch phân tích chi tiết
Trước khi giai đoạn phân tích thực sự bắt đầu thì người chịu trách nhiệm của giai đoạn này phải lập kế hoạch về các nhiệm vụ phải thực hiện.
Lựa chọn phương pháp và công cụ
Nghiên cứu môi trường của hệ thống đang tồn tại
Nghiên cứu hệ thống hiện tại Đưa ra chuẩn đoán và xác định các yếu tố giải pháp
Xác định mục tiêu của hệ thống mới.
Xác định các yếu tố của giải pháp. Đánh giá lại tính khả thi
Khẳng định lại tính khả thi trong tổ chức, tài chính, kỹ thuật và thời hạn, cần phải có thông tin về hệ thống sẽ xây dựng và sẽ cài đặt chứ không chỉ là HTTT hiện có.
Thay đổi đề xuất của dự án
Sau khi đánh giá lại tính khả thi của dự án cần xem xét và sửa đổi lại đề xuất của dự án.
Chuẩn bị và trình bày báo cáo
Phân tích hệ thống thông tin
1.3.1 Các phương pháp thu thập thông tin
Phỏng vấn : là một trong hai công cụ thu thập thông tin đắc lực nhất dùng cho hầu hết các dự án phát triển HTTT Phỏng vấn cho phép thu thập được những thông tin được xử lý theo cách khác với mô tả trong tài liệu.
Nghiên cứu tài liệu : cho phép nghiên cứu kỹ và tỉ mỉ về nhiều khía cạnh của tổ chức như lịch sử hình thành và phát triển của tổ chức, tình trạng tài chính, các tiêu chuẩn và định mức, cấu trúc thứ bậc, vi trí và nhiệm vụ của các thành viên, nội dung và hình dạng của các thông tin đầu vào còng như đầu ra.
Sử dụng phiếu điều tra : khi cần phải lấy thông tin với số lượng lớn và pham vi rộng.
Quan sát : giúp cho chúng ta thấy những gì không thể hiện trên tài hiệu hoặc phỏng vấn như tài liệu để ở đâu, đưa cho ai…Quan sát sẽ gặp khó khăn vì người bị quan sát sẽ bị tác động và thực hiện ko đúng quy trình bìnhthường.
Phương pháp thu thập thông tin để phục vụ cho giai đoạn phân tích thiết kế chi tiết “HTTT quản lý công việc của giảng viên” chủ yếu là nghiên cứu tài liệu, quan sát và phỏng vấn
1.3.2 Mã hóa dữ liệu a Định nghĩa:
Mã hóa là cách thức để thực hiện việc phân loại, xếp lớp đối tượng cần quản lý b Lợi ích:
Phương pháp mã hóa được sử dụng trong tất cả các hệ thống Xấy dựng HTTT cần thiết phải mã hóa dữ liệu Việc mã hóa dữ liệu mang lại những lợi ích sau:
* Nhận diện không nhầm lẫn đối tượng.
* Mô tả nhanh chóng các đối tượng.
* Nhận diện nhóm đối tượng nhanh.
* Tiết kiệm không gian lưu trữ và thời gian sử lý.
* Thực hiện những phộp kiểm tra logic hình thức hoặc thể hiện vài đặc tính của đối tượng. c Các phương pháp mã hóa cơ bản:
Một hệ thống mã gồm 1 tập hợp các đối tượng, một bộ lý tự hợp lệ, được định nghĩa trước, được sử dụng để nhận diện đối tượng cần quan tâm.
* Phương pháp mã hóa liên tiếp : mã kiểu này được tạo ra bởi 1 quy tắc dóy nhất định.
* Phương pháp mã hóa phân cấp : nguyên tắc này lập bộ mã rõt đơn giản Người ta phân cấp đối tượng từ trên xuống và mã số được xây dựng từ trái qua phải, các chứ số được kéo dài về phía bên phải để thể hiện chi tiết phân cấp sâu hơn.
* Phương pháp mã hóa tổng hợp : khi kết hợp việc mã hóa phân cấp với mã hóa liên tiếp thì ta được mã hóa tổng hợp.
* Phương pháp mã hóa gợi nhớ : cho phép ta căn cứ vào đựac tính của đối tượng để xây dựng bộ mã.
* Phương pháp mã hóa theo seri : sử dụng 1 tập hợp theo dayx gọi là seri Seri được coi như là 1 giấy phép theo mã quy định.
* Phương pháp mã hóa ghộp nối : chia mã ra thành nhiều trường, mỗi trường tương ứng với 1 đặc tính, những liên hệ có thể có giữa những tập hợp con khác nhau với đối tượng được gán mã.
1.3.3 Các công cụ mô hình hóa HTTT a Sơ đồ luồng thông tin IFD (Information Flow Control):
Sơ đồ luồng thông tin được cung cấp để mô tả hệ thống thông tin theo cách thức động, tức là mô tả sự di chuyển của dữ liệu, việc xử lý, lưu trữ trong thế giới vật lý bằng các sơ đồ.
* Các ký pháp của sơ đồ luồng thông tin:
Thủ công Giao tác người-máy Tin học hóa hoàn toàn
Thủ công Tin học hóa
- Kho dữ liệu: b Sơ đồ luồng dữ liệu DFD (Data Flow Diagram):
Sơ đồ luồng dữ liệu dùng để mô tả HTTT như sơ đố luồng thông tin nhưng trên góc độ trõu tượng Trên sơ đồ chỉ bao gồm các luồng dữ liệu, các xử lý, các lưu trữ dữ liệu, nguồn, đích nhưng không hề quan tâm tới nơi, thời điểm, và đối tượng chịu trách nhiệm sử lý Sơ đồ DFD chỉ mô tả đơn thuần làm gì và để làm gì.
* Ký pháp chung cho sơ đồ DFD:
Ngôn ngữ sơ đồ luồng dữ liệu sử dụng bốn loại ký pháp cơ bản: thực thể, tiến trình, kho dữ liệu và dòng dữ liệu.
Nguồn hoặc đích: Biểu thị thông tin xuất phát từ đâu, đích của nó là bộ phận nào hoặc cá nhân nào.
Dòng dữ liệu : là dòng chuyển dời thông tin vào hoặc ra khỏi tiến trình, một chức năng Các dòng khác nhau phải có tên khác nhau và thông tin khi có sự thay đổi phải có tên phù hợp.
Tiến trình xử lý: được hiểu là quá trình biến đổi thông tin, từ thông tin vào nó biến đổi, tổ chức lại thông tin, bổ sung thông tin hoắc tạo ra thông tin mới tổ chức thành thông tin đầu ra phục vụ cho hoạt động của hệ thống lưu vào kho dữ liệu hoặc gửi cho các tiến trình hay bộ phân khác.
Kho dữ liệu : để thể hiện các thông tin cần lưu trữ dưỡi dạng vật lý Các kho dữ liệu này có thể là các tập tài liệu, các cặp hồ sơ hoặc các tệp thông tin trên đĩa.
Sơ đồ ngữ cảnh (Context Diagram): thể hiện rât khái quát nội dung chính của hệ thống thông tin Sơ đồ này không đi vào chi tiết mà nó mô tả sao cho chỉ cần nhận ra nội dung chính của hệ thống.
Phân ró sơ đồ ngữ cảnh: nhằm mô tả hệ thống chi tiết hơn người ta dùng kỹ thuật phân ró (Explosion) sơ đồ Bắt đầu từ sưo đồ ngữ cảnh ta phân ró tành sơ đồ mức 0, tiếp đó là mức 1…tuỳ theo mức độ chi tiết do yêu cầu đũi hỏi.
“Hệ thống thông tin quản lý quan hệ khách hàng” sử dụng cả 2 công cụ sơ đồ luồng dữ liệu và sơ đồ luồng thông tin để mô tả.
1.3.4 Thiết kế cơ sở dữ liệu (CSDL)
* Thiết kế cơ sở dữ liệu logic từ các thông tin đầu ra
Xác định các tệp CSDL trên cơ sở các thông tin đầu ra của hệ thống là phương pháp cổ điển và cơ bản của việc thiết kế CSDL.
Các bước chi tiết khi thiết kế CSDL từ các thông tin đầu ra:
* Bước 1: Xác định các thông tin đầu ra
Liệt kê toàn bộ các thông tin đầu ra như nội dung, khối lượng tần suất và nơi nhận của chúng
* Bước 2: Xác định các tệp cần thiết cung cấp đầy đủ dữ liệu cho việc tạo ra từng đầu ra.
* Liệt kê các phần tử thông tin đầu ra.
- Trên mỗi thông tin đầu ra bao gồm các phần tử thông tin được gọi là thuộc tính Liệt kê toàn bộ các thuộc tính thành 1 danh sách.
- Đánh dấu các thuộc tính lặp (là những thuộc tính có thể nhận nhiều giá trị dữ liệu).
- Đánh đấu các thuộc tính thứ sinh (S) là những thuộc tính được tính toán hoặc suy ra từ những thuộc tính khác.
- Gạch chân các thuộc tính khoá cho thông tin đầu ra.
Khái quát về công cụ sử dụng thực hiện đề tài
* Một số khái niệm về cơ sở dữ liệu (CSDL)
- Mỗi bảng (Table) ghi chép dữ liệu về mọt nhóm các phần tử nào đó gọi là thực thể (Entity).
Thưc thể KHÁCH HÀNG là bao gồm các khách hàng.
Thực thể THUỐC là bao gồm các loại thuốc.
- Mỗi thực thể đều có những đặc điểm riêng mà ta gọi đó là thuộc tính Mỗi thuộc tính là 1 yếu tố dữ liệu tách biệt, thường không chia nhỏ được nữa các thuộc tính góp phần mô tả thực thể và là những dữ liệu về thực thể mà ta muốn lưu trữ.
- Mỗi bảng có những dòng (Row) Mỗi dòng còn gọi là 1 bản ghi(Record) bởi vì nó ghi chộp dữ liệu về một cỏ thể (Instance) tức là một biểu hiện riêng của thực thể.
- Mỗi bảng có những cột (Column) Mỗi cột còn được gọi là một trường dữ liệu (Field) Để lưu trữ thông tin về từng thuộc tính người ta thiết lập cho nó một bộ thuộc tính để ghi giá trị cho các thuộc tính
Bộ thuộc tính cho thực thể HANGHOA có thể là như sau:
Mỗi thuộc tính được coi là một trường nó chứa một mẩu tin về thực thể cụ thể
- Cơ sở dữ liệu (Database) là 1 nhóm hay nhiều bảng có quan hệ với nhau.
- Một tập hợp các dữ liệu có liên quan với nhau được gọi là một hệ cơ sở dữ liệu (Database System) hay ngõn hàng dữ liệu (Data bank)
- Hệ quản trị cơ sở dữ liệu (Database Management System) là một hệ thống chương trình máy tính giúp ta tạo lập và sử dụng các hệ cơ sở dữ liệu.
Giới thiệu về Microsoft Access và Visual Basic
Microsoft Access là một thành phần của bộ phần mềmMicrosoft Office Profesional Vì thế mà những đối tượng thuộc giao diện như thực đơn, dải công cụ và hộp thoại đều tương tự như các ứng dụng khác của Office mà phần lớn cán bộ văn phòng đó quen dựng.Việc trao đổi dữ liệu giữa Access và các ứng dụng khác trong môi trường Windows như Excel, Word, SQL, Server,…còng rất thuận tiện.
Access là một công cụ tuyệt vời để phát triển những ứng dụng phục vụ công tác quản lý và điều hành một doanh nghiệp nhỏ Những Wizard của Access cho phép dễ dàng và nhanh chóng xây dựng nền mãng cho một ứng dụng Khả năng đưa vào ứng dụng Access những đơn vị (module) chương trình viết bằng Visual Basic giúp cán bộ lập trình tạo ra các thư viện có thể sử dụng lại.
Ứng dụng của Access ở cấp phòng ban: Access còng rất tiện dựng để phát triển những ứng dụng cho các phòng ban thuộc những công ty lớn Hầu hết các phòng ban thuộc những công ty lớn đều có đủ ngân sách để tạo ra những ứng dụng được thiết kế một cách hoàn hảo Hơn nữa, nhiều phòng ban còn có những nhân viên rất hăng say thiết kế mẫu báo cáo Họ sẵn sàng phối hợp với các chuyên gia phần mềm để tạo nên những ứng dụng đáp ứng một cách mỹ mãn những nhu cầu thông tin của phòng ban.
Ứng dụng Access cho toàn doanh nghiệp: mặc dự Access thích hợp nhất cho các ứng dụng ở cấp phòng ban nhưng vẫn có thể dùng nó để tạo ra những ứng dụng xử lý dữ liệu và cung cấp thông tin trên phạm vi của một cơ quan với quy mô vừa phải. Cần lưu ý, khi số người sử dụng đồng thời qua lớn thì hiệu năng của Access suy giảm đáng kể, khi đó Access được dùng như công cụ tuyến trước cho một cơ sở dữ liệu khách/chủ.
Dùng Visual Basic là cách nhanh và tốt nhất để lập trình cho Microsoft Microsoft Cho dự là lập trình viên chuyên nghiệp hay mới mẻ đối với chương trình Windows, Visual Basic cung cấp một bộ công cụ hoàn chỉnh để đơn giản hóa việc triển khai lập trình ứng dụng cho Microsoft Microsoft.
Visual Basic là phần “Visual” đề cập đến phương pháp được sử dụng để tạo giao diện đồ họa người dùng Có sẵn những bộ phận hình ảnh, controls, giúp sắp đặt vị trí và quyết định các đặc tính của chúng trên một khung màn hình (form) Phần “Basic” đề cập đến ngôn ngữ Basic (Beginners All-Purpose Symbolic Instruction Code), một ngôn ngữ lập trình đơn giản, dễ học, được tạo ra cho các khoa học gia (những người không có thì giờ để học lập trình điện toán) dùng.
Visual Basic đó được sinh ra từ MSBasic, do Bill Gates viết từ thời dùng cho máy tính 8 bits 8080 hay Z80 Hiện nay nó chứa đến hàng trăm câu lệnh (commands), hàm (functions) và từ khóa(keywords) Rất nhiều commands, functions liên hệ trực tiếp đếnMSWindows GUI Những người mới bắt đầu có thể viết chương trìng bằng cách học chỉ một vài commands, functions và keywords Khả năng của ngôn ngữ này cho phép những người chuyên nghiệp hoàn thành bất kỳ điều gì nhờ sử dụng ngôn ngữ lập trình MSWindows nào khác Visual Basic còn có hai dạng khác Visual Basic for Application(VBA) và VBScript VBA là ngôn ngữ nằm phía sau các chương trìnhWord, Excel, MSAccess, MSProject…còn gọi là Macros Dựng VBA trong MSOffice ta có thể làm tăng chức năng bằng cách tự động hóa chương trình VBScript được dùng cho Internet và chính OperatingSystem
Dù cho mục đích là tạo một tiện ích nhỏ, trong một nhóm làm việc, trong một công ty lớn, hay cần phân bố chương trình ứng dụng rộng rói trên thế giới qua Internet, Visual Basic còng sẽ có các công cụ lập trình mà ta cần thiết.
Chức năng quản lý hóa đơn có tác dụng cho biết thông tin về mã hóa đơn, mã thuốc, mã nhà cung cấp, số lượng, ngày xuất nhập, đơn giá, thành tiền, số tiền đã thanh toán, số tiền còn lại mà từ đó người quản lý truy cập được các thông tin cần thiết như số tiền còn nợ của nhà cung cấp, khách hàng, v.v…
3 Quản lý nhà cung cấp.
Quản lý mã nhà cung cấp, tên nhà cung cấp, địa chỉ, điện thoại, số tiền mà cửa hàng còn nợ lại nhà cung cấp, các đơn hàng và cung cấp các thông tin về thuốc.
Quản lý mã khách hàng, tên khách hàng, địa chỉ, điện thoại, các đơn hàng và cung cấp các thông tin về thuốc khi người ta truy cập đến khóa mã khách hàng
5 Tra cứu và tìm kiếm.
Làm nhiệm vụ tra cứu và tìm kiếm những yêu cầu của người quản lý đưa ra như các thông tin về thuốc, khách hàng, loại thuốc…
Chức năng nhiệm vụ vủa các đối tượng
Chức năng này có nhiệm vụ quản lý chặt chẽ thông tin nhà cung cấp và khách hàng, thông tin về thuốc như mã số thuốc, số lượng, tên thuốc, loại thuốc, công dụng…
Quản lý về quá trình bán thuốc của cửa hàng, nhận đơn hàng từ phía khách hàng, lập danh sách đơn hàng và phân loại khách hàng với các loại thuốc, số lượng, giá cả…
Chức năng quản lý hóa đơn có tác dụng cho biết thông tin về mã hóa đơn, mã thuốc, mã nhà cung cấp, số lượng, ngày xuất nhập, đơn giá, thành tiền, số tiền đó thanh toán, số tiền còn lại mà từ đó người quản lý truy cập được các thông tin cần thiết như số tiền còn nợ của nhà cung cấp, khách hàng, v.v…
3 Quản lý nhà cung cấp.
Quản lý mã nhà cung cấp, tên nhà cung cấp, địa chỉ, điện thoại, số tiền mà cửa hàng còn nợ lại nhà cung cấp, các đơn hàng và cung cấp các thông tin về thuốc.
QUẢN LÝ CỬA HÀNG THUỐC TÂN DƯỢC
Quản lý NCC và khách
Quản lý thuốc hàng Quản lý hóa đơn Tra cứu và tìm kiếm Tổng hợp
Nhập xuất Nhập xuất Hóa đơn nhập/ xuất Tìm kiếm theo NCC Thống kê
Quản lý mã khách hàng, tên khách hàng, địa chỉ, điện thoại, các đơn hàng và cung cấp các thông tin về thuốc khi người ta truy cập đến khóa mã khách hàng.
5 Tra cứu và tìm kiếm.
Làm nhiệm vụ tra cứu và tìm kiếm những yêu cầu của người quản lý đưa ra như các thông tin về thuốc, khách hàng, loại thuốc…
Biểu đồ phân cấp chức năng
Nguyễn Văn Cường Tin học kinh tế 46B
Biểu đồ luồng dữ liệu mức khung cảnh
Nhà cung cấp và khách hàng Giao thuốc
Giao diện và code của chương trình
Quản lý bán thuốc Đơn thuốc
Thông tin thuốc Đơn thuốc Hóa đơn
Private Sub cmdBan_Click() frmHDB.Show vbModal
Private Sub cmdNhap_Click() frmHDN.Show vbModal
Set Conn = New ADODB.Connection gConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source = " & App.Path & "\data\db1.mdb;" & _
';Jet OLEDB:Database Password=hoanglinh"
Private Sub mnBan_Click() frmBaocaoBan.Show vbModal
Private Sub mnCC_Click() frmNCC.Show vbModal
Private Sub mnFind_Click() frmFindTh.Show vbModal
Private Sub mnKh_Click() frmKh.Show vbModal
Private Sub mnNhap_Click() frmBaocaoNhap.Show vbModal
Private Sub mnNV_Click() frmNV.Show vbModal
Code của Danh sách khách hàng:
Dim rs As ADODB.Recordset
Call FillCombo("Select TenTDo from TDo", cmbMaTDo)
Call FillCombo("Select TenCM from CM", cmbMaCM)
Private Sub cmdMaCM_Click() frmCM.Show vbModal
Private Sub cmdMaTDo_Click() frmTDo.Show vbModal
Set rs = New ADODB.Recordset rs.Open "Select * from NV order by MaNV asc", Conn, adOpenStatic, adLockOptimistic
Adding = False txtMaNV.Enabled = False txtDC.Enabled = False txtTenNV.Enabled = False txtDT.Enabled = False mskNS.Enabled = False cmbMaTDo.Enabled = False cmbMaCM.Enabled = False cmbGT.Enabled = False cmdLuu.Enabled = False cmdBoqua.Enabled = False cmdKetiep.Enabled = True cmdQuaylui.Enabled = True cmbGT.AddItem "Nam" cmbGT.AddItem "Nữ"
Call ResetValues cmdBoqua.Enabled = False cmdThem.Enabled = True cmdLuu.Enabled = False cmdXoa.Enabled = True cmdQuaylui.Enabled = True cmdKetiep.Enabled = True
Call DisplayData txtMaNV.Enabled = False
If MsgBox("Ban co muon ghi lai du lieu vua nhap khong?", vbYesNo + vbInformation, "Thong bao") = vbYes Then
If Len(Trim(txtMaNV.Text)) = 0 Then
MsgBox "Ban phai nhap ma Nhan vien!", vbInformation, "Thong bao" txtMaNV.SetFocus
'Kiem tra khoa xem da co chua neu chua co thi cho phep ghi vao
If rs.RecordCount 0 Then s = "Select MaNV from NV where MaNV='" & Trim(txtMaNV.Text) &
If CheckKey(s) And Adding Then
MsgBox " Ma Nhan vien nay da co, ban phai nhap ma khac!", vbOKOnly, "Thong bao" txtMaNV.SetFocus txtMaNV.Text = ""
If Len(Trim(txtTenNV.Text)) = 0 Then
MsgBox "Ban phai nhap ten Nhan vien!", vbInformation, "Thong bao" txtTenNV.SetFocus
If Len(Trim(txtDC.Text)) = 0 Then
MsgBox "Ban phai nhap Dia chi!", vbInformation, "Thong bao" txtDC.SetFocus
If Len(Trim(txtDT.Text)) = 0 Then
If MsgBox("Nhan vien nay co So Dien thoai lien lac khong?", vbYesNo, "Luu y") = vbNo Then txtDT.Text = "(Không có)"
MsgBox "Ban phai nhap So dien thoai!", vbInformation, "Thong bao" txtDT.SetFocus
If Len(Trim(cmbMaTDo.Text)) = 0 Then
MsgBox "Ban phai nhap Ten Trinh do cua Nhan vien!", vbInformation,
If Len(Trim(cmbMaCM.Text)) = 0 Then
MsgBox "Ban phai nhap Ten Chuyen mon cua Nhan vien!", vbInformation, "Thong bao" cmbMaCM.SetFocus
If Len(Trim(cmbGT.Text)) = 0 Then
MsgBox "Ban phai nhap Gioi tinh cua Nhan vien!", vbInformation,
MsgBox "Ban phai nhap vao Ngay sinh cua Nhan vien!", vbInformation, "Thong bao" mskNS.SetFocus
If Not IsDate(mskNS.Text) Then
MsgBox "Moi ban nhap lai Ngay sinh!", vbInformation, "Thong bao" mskNS.SetFocus mskNS.Mask = "##/##/##" mskNS.Text = " / / "
!MaTDo = GetFieldValues("Select MaTDo from TDo where TenTDo='" & cmbMaTDo.Text & " ' ")
!MaCM = GetFieldValues("Select MaCM from CM where
!MaTDo = GetFieldValues("Select MaTDo from TDo where TenTDo='" & cmbMaTDo.Text & " ' ")
!MaCM = GetFieldValues("Select MaCM from CM where
Adding = False cmdXoa.Enabled = True cmdThem.Enabled = True cmdBoqua.Enabled = False cmdKetiep.Enabled = False cmdQuaylui.Enabled = True cmdLuu.Enabled = False txtMaNV.Enabled = False
On Error GoTo errs cmdQuaylui.Enabled = True cmdLuu.Enabled = True
If Not rs.EOF Then rs.MoveNext
MsgBox "Day la ho so cuoi cung!", vbInformation, "Thong bao" rs.MoveLast cmdKetiep.Enabled = False
Call DisplayData txtMaNV.Enabled = False errs:
On Error GoTo errs cmdKetiep.Enabled = True cmdLuu.Enabled = True
If Not rs.BOF Then rs.MovePrevious
MsgBox "Day la ho so dau tien", vbInformation, "Thong bao" rs.MoveFirst cmdQuaylui.Enabled = False
Call DisplayData txtMaNV.Enabled = False errs:
Private Sub CmdThem_Click() cmdXoa.Enabled = False cmdBoqua.Enabled = True cmdLuu.Enabled = True cmdKetiep.Enabled = False cmdQuaylui.Enabled = False txtTenNV.Enabled = True txtDC.Enabled = True txtDT.Enabled = True mskNS.Enabled = True cmbGT.Enabled = True cmbMaTDo.Enabled = True cmbMaCM.Enabled = True
Call ResetValues txtMaNV.Enabled = True txtMaNV.SetFocus
Dim khanh As ADODB.Recordset
Set khanh = New ADODB.Recordset khanh.Open "Select MaNV from HDN ", Conn, adOpenStatic, adLockOptimistic cmdLuu.Enabled = False
If MsgBox("Ban co muon xoa ban ghi nay khong", vbYesNo,
If khanh.RecordCount 0 Then khanh.MoveFirst
Do While (Not khanh.EOF)
If khanh!MaNV = rs!MaNV Then
MsgBox "Ban ghi nay dang duoc dung tai bang HDN, khong xoa duoc!", vbInformation, "Thong bao"
If khanh!MaNV = rs!MaNV Then
MsgBox "Ban ghi nay dang duoc dung tai bang HDN, khong xoa duoc!", vbInformation, "Thong bao"
End If khanh.Open "Select MaNV from HDB ", Conn, adOpenStatic, adLockOptimistic
If khanh.RecordCount 0 Then khanh.MoveFirst
Do While (Not khanh.EOF)
If khanh!MaNV = rs!MaNV Then
MsgBox "Ban ghi nay dang duoc dung tai bang HDB, khong xoa duoc!", vbInformation, "Thong bao"
If khanh!MaNV = rs!MaNV Then
MsgBox "Ban ghi nay dang duoc dung tai bang HDB, khong xoa duoc!", vbInformation, "Thong bao"
MsgBox "Khong con ban ghi nao ca!", vbInformation, "Thong bao"
Private Sub Form_Unload(Cancel As Integer)
If MsgBox("Ban co muon ghi lai ban ghi vua nhap khong?", vbYesNo + vbInformation, "Thong bao") = vbYes Then
Sub ResetValues() txtMaNV.Text = "" txtTenNV.Text = "" txtDC.Text = "" txtDT.Text = "" cmbMaTDo.Text = "" cmbMaCM.Text = "" cmbGT.Text = "" mskNS.Mask = "##/##/##" mskNS.Text = " / / "
If EOF Or BOF Then Exit Sub txtMaNV.Text = !MaNV txtTenNV.Text = !TenNV cmbMaTDo.Text = GetFieldValues("Select TenTDo from TDo where MaTDo='" & !MaTDo & "'") cmbMaCM.Text = GetFieldValues("Select TenCM from CM where MaCM='" & !MaCM & "'") cmbGT.Text = !GT mskNS.Mask = "" mskNS.Text = !NS txtDC.Text = !DC txtDT.Text = !DT
Private Sub Grid1_Click() cmdLuu.Enabled = True cmdKetiep.Enabled = True cmdQuaylui.Enabled = True
If MsgBox("Dang o che do them moi, Chon OK de hien thi du lieu", vbOKCancel + vbInformation, "Thong bao") = vbCancel Then
Adding = False cmdBoqua.Enabled = False cmdThem.Enabled = True
End If txtMaNV.Enabled = False
Private Sub Grid1_KeyPress(KeyAscii As Integer)
Code của Danh sách khách hàng
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset rs.Open "Select * from Kh order by MaKh asc", Conn, adOpenStatic, adLockOptimistic
Adding = False txtMaKh.Enabled = False txtDC.Enabled = False txtTenKh.Enabled = False txtDT.Enabled = False cmdLuu.Enabled = False cmdBoqua.Enabled = False cmdKetiep.Enabled = True cmdQuaylui.Enabled = True
Call ResetValues cmdBoqua.Enabled = False cmdThem.Enabled = True cmdLuu.Enabled = False cmdXoa.Enabled = True cmdQuaylui.Enabled = True cmdKetiep.Enabled = True
Call DisplayData txtMaKh.Enabled = False
If MsgBox("Ban co muon ghi lai du lieu vua nhap khong?", vbYesNo + vbInformation, "Thong bao") = vbYes Then
If Len(Trim(txtMaKh.Text)) = 0 Then
MsgBox "Ban phai nhap ma Khach!", vbInformation, "Thong bao" txtMaKh.SetFocus
'Kiem tra khoa xem da co chua neu chua co thi cho phep ghi vao
If rs.RecordCount 0 Then s = "Select MaKh from Kh where MaKh='" & Trim(txtMaKh.Text) &
If CheckKey(s) And Adding Then
MsgBox " Ma Khach nay da co, ban phai nhap ma khac!", vbOKOnly, "Thong bao" txtMaKh.SetFocus txtMaKh.Text = ""
If Len(Trim(txtTenKh.Text)) = 0 Then
MsgBox "Ban phai nhap ten Khach!", vbInformation, "Thong bao" txtTenKh.SetFocus
If Len(Trim(txtDT.Text)) = 0 Then
If MsgBox("Khach nay co So Dien thoai lien lac khong?", vbYesNo,
"Luu y") = vbNo Then txtDT.Text = "(Không có)"
MsgBox "Ban phai nhap So dien thoai!", vbInformation, "Thong bao" txtDT.SetFocus
If Len(Trim(txtDC.Text)) = 0 Then
If MsgBox("Khach nay co de lai dia chi khong?", vbYesNo, "Luu y") vbNo Then txtDC.Text = "(Không có)"
MsgBox "Ban phai nhap Dia chi!", vbInformation, "Thong bao" txtDC.SetFocus
Adding = False cmdXoa.Enabled = True cmdThem.Enabled = True cmdBoqua.Enabled = False cmdKetiep.Enabled = False cmdQuaylui.Enabled = True cmdLuu.Enabled = False txtMaKh.Enabled = False
On Error GoTo errs cmdQuaylui.Enabled = True cmdLuu.Enabled = True
If Not rs.EOF Then rs.MoveNext
MsgBox "Day la ho so cuoi cung!", vbInformation, "Thong bao" rs.MoveLast cmdKetiep.Enabled = False
Call DisplayData txtMaKh.Enabled = False errs:
On Error GoTo errs cmdKetiep.Enabled = True cmdLuu.Enabled = True
If Not rs.BOF Then rs.MovePrevious
MsgBox "Day la ho so dau tien", vbInformation, "Thong bao" rs.MoveFirst cmdQuaylui.Enabled = False
Call DisplayData txtMaKh.Enabled = False errs:
Private Sub CmdThem_Click() cmdXoa.Enabled = False cmdBoqua.Enabled = True cmdLuu.Enabled = True cmdKetiep.Enabled = False cmdQuaylui.Enabled = False txtTenKh.Enabled = True txtDC.Enabled = True txtDT.Enabled = True
Call ResetValues txtMaKh.Enabled = True txtMaKh.SetFocus
Dim khanh As ADODB.Recordset
Set khanh = New ADODB.Recordset khanh.Open "Select MaKh from HDB ", Conn, adOpenStatic, adLockOptimistic cmdLuu.Enabled = False
If MsgBox("Ban co muon xoa ban ghi nay khong", vbYesNo,
If khanh.RecordCount 0 Then khanh.MoveFirst
Do While (Not khanh.EOF)
If khanh!MaKh = rs!MaKh Then
MsgBox "Ban ghi nay dang duoc dung tai bang HDB, khong xoa duoc!", vbInformation, "Thong bao"
If khanh!MaKh = rs!MaKh Then
MsgBox "Ban ghi nay dang duoc dung tai bang HDB, khong xoa duoc!", vbInformation, "Thong bao"
MsgBox "Khong con ban ghi nao ca!", vbInformation, "Thong bao"
Private Sub Form_Unload(Cancel As Integer)
If MsgBox("Ban co muon ghi lai ban ghi vua nhap khong?", vbYesNo + vbInformation, "Thong bao") = vbYes Then
Sub ResetValues() txtMaKh.Text = "" txtTenKh.Text = "" txtDC.Text = "" txtDT.Text = ""
If EOF Or BOF Then Exit Sub txtMaKh.Text = !MaKh txtTenKh.Text = !TenKh txtDC.Text = !DC txtDT.Text = !DT
Private Sub Grid1_Click() cmdLuu.Enabled = True cmdKetiep.Enabled = True cmdQuaylui.Enabled = True
If MsgBox("Dang o che do them moi, Chon OK de hien thi du lieu", vbOKCancel + vbInformation, "Thong bao") = vbCancel Then
Adding = False cmdBoqua.Enabled = False cmdThem.Enabled = True
End If txtMaKh.Enabled = False
Private Sub Grid1_KeyPress(KeyAscii As Integer)
Danh sách nhà cung cấp
Code của Danh sách nhà cung cấp:
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset rs.Open "Select * from NCC order by MaNCC asc", Conn, adOpenStatic, adLockOptimistic
Adding = False txtMaNCC.Enabled = False txtDC.Enabled = False txtTenNCC.Enabled = False txtDT.Enabled = False cmdLuu.Enabled = False cmdBoqua.Enabled = False cmdKetiep.Enabled = True cmdQuaylui.Enabled = True
Call ResetValues cmdBoqua.Enabled = False cmdThem.Enabled = True cmdLuu.Enabled = False cmdXoa.Enabled = True cmdQuaylui.Enabled = True cmdKetiep.Enabled = True
Call DisplayData txtMaNCC.Enabled = False
If MsgBox("Ban co muon ghi lai du lieu vua nhap khong?", vbYesNo + vbInformation, "Thong bao") = vbYes Then
If Len(Trim(txtMaNCC.Text)) = 0 Then
MsgBox "Ban phai nhap ma Nha cung cap!", vbInformation, "Thong bao" txtMaNCC.SetFocus
'Kiem tra khoa xem da co chua neu chua co thi cho phep ghi vao
If rs.RecordCount 0 Then s = "Select MaNCC from NCC where MaNCC='" &
If CheckKey(s) And Adding Then
MsgBox " Ma NCC nay da co, ban phai nhap ma khac!", vbOKOnly, "Thong bao" txtMaNCC.SetFocus txtMaNCC.Text = ""
If Len(Trim(txtTenNCC.Text)) = 0 Then
MsgBox "Ban phai nhap ten NCC!", vbInformation, "Thong bao" txtTenNCC.SetFocus
If Len(Trim(txtDT.Text)) = 0 Then
If MsgBox("NCC nay co So Dien thoai lien lac khong?", vbYesNo,
"Luu y") = vbNo Then txtDT.Text = "(Không có)"
MsgBox "Ban phai nhap So dien thoai!", vbInformation, "Thong bao" txtDT.SetFocus
If Len(Trim(txtDC.Text)) = 0 Then
If MsgBox("NCC nay co de lai dia chi khong?", vbYesNo, "Luu y") vbNo Then txtDC.Text = "(Không có)"
MsgBox "Ban phai nhap Dia chi!", vbInformation, "Thong bao" txtDC.SetFocus
Adding = False cmdXoa.Enabled = True cmdThem.Enabled = True cmdBoqua.Enabled = False cmdKetiep.Enabled = False cmdQuaylui.Enabled = True cmdLuu.Enabled = False txtMaNCC.Enabled = False
On Error GoTo errs cmdQuaylui.Enabled = True cmdLuu.Enabled = True
If Not rs.EOF Then rs.MoveNext
MsgBox "Day la ho so cuoi cung!", vbInformation, "Thong bao" rs.MoveLast cmdKetiep.Enabled = False
Call DisplayData txtMaNCC.Enabled = False errs:
On Error GoTo errs cmdKetiep.Enabled = True cmdLuu.Enabled = True
If Not rs.BOF Then rs.MovePrevious
MsgBox "Day la ho so dau tien", vbInformation, "Thong bao" rs.MoveFirst cmdQuaylui.Enabled = False
Call DisplayData txtMaNCC.Enabled = False errs:
Private Sub CmdThem_Click() cmdXoa.Enabled = False cmdBoqua.Enabled = True cmdLuu.Enabled = True cmdKetiep.Enabled = False cmdQuaylui.Enabled = False txtTenNCC.Enabled = True txtDC.Enabled = True txtDT.Enabled = True
Call ResetValues txtMaNCC.Enabled = True txtMaNCC.SetFocus
Dim khanh As ADODB.Recordset
Set khanh = New ADODB.Recordset khanh.Open "Select MaNCC from HDN ", Conn, adOpenStatic, adLockOptimistic cmdLuu.Enabled = False
If MsgBox("Ban co muon xoa ban ghi nay khong", vbYesNo,
If khanh.RecordCount 0 Then khanh.MoveFirst
Do While (Not khanh.EOF)
If khanh!MaNCC = rs!MaNCC Then
MsgBox "Ban ghi nay dang duoc dung tai bang HDN, khong xoa duoc!", vbInformation, "Thong bao"
If khanh!MaNCC = rs!MaNCC Then
MsgBox "Ban ghi nay dang duoc dung tai bang HDN, khong xoa duoc!", vbInformation, "Thong bao"
MsgBox "Khong con ban ghi nao ca!", vbInformation, "Thong bao"
Private Sub Form_Unload(Cancel As Integer)
If MsgBox("Ban co muon ghi lai ban ghi vua nhap khong?", vbYesNo + vbInformation, "Thong bao") = vbYes Then
Sub ResetValues() txtMaNCC.Text = "" txtTenNCC.Text = "" txtDC.Text = "" txtDT.Text = ""
If EOF Or BOF Then Exit Sub txtMaNCC.Text = !MaNCC txtTenNCC.Text = !TenNCC txtDC.Text = !DC txtDT.Text = !DT
Private Sub Grid1_Click() cmdLuu.Enabled = True cmdKetiep.Enabled = True cmdQuaylui.Enabled = True
If MsgBox("Dang o che do them moi, Chon OK de hien thi du lieu", vbOKCancel + vbInformation, "Thong bao") = vbCancel Then
Adding = False cmdBoqua.Enabled = False cmdThem.Enabled = True
End If txtMaNCC.Enabled = False
Private Sub Grid1_KeyPress(KeyAscii As Integer)
Tìm kiếm danh mục thuốc
Code của Tìm kiếm danh mục thuốc
Dim rsTimkiem As ADODB.Recordset
If (txtMaTh.Text = "") And (txtTenTh.Text = "") And (cmbNSX.Text "") And (mskNgayban.Text = " / / ") And (txtSoluong.Text = "") Then MsgBox "Ban phai chon tieu chi de tim kiem"
End If sql = "Select * from Hangban where True"
If cboMaHang.Text "" Then sql = sql & " and HangID = '" & cboMaHang.Text & "'"
If txtTenHang.Text "" Then sql = sql & " and TenHang = '" & txtTenHang.Text & "'"
If cboMaCL.Text "" Then sql = sql & " and ChatlieuID = '" & cboMaCL.Text & "'"
If mskNgayban.Text " / / " Then sql = sql & " and Ngayban = #" & mskNgayban.Text & "#"
If txtSoluong.Text "" Then sql = sql & " and Soluong = " & txtSoluong.Text
Set rsTimkiem = New ADODB.Recordset rsTimkiem.Open sql, Conn, adOpenStatic, adLockOptimistic
MsgBox "Khong tim thay ban ghi nao thoa man dieu kien"
Private Sub cmdTimlai_Click() cboMaHang.Text = "" txtTenHang.Text = "" mskNgayban.Mask = "##/##/##" mskNgayban.Text = " / / " txtSoluong.Text = "" cboMaCL.Text = "" lblTenCL.Caption = ""
Set Grid1.DataSource = Nothing ' Xoá dữ liệu cũ trong lưới
' Call FillCombo("Select HangID from Hangban order by HangID asc", cboMaHang)
'Call FillCombo("Select ChatlieuID from Chatlieu order by ChatlieuID asc", cboMaCL)
Columns(2).Caption = "Mã chất liệu"