Tài liệu Đề tài Tìm hiểu hệ thống thông tin quản lý bán hàng: Lời nói đầu
Trong những năm gần, đây ngành công nghệ thông tin đã phát triển như vũ bão, Thế kỷ 21 là thế kỷ công nghệ thông tin .Từ một nguồn tài nguyên tiềm tàng, thông tin đã trở thành một nguồn tài nguyên thực sự và nó đã trở thành một hàng hoá đặc biệt. Việc tận dụng nguồn tài nguyên này đã tạo nên một bước phát triển to lớn trong lực luợng xản suất, cơ sở hạ tầng, kinh tế xã hội, cấu trúc kinh tế ,cấu trúc lao động và cách thức quản lý kinh tế xã hội .
Trong lĩnh vực máy tính , những thành tựu về khoa học và công nghệ làm cho các sản phẩm máy tính ngày càng phát triển theo hướng hiện đại, chi phí thấp, khả năng tính toán nâng cao. Sự ra đời và phát triển của máy tính thực sự đã thở thành một cuộc cánh mạng vĩ đại. Chúng ta đã thấy Thông tin ngày càng phong phú đến mức không thể xử lý bằng phương pháp và công cụ cổ điển .Để xử lý được lượng thông tin lớn như vậy nghĩa là khai thác được nguồn tài nguyên quan trọng đó, đòi hỏi phải có những phương pháp và công cụ mới đó chính...
154 trang |
Chia sẻ: hunglv | Lượt xem: 1466 | Lượt tải: 1
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Tìm hiểu hệ thống thông tin quản lý bán hàng, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Lời nói đầu
Trong những năm gần, đây ngành công nghệ thông tin đã phát triển như vũ bão, Thế kỷ 21 là thế kỷ công nghệ thông tin .Từ một nguồn tài nguyên tiềm tàng, thông tin đã trở thành một nguồn tài nguyên thực sự và nó đã trở thành một hàng hoá đặc biệt. Việc tận dụng nguồn tài nguyên này đã tạo nên một bước phát triển to lớn trong lực luợng xản suất, cơ sở hạ tầng, kinh tế xã hội, cấu trúc kinh tế ,cấu trúc lao động và cách thức quản lý kinh tế xã hội .
Trong lĩnh vực máy tính , những thành tựu về khoa học và công nghệ làm cho các sản phẩm máy tính ngày càng phát triển theo hướng hiện đại, chi phí thấp, khả năng tính toán nâng cao. Sự ra đời và phát triển của máy tính thực sự đã thở thành một cuộc cánh mạng vĩ đại. Chúng ta đã thấy Thông tin ngày càng phong phú đến mức không thể xử lý bằng phương pháp và công cụ cổ điển .Để xử lý được lượng thông tin lớn như vậy nghĩa là khai thác được nguồn tài nguyên quan trọng đó, đòi hỏi phải có những phương pháp và công cụ mới đó chính là các giải về tin học.
Xã hội ngày càng phát triển thì nhu cầu ứng dụng tin học ngày càng lớn và ngược lại những thành tựu tin học sẽ tác động trở lại, tạo điều kiện phát triển nhanh chóng cho sản xuất và kinh doanh. Việc ứng dụng tin học là nhằm thực hiện tăng năng suất, hiệu quả trong việc xử lý thông tin phức tạp, trong quá trình nghiên cứu điều tra, điều khiển, các hoạt động quản lý kinh doanh…, tổ chức khai thác các hệ thống tin học ở mọi mức độ .
ứng dụng tin học trong công tác quản lý là một trong những hiệu quả của tin học nhằm giảm nhẹ đến mức tối đa sự tham gia của cơ bắp , tiết kiệm thời gian tìm kiếm thông tin, làm hẹp không gian lưu trữ, hệ thống hoá và cụ thể hoá lượng thông tin theo nhu cầu của người xử dụng .
Trong thời đại ngày nay tin học đã chứng tỏ được ưu thế của mình trong nền kinh tế quốc dân, nó đã thúc đẩy và hỗ trợ cho các ngành khác phát triển vượt bậc.
Cuối cùng tôi xin trân thành cảm ơn thầy giáo Đặng Thế Vinh đã tận tình giúp đỡ tôi trong quá trình thực tập và hoàn thiện đề tài này. Tôi cũng xin trân thành cảm ơn anh Phạm Văn Lộc phó giám đốc và toàn thể các anh lập trình viên đẫ tận tình giúp đỡ tôi và đóng góp những ý kiến quý báu và tạo mọi điều kiện về cơ sở vật chất kỹ thuật, thuận lợi cho tôi trong quá trình thực tập tại phòng phần mềm thuộc Công ty đầu tư và phát triển phần mềm kế toán Asia.
Chương I. Hệ thống thông tin quản lý Bán hàng
Các giai đoạn xây dựng hệ thống thông tin quản lý:
Việc xây dựng hệ thống thông tin quản lý bao gồm 7 giai đoạn. Mỗi giai đoạn bao gồm nhiều công đoạn khác nhau:
Giai đoạn 1: Đánh giá yêu câu:
Đánh giá yêu cầu có mục đích 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 hiệu quả và khả thi của một dự án xây dựng hệ thống thông tin quản lý.
Giai đoạn này gồm các công đoạn sau:
1 . Lập kế hoạch đánh gia yêu cầu.
2. Làm rõ yêu cầu.
3. Đánh giá khả năng thực thi.
4. Báo cáo đánh giá yêu cầu.
Giai đoạn 2: Phân tích chi tiết:
Nhằm hiểu rõ vấn đề đang nghiên cứu, xác định những nguyên nhân đích thực của vấn đề đó, xác định đòi hỏi và những giàng buộc áp đặt đối với hệ thống và xác định những mục tiêu mà hệ thống thông tin mới phải đạt được. Trên cơ sở nội dung báo cáo phân tích chi tiết sẽ quyết định tiếp tục tiến hành hay thôi phát triển hệ thống mới.
Giai đoạn này gồm các công đoạn sau:
1. Lập kế hoạch phân tích chi tiết.
2. Nghiên cứu môi trường của hệ thống đang tồn tại.
3. Nghiên cứu hệ thống thực tại.
4. Đưa ra chuẩn đoán và xác định các yếu tố giải pháp .
5. Đánh giá lại tính khả thi.
6. Thay đổi đề xuất dự án.
7. Báo cáo phân tích chi tiết.
Giai đoạn 3: Thiết kế logic
Giai đoạn này xác định tất cả các thành phần logic của một hệ thống thông tin, cho phép loại bỏ các vấn đề của hệ thống thực tế và cho phép đạt được những mục tiêu đã đặt ra ở giai đoạn trước.
Mô hình logic của hệ thống mới sẽ bao gồm thông tin mà hệ thống mới sẽ xản sinh ra, nội dung của Cơ sở dữ liệu, các sử lý và hợp thức hoá sẽ phải thực hiện và các dữ liệu sẽ được nhâp vào. Gồm các công đoạn sau:
1. Thiết kế cơ sở dữ liệu
2. Thiết kế sử lý
3 . Thiết kế các luồng dữ liệu vào.
4 . Chỉnh sửa tài liệu cho mức logic.
5 . Hợp thức hoá cho mô hình logic.
Giai đoạn 4: Đề xuất các phương án giải pháp.
Từ mô hình logic, chúng ta phải đưa ra các giải pháp khác nhau để cụ thể hoá mô hinh logic đó. Mỗi giải pháp là một mô phác hoạ của mô hình vật lý ngoài. ứng với mỗi phương án đều có các khuyến nghị cụ thể, phải có những phân tích về chi phí, lợi ích. Các công đoạn của giai đoạn này gồm:
1. Xác định các dàng buộc tin học và các giang buộc tổ chức.
2. Xây dựng các phương án của giải pháp.
3. Đánh giá các phương án của giải pháp.
4. Báo cáo các giai đoạn đó.
Giai đoạn 5: thiết kế vật lý ngoài.
Bao gồm tài liệu chứa tất cả các đặc trưng của hệ thống mới cần có và tài liệu dành cho người sử dụng mà nó mô tả cả phần thủ công và cả những giao diện với những phần tin học hoá. Gồm những công đoạn chính sau:
1. Lập kế hoạch thiết kế vật lý ngoài.
2. Thiết kế chi tiết các giao diện.
3. Thiết kế các cách thức tương tác với phần tin học hoá.
4. Thiết kế các thủ tục thủ công.
5. Báo cáo về thiết kế vật lý ngoài.
Giai đoạn 6: Triển khai kỹ thuật hệ thống: tin học hoá hệ thống thông tin.Các công đoạn chính của giai đoạn này gồm:
1. Lập kế hoạch thực hiện kỹ thuật
2. Thiết kế vật lý trong
3. Lập trình
4. Thử nghiệm hệ thống.
5. Chuẩn bị tài liệu
Giai đoạn 7: Cài đặt và khai thác hệ thống: đây là giai đoạn chuyển từ hệ thống cũ sang hệ thống mới. Giai đoạn này gồm các công đoạn sau:
1. Lập kế hoạch cài đặt.
2. Chuyển đổi.
3. Khai thác và bảo trì.
4. Đánh giá.
II.1 phân tích hệ thống thông tin quản lý bán hàng.
A . Mục đích:
Xây dựng chương trình cho phép quản lý và theo dõi công việc bán hàng của một trung tâm thương mại.
Yêu cầu :
Hệ thống sẽ được xây dựng để theo dõi quản lý bán hàng. Hiện tại hệ thống sẽ được thiết kế và cài dặt các chức năng sau:
+ Cho phép quản lý công việc bán hàng tự động.
+ Cho phép quản lý và tính toán giá trị hoá đơn.
+ Cung cấp các biểu mẫu tổng hợp và thống kê theo yêu cầu.
Hệ thống có thể được mở rộng một cách dễ dàng khi có sự thay đổi về môi trường, công cụ và yêu cầu quản lý mới.
C. Phân tích hệ thống thông tin quản lý bán hàng.
+ Mô tả hoạt động cũ của hệ thống, qua quan điểm xây dựng hệ thống mới
+ Phân tích hệ thống thành các hệ thống con để thiết kế và cài đặt
+ Xây dựng sơ đồ luồng giữ liệu diễn tả hoạt động của hệ thống
+ Xây dựng biểu đồ phân cấp chức năng của chương trình.
+ Xây dựng mô hình thực thể liên kết cho toàn hệ thống.
+ Thiết kế chi tiết cho hoạt động của từng chức năng.
Sau khi nghiên cứu thực tế tôi thấy hệ thống bao gồm:
- Quản lý công việc bán hàng.
- Theo dõi nắm bắt các thông tin về khách hàng và nhà cung cấp.
Lập các báo cáo.
II 2 . Thiết kế logic
Sơ đồ luồng giữ liệu
Sơ đồ dòng dữ liệu (DFD – Data Flow Diagram ) là một trong các công cụ quan trọng nhất trong việc phân tích hệ thống có cấu trúc. Nó đưa ra một phương pháp thiết lập quan hệ giữ chức năng hoặc quá trình của hệ thống với thông tin mà chúng sử dụng đó là một phần chủ chốt của đặc tả yêu cầu hệ thống, vì nó xác định thông tin nào phải có mặt trước khi quá trình được thực hiện.
Sơ đồ luồng giữ liệu ở mức tổng quát:
Yêu cầu
Mua hàng
Phòng bán hàng
Khách hàng
Kho hàng
Nhà cung cấp
Phòng kế toán
Báo cáo
Phòng giám đốc
Mô hình trên thể hiện sự trao đổi thông tin giữa hệ thống và các tác nhân bên ngoài. Luồng giữ liệu từ bên ngoài của hệ thống bao qồm các yêu cầu của ban lãnh đạo, các khối phòng liên quan. Luồng dữ liệu tạo ra bao gồm các báo cáo thống kê trả lời.
Sau khi đã có sơ đồ mức tổng quát và dựa vào yêu cầu mục đích của hệ thống ta có sơ đồ luồng giữ liệu phân giã chức năng như sau:
Khách hàng
Nhà cung cấp
Ban lãnh đạo,
khối phòng liên quan
Hệ thống
Báo cáo
Kho
Dữ
Liệu
Bán hàng
Mua hàng
Báo
Cáo
Yêu
Cầu
báo
cáo
Thu tiền
Bán hàng
YêuCầu
Trả
Lời
II3. Mô hình liên kết giữa các thực thể
Thực thể và các khoá
Qua quá trình khảo sát và chuẩn hoá ta có một số thực thể sau:
+ Nhóm hàng
Tên trường
Kiểu trường
Độ rộng
Mô tả
Manhom
Number
auto
Mã nhóm
Tên nhóm
Text
50
Tên nhóm
Mota
Mono
100
Mô tả nhóm
Hinhnhom
Text
150
Đường dẫn đến File hình
+Nhà cung cấp:
Tên trường
Kiểu trường
Độ rộng
Mô tả
Manhacc
Number
Auto
Mã nhà cung cấp
Tennhacc
Text
60
Tên nhà cung cấp
TenDT
Text
30
Tên đối tác
Chucdanh
Text
30
Chức danh đối tác
DiachiNcc
Mono
100
Địa chỉ
Thanhpho
Text
15
Thành phố
Vung
Text
15
Vùng
Mavung
Text
15
Mã vùng
NuocNcc
Text
15
Mã vùng
DienThoaiNcc
Number
10
Điện thoại
FaxNcc
Number
10
Fax
EmailNcc
Text
50
E-mail
WedsideNcc
Text
50
Wed side
+ Người gửi hàng
Tên trường
Kiểu trường
Độ rộng
Mô tả
MaNGui
Number
auto
Mã người gửi
TenCTYGui
Text
50
Tên cty gửi
Dienthoai
Number
10
Điện thoại
Fax
Number
10
Fax
Email
Text
50
E mail
Wedside
Text
50
wed side
+ Hàng hoá
Tên trường
Kiểu trường
Độ rộng
Mô tả
MaSP
Number
auto
Mã sản phẩm
TenSP
Text
50
Tên sản phẩm
NhaCCID
Number
50
Mã nhà cung cấp
NhomHHID
Number
50
Mã nhóm hàng hoá
Soluongtrong
Number
10
Số lượng trong đơn vị
Dongia
Currency
10
Đơn giá
SoDVtrongkho
Number
10
Số lượng trong kho
SoDVtrenHD
Number
10
Số Đv trên HD
MucDMBS
Number
10
Mức đặt mua bổ sung
Dinhchi
Logic
1
Đỉnht chỉ
+ Chi tiết hoá đơn:
Tên trường
Kiểu trường
Độ rộng
Mô tả
MaCTHD
Number
auto
Mã chi tiết hoá đơn
HoadonID
Number
auto
Mã hoá đơn
HanghoaID
Number
auto
Mã hàng hoá
Dongia
Currency
10
Đơn giá bán
Soluong
Number
10
Số lượng
Trietkhau
Number
3
Triết khấu
+Hoá đơn
Tên trường
Kiểu trường
Độ rộng
Mô tả
MaHD
Number
auto
Mã hoá đơn
NgayHD
Date/time
8
Ngày hoá đơn
NgayYC
Date/time
8
Ngày yêu cầu
Ngaygui
Date/time
8
Ngày gửi hàng
NguoibanID
Number
auto
Mã người bán
NGuiID
Number
auto
Mã người gửi
KhachID
Number
auto
Mã khách hàng
Cuocphi
Currency
10
Cước phí
TenCTYNgui
Text
50
Tên cty nhận
DiachiCTY
Text
50
Địa chỉ
Thanhpho
Text
15
Thành phố
Vungnhangui
Text
15
Vùng nhận gửi
Mavung
Text
15
Mã vùng
Quocgia
Text
15
Nước
+ Nhân viên bán hàng.
Tên trường
Kiểu trường
Độ rộng
Mô tả
MaNBan
Number
auto
Mã người bán
Ten
Text
20
Tên người bán
Ho
Text
20
Hộ người bán
Chucdanh
Text
30
Chức danh người bán
Bidanh
Text
20
Bí danh người bán
Ngaysinh
Date/time
8
Ngày sinh
Ngaynhanviec
Date/time
8
Ngày nhận việc
Baocaotoi
Text
40
Báo cáo tới
Diachi
Mono
100
Địa chỉ
Thanhpho
Text
15
Thành phố
Vung
Text
15
Vùng
Mavung
Text
15
Mã vùng
Nuoc
Text
15
Nước
DTnha
Number
10
Điện thoại riêng
Ghichu
Memo
100
Ghi chú
Email
Text
50
E-mail
Hinhanh
Text
100
Đường dẫn hình
+Khách hàng
Tên trường
Kiểu trường
Độ rộng
Mô tả
KhachhangID
Number
auto
Mã khách hàng
TenCty
Text
50
Tên công ty
TenDT
Text
50
Tên đối tác
ChucdanhDT
Text
50
Chức danh
Diachi
Memo
100
Địa chỉ
Thanhpho
Text
15
Thành phố
Vung
Text
15
Vùng
Mavung
Text
15
Mã vùng
Nuoc
Text
15
Nước
Dienthoai
Number
10
Điện thoại
Fax
Number
10
Fax
Wedside
Text
50
Wed side
Email
Text
50
E-mail
5. Chọn lựa cơ sở dữ liệu và môi trường phát triển
Do tính bảo mật của cơ sở dữ liệu lên môi trường đẻ phát triển phù hợp nhất đó là Oracle, SqlServer và môi trường phát triển visual basic.
Có thể nói Visual Basic là con đường nhanh nhất, đơn giản nhất và mạnh nhất để tạo những ứng dụng Windows nói chung và những ứng dụng Cơ sở dữ liệu nói riêng. Visual Basic cung cấp cho bạn một tập hợp các công cụ hoàn chỉnh để nhanh chóng phát triển các ứng dụng.
1)Visual Basic là gì?
Thành phần VISUAL nói đến các phương thức dùng để tạo giao diện đồ hoạ người dùng (GUI). Thay vì viết những dòng mã để mô tả vị trí và sự xuất hiện của các thành phần giao diện, ta chỉ cần thêm vào những đối tượng đã được định nghĩa từ trước ở vị trí nào đó trên màn hình.
Thành phần BASIC: nói đến ngôn ngữ BASIC (Beginners AllPurpose Symbolic Instruction Code) nói đến ngôn ngữ được dùng nhiều bởi các nhà lập trình hơn bất cứ một ngôn ngữ nào khác trong lich sử máy tính.Visual Basic được phát triển dần dần dựa trên ngôn ngữ BASIC, và bây giờ chứa đựng hàng trăm điều lệnh, hàm và từ khoá … có giao diện trực tiếp với giao diện đồ hoạ của Windows.
Ngôn ngữ lập trình Visual Basic không chỉ là Visual Basic. Hệ thống lập trình Visual Basic, những ứng dụng bao gồm Microsoft Excel, Misrosoft Access, nhiều ứng dụng Windows khác đều dùng một ngôn ngữ.
Visual Basic là một công cụ mạnh có thể đáp ứng mọi nhu cầu lập trình của chúng ta kể từ những ứng dụng nhỏ cho đến những ứng dụng mang tính hệ thống lớn và cả những ứng dụng qua mạng.
Những chức năng truy xuất dữ liệu cho phép chúng ta tạo ra những Cơ Sở dữ liệu.
Những kỹ thuật ActiveX cho phép ta dùng những chức năng được cung cấp từ các ứng dụng khác.
Khả năng Internet làm cho nó dễ dàng cung cấp cho việc thêm vào những tài liệu và ứng dụng qua Internet từ bên trong ứng dụng của bạn.
Tạo tập tin File.EXE thật sự.
2) Cấu trúc của một ứng dụng Visual Basic:
Một ứng dụng thật ra là một tập hợp các chỉ dẫn trực tiếp đến máy tính để thi hành một hay nhiều tác vụ. Cấu trúc của một ứng dụng là phương pháp trong đó các chỉ dẫn được tổ chức, được lưu trữ và thi hành theo một trình tự nhất định
3) Chúng ta có thể làm gì với Visual Basic 6.0.
Tạo giao diện người dùng.
Giao diện người dùng có lẽ là thành phần quan trọng nhất của một ứng dụng. Đối với người sử dụng thì giao diện chính là ứng dụng. ỉng dụng của chúng ta có được phổ biến hay không là phụ thuộc vào giao diện.
Sử dụng những điều khiển chuẩn của Visual Basic 6.0
Ta dùng những điều khiển để lấy thông tin ra, nhập thông tin vào và kết xuất thông tin. Những ứng dụng mà ta có thể dùng trong ứng dụng bao gồm hộp văn bản,nút lệnh, hộp danh sách,… Những điều khiển khác cho ta truy xuất những ứng dụng khác, xử dụng nó để xử lý dữ liệu theo thiết kế của các nhà thiết kế hệ thống.
Lập trình với những đối tượng.
Những đối tượng là thành phần chủ yếu để lập trình Visual Basic . những đối tượng có thể là FORM, những điều khiển hay Cơ sở dữ liệu.
Lập trình với phần hợp thành.
Chúng ta đôi khi xử dụng phần tính toán của Microsoft Excel trong ứng dụng Visual Basic 6.0, hay định dạng một tài liệu xử dụng thanh công cụ của Microsoft Word, hoặc lưu trữ và xử lý dữ liệu xử dụng Microsoft Access… tất cả những điều này có thể thực hiện được bằng cách xây dựng những ứng dụng của chúng ta bằng những thành phần ActiveX. Thêm vào đó, Visual Basic có thể giúp chúng ta tạo những điểu khiển ActiveX riêng.
Đáp ứng những sự kiện phím và chuột, sự kiện rê và thả.
Những ứng dụng Visual Basic có thể đáp ứng một số lượng lớn sự kiện chuột, bàn phím. Ví dụ FORM, hộp ảnh và những điều khiển ảnh có thể phát hiện vị trí con trỏ chuột có thể quyết định phím trái hay phím phải được nhấn,và có thể đáp ứng được những tổ hợp của phím chuột với phím Shift, Ctrl hay Alt. Sử dụng những điều khiển phím, ta có thể lập trình những điều khiển và FORM để đáp ứng các hành động phím hoặc phiên dịch bộ mã Ascii của ký tự.
Làm việc với văn bản và đồ hoạ.
Visual Basic cung cấp khả năng đồ hoạ và văn bản phức tạp trong ứng dụng Visual Basic. Những thuộc tính văn bản cỏ thể giúp ta nhấn mạnh các khái niệm quan trọng và các chi tiết cần quan tâm. Thêm vào đó Visual Basic cung cấp những khả năng đồ hoạ cho phép chúng ta linh động trong thiết kế, bao hàm các hình ảnh động băng cách hiển thị hang loạt các hình ảnh liên tiếp nhau.
Gỡ rối mã và quản lý lỗi.
Đôi khi có những lỗi xảy ra bên trong mã của ứng dụng.những lỗi nghiêm trọng có thể là nguyên nhân một ứng dụng không đáp ứng lệnh, thông thường yêu cầu người sử dụng khởi động lại ứng dụng và không lưu lại những gì mà ta đã làm. quá trình tìm lỗi và sửa lỗi gọi là gỡ rối. Visual Basic cung cấp nhiều công cụ giúp chúng ta có thể phân tích sự làm việc của ứng dụng. Những công cụ gỡ rối đặc biệt hữu ích trong việc tìm ra nguồn gốc lỗi chúng ta có thể dùng công cụ này để kiểm tra chương trình.
Sử lý ổ đĩa thư mục và File.
Khi lập trình trong Windows,Visual Basic giúp chúng ta lập trình những ứng dụng như: di chuyển, tạo mới, xoá thư mục và File, lấy thông tin và xử lý ổ đĩa.
Thiết kế cho việc thi hành và tính tương thích.
Visual Basic chia sẻ hầu hết những tính năng ngôn ngữ trong Visual Basic cho những ứng dụng Microsoft như: Microsoft Office.VBScript là tập hợp con của ngôn ngữ lập trình Visual Basic.
Phân phối những ứng dụng:
Sau khi đã tạo một ứng dụng Visual Basic, ta có thể tự do phân phối bất kỳ ứng dụng nào đã tạo bằng Visual Basic đến bất cứ ai dùng Microsoft Windows. Ta có thể phân phối ứng dụng trên đĩa, trên CD, qua mạng Internet hay Intranet.
Chính vì những thế mạnh đó của Visual Basic 6.0 tôi đã chọn ngôn ngữ này để phát triển ứng dụng: ” Hệ thống thông tin quản lý bán hàng.
Phần phụ lục
Một số giao diện
một số module chương trình
Option Explicit
Private Sub chkCay_Click()
With VSFlexGrid1BCBH
If chkCay.Value = False Then
.OutlineBar = flexOutlineBarNone
chkCay.Caption = "Không cây"
Else
.OutlineBar = flexOutlineBarComplete
chkCay.Caption = "Có cây"
End If
End With
End Sub
Private Sub chkDongke_Click()
If chkDongke.Value = False Then
VSFlexGrid1BCBH.GridLines = flexGridNone
chkDongke.Caption = "Không dòng"
Else
VSFlexGrid1BCBH.GridLines = flexGridFlat
chkDongke.Caption = "Có dòng"
End If
End Sub
Private Sub chkNenluoi_Click()
With VSFlexGrid1BCBH
If chkNenluoi.Value = False Then
.WallPaper = LoadPicture()
chkNenluoi.Caption = "Không nền"
Else
.WallPaper = imgNen
.WallPaperAlignment = flexPicAlignCenterCenter
chkNenluoi.Caption = "Có nền"
End If
End With
End Sub
Private Sub Form_Load()
Dim dong As Integer
Dim SQL As String
dong = 1
SQL = "Select Ten,Ho,NgayHD,HanghoaID,Soluong,Dongia,tblChitietHD.[Soluong]*tblChitietHD.[Dongia] as Thanhtien" & _
" From tblNhanvienbanhang,tblHoadon,tblChitietHD" & _
" Where tblNhanvienbanhang.[MaNBan]=tblHoadon.[NguoibanID]" & _
" And tblHoadon.[MaHD]=tblChitietHD.[HoadonID]" & _
" Order By Ten,Ho,NgayHD"
KhoitaoADODB SQL
With VSFlexGrid1BCBH
.Cols = 10
.FormatString = "Tính tổng|Tên nhân viên|Họ nhân viên|Ngày hoá đơn|Mã hàng hoá|Số lượng|Đơn giá| |Thành tiền"
.ColWidth(0) = 1500
.ColWidth(1) = 1900
.ColWidth(2) = 1900
.ColWidth(3) = 1300
.ColFormat(3) = "dd/mm/yy"
.ColWidth(7) = imgMuitentrai.Width
.ColWidth(9) = imgMuitentrai.Width
.GridLines = flexGridNone
'.Cell(flexcpPicture, 0, 0) = LoadPicture("C:\QLKH\GRAPHICS\BITMAPS\BC\Sum.bmp")
.Cell(flexcpPicture, 0, 0) = imgSum
.Cell(flexcpBackColor, 0, 0) = &HC0E0FF
End With
Do While rsado.EOF = False
With VSFlexGrid1BCBH
.Cell(flexcpText, dong, 1) = rsado.Fields("Ten").Value
.Cell(flexcpText, dong, 2) = rsado.Fields("Ho").Value
.Cell(flexcpText, dong, 3) = CStr(rsado.Fields("NgayHD").Value)
.Cell(flexcpText, dong, 4) = CStr(rsado.Fields("HanghoaID").Value)
.Cell(flexcpText, dong, 5) = CStr(rsado.Fields("Soluong").Value)
.Cell(flexcpText, dong, 6) = CStr(rsado.Fields("Dongia").Value)
.Cell(flexcpText, dong, 8) = CStr(rsado.Fields("Thanhtien").Value)
dong = dong + 1
rsado.MoveNext
End With
Loop
rsado.Close
With VSFlexGrid1BCBH
.OutlineCol = 0
.OutlineBar = flexOutlineBarComplete
.SubtotalPosition = flexSTAbove
.Subtotal flexSTClear
.Subtotal flexSTSum, 0, 8, "$", &HFFC0C0, vbBlack, True, "Tổng toàn bộ"
.Subtotal flexSTSum, 1, 8, "$", &HFFC0C0, vbBlack, True, "Tổng theo tên NV"
.Subtotal flexSTSum, 2, 8, "$", &HFFC0C0, vbBlack, True, "Tổng theo họ NV"
.Subtotal flexSTSum, 3, 8, "$", &HFFC0C0, vbBlack, False, "Tổng theo ngày"
.MergeCells = flexMergeRestrictColumns
.MergeCol(0) = True
.MergeCol(1) = True
.MergeCol(2) = True
.MergeCol(3) = True
End With
HienForm Me
End Sub
Private Sub Form_Unload(Cancel As Integer)
cnado.Close
Set cnado = Nothing
End Sub
Private Sub optTinhtoan_Click(Index As Integer)
Select Case Index
Case 0
With VSFlexGrid1BCBH
.OutlineCol = 0
.OutlineBar = flexOutlineBarComplete
.SubtotalPosition = flexSTAbove
.Subtotal flexSTClear
.Subtotal flexSTSum, 0, 8, "$", &HFFC0C0, vbBlack, True, "Tổng toàn bộ"
.Subtotal flexSTSum, 1, 8, "$", &HFFC0C0, vbBlack, True, "Tổng theo tên NV"
.Subtotal flexSTSum, 2, 8, "$", &HFFC0C0, vbBlack, True, "Tổng theo họ NV"
.Subtotal flexSTSum, 3, 8, "$", &HFFC0C0, vbBlack, False, "Tổng theo ngày"
End With
Case 1
With VSFlexGrid1BCBH
.OutlineCol = 0
.OutlineBar = flexOutlineBarComplete
.SubtotalPosition = flexSTAbove
.Subtotal flexSTClear
.Subtotal flexSTPercent, 0, 8, "%##.##", &HFFC0C0, vbBlack, True, "Phần trăm toàn bộ"
.Subtotal flexSTPercent, 1, 8, "%##.##", &HFFC0C0, vbBlack, True, "Phần trăn theo tên"
.Subtotal flexSTPercent, 2, 8, "%##.##", &HFFC0C0, vbBlack, True, "Phần trăm theo họ"
.Subtotal flexSTPercent, 3, 8, "%##.##", &HFFC0C0, vbBlack, False, "Phần trăm theo ngày"
End With
Case 2
With VSFlexGrid1BCBH
.OutlineCol = 0
.OutlineBar = flexOutlineBarComplete
.SubtotalPosition = flexSTAbove
.Subtotal flexSTClear
.Subtotal flexSTAverage, 0, 8, "$", &HFFC0C0, vbBlack, True, "TB toàn bộ"
.Subtotal flexSTAverage, 1, 8, "$", &HFFC0C0, vbBlack, True, "TB theo tên"
.Subtotal flexSTAverage, 2, 8, "$", &HFFC0C0, vbBlack, True, "TB theo họ"
.Subtotal flexSTAverage, 3, 8, "$", &HFFC0C0, vbBlack, False, "TB theo ngày"
End With
End Select
End Sub
Private Sub VSFlexGrid1BCBH_EnterCell()
With VSFlexGrid1BCBH
If .RowSel 0 Then
.Cell(flexcpPicture, .RowSel, 7) = imgMuitentrai
.Cell(flexcpPicture, .RowSel, 9) = imgMuitenphai
End If
End With
End Sub
Private Sub VSFlexGrid1BCBH_LeaveCell()
With VSFlexGrid1BCBH
.Cell(flexcpPicture, .RowSel, 7) = LoadPicture()
.Cell(flexcpPicture, .RowSel, 9) = LoadPicture()
End With
End Sub
Option Explicit
Private Sub cmdBCHang_Click()
rptDSSPham.Show
End Sub
Private Sub cmdBCHangTheoNhom_Click()
rptSphamTheoNhom.Show
End Sub
Private Sub cmdBCTheoNCC_Click()
rptDSSphamTheoNCC.Show
End Sub
Private Sub Form_Load()
Me.Top = frmLienket.Top + frmLienket.tabLienket.Top + frmLienket.imgMuiten1.Top
Me.Left = frmLienket.Left + frmLienket.imgMuiten1.Left - Me.Width
End Sub
Private Sub Form_Unload(Cancel As Integer)
frmLienket.imgMuiten1.Visible = False
End Sub
Option Explicit
Private GuiTT As String
Private SLTrenHD As Integer
Private DGTrenHD As Currency
Private TKTrenHD As Double
Private Sub cmdLuu_Click()
'Gọi thủ tục
KhoitaoControlsLucLuu Me
With dataCTHD.Recordset
.Fields("MaCTHD").Value = txtChiTietHDMa.Text
.Fields("HoadonID").Value = dbcboCTietHDmaHD.Text
.Fields("HanghoaID").Value = dbcboCTietHDmasp.Text
.Fields("Dongia").Value = meditChitietHDDgia.Text
.Fields("Soluong").Value = meditChitietHDSluong.Text
.Fields("Trietkhau").Value = meditChitietTrKhau.Text
.Update
End With
dataCTHD.Refresh
'Gọi thủ tục
dataCTHD.Recordset.MoveLast
Vohieuhoa Me
End Sub
Private Sub cmdThem_Click()
Dim SQLMatudong As String
SQLMatudong = "Select Max([MaCTHD]) as Lonnhat From tblChitietHD"
'Gọi thủ tục tạo data kết nối cho txtChitietHDma
Ketnoi dataMatudong, SQLMatudong
dataCTHD.Recordset.AddNew
'Gọi thủ tục khởi tạo Contrrols lúc thêm
KhoitaoControlsLucThem Me
If dataCTHD.Recordset.RecordCount = 0 Then
txtChiTietHDMa.Text = "1"
dataCTHD.Caption = "1"
Else
With dataMatudong
txtChiTietHDMa.Text = "" & .Recordset.Fields("Lonnhat").Value + 1
dataCTHD.Caption = "" & .Recordset.Fields("Lonnhat").Value + 1
End With
End If
dbcboCTietHDmaHD.SetFocus
lblChitietHDTenHD.Caption = ""
lblChitietHDTenSP.Caption = ""
lblChitietHDTT.Caption = ""
lblChitietHDTSauTK.Caption = ""
lblCTHDThueVAT.Caption = ""
lblCTHDThuclanh.Caption = ""
lblChitietTongcong.Caption = ""
lblMatudong.Visible = True
End Sub
Private Sub cmdXoa_Click()
If dataCTHD.Recordset.RecordCount > 0 Then
'Gọi thủ tục xoá
Xoa dataCTHD
dataCTHD.Recordset.MoveLast
Else
MsgBox "Không có dữ liệu để xoá", vbInformation, "Thông báo"
Exit Sub
End If
End Sub
Private Sub dataCTHD_Reposition()
On Error GoTo loi
Dim SQLHientenSP As String
Dim SL As Integer
Dim DG As Double
Dim TK As Double
SQLHientenSP = "Select TenSP" & _
" From tblSanpham" & _
" Where MaSP=" & dataCTHD.Recordset.Fields("HanghoaID").Value & ""
'Gọi thủ tục
Ketnoi dataHientenSP, SQLHientenSP
With dataHientenSP
lblChitietHDTenSP.Caption = "" & .Recordset.Fields("TenSP").Value
End With
With dataCTHD
.Caption = "" & .Recordset.Fields("MaCTHD").Value
SL = .Recordset.Fields("Soluong").Value
DG = .Recordset.Fields("Dongia").Value
TK = .Recordset.Fields("Trietkhau").Value
lblChitietHDTT.Caption = "" & ThanhTien(SL, DG) & " $"
lblChitietHDTSauTK.Caption = "" & TienSauTrietKhau(SL, DG, TK) & " $"
lblCTHDThueVAT.Caption = "" & TienSauTrietKhau(SL, DG, TK) * 0.1 & " $"
lblCTHDThuclanh.Caption = "" & ThucLanh(SL, DG, TK) & " $"
End With
loi:
End Sub
Private Sub dbcboCTietHDmaHD_KeyPress(KeyAscii As Integer)
PheChuanKeyPress dbcboCTietHDmaHD, KeyAscii
If KeyAscii = 13 Then
dbcboCTietHDmasp.SetFocus
End If
End Sub
Private Sub dbcboCTietHDmaHD_LostFocus()
BuocphaidienDL dbcboCTietHDmaHD, True
End Sub
Private Sub dbcboCTietHDmasp_Change()
On Error GoTo loi
Dim SQLThaydoiMaSP As String
SQLThaydoiMaSP = "Select TenSP" & _
" From tblSanpham" & _
" Where MaSP=" & dbcboCTietHDmasp.Text & ""
'Gọi thủ tục khởi tạo ADODB
KhoitaoADODB SQLThaydoiMaSP
With rsado
lblChitietHDTenSP.Caption = "" & .Fields("TenSP").Value
.Close
End With
loi:
End Sub
Private Sub dbcboCTietHDmasp_KeyPress(KeyAscii As Integer)
PheChuanKeyPress dbcboCTietHDmasp, KeyAscii
If KeyAscii = 13 Then
meditChitietHDDgia.SetFocus
End If
End Sub
Private Sub dbcboCTietHDmasp_LostFocus()
'Gọi thủ tục
BuocphaidienDL dbcboCTietHDmasp, True
End Sub
Private Sub Form_Load()
Dim SQLChitietHD As String
SQLChitietHD = "Select * From tblChitietHD Order By HoadonID"
'Gọi thủ tục tạo data kết nối nguồn dữ liệu
Ketnoi dataCTHD, SQLChitietHD
'Gọi thủ tục
HienForm Me
'Gọi thủ tục vô hiệu hoá những điều khiển không cần thiết
Vohieuhoa Me
optTron(2).Value = True
'Gọi thủ tục
CauhinhLuoiChinh VSFlexGrid1ChitietHD
'With VSFlexGrid1ChitietHD
' .OutlineBar = flexOutlineBarComplete
' .OutlineCol = 1
' .SubtotalPosition = flexSTAbove
'End With
End Sub
Private Sub Form_Unload(Cancel As Integer)
cnado.Close
Set cnado = Nothing
End Sub
Private Sub meditChitietHDDgia_KeyPress(KeyAscii As Integer)
PheChuanKeyPress meditChitietHDDgia, KeyAscii
If KeyAscii = 13 Then
meditChitietHDSluong.SetFocus
End If
End Sub
Private Sub meditChitietHDDgia_LostFocus()
BuocphaidienDL meditChitietHDDgia, True
End Sub
Private Sub meditChitietHDSluong_Change()
On Error GoTo loi
DGTrenHD = CCur(meditChitietHDDgia.Text)
SLTrenHD = CInt(meditChitietHDSluong.Text)
lblChitietHDTT.Caption = "" & ThanhTien(SLTrenHD, DGTrenHD) & " $"
loi:
End Sub
Private Sub meditChitietHDSluong_KeyPress(KeyAscii As Integer)
PheChuanKeyPress meditChitietHDSluong, KeyAscii
If KeyAscii = 13 Then
meditChitietTrKhau.SetFocus
End If
End Sub
Private Sub meditChitietHDSluong_LostFocus()
BuocphaidienDL meditChitietHDSluong, True
End Sub
Private Sub meditChitietTrKhau_Change()
On Error GoTo loi
'Sự kiện này xẩy ra sau khi điều khiển lostfocus
DGTrenHD = CCur(meditChitietHDDgia.Text)
SLTrenHD = CInt(meditChitietHDSluong.Text)
TKTrenHD = CDbl(meditChitietTrKhau.Text)
lblChitietHDTSauTK.Caption = "" & TienSauTrietKhau(SLTrenHD, DGTrenHD, TKTrenHD) & " $"
lblCTHDThueVAT.Caption = "" & TienSauTrietKhau(SLTrenHD, DGTrenHD, TKTrenHD) * 0.1 & " $"
lblCTHDThuclanh.Caption = "" & ThucLanh(SLTrenHD, DGTrenHD, TKTrenHD) & " $"
loi:
End Sub
Private Sub meditChitietTrKhau_KeyPress(KeyAscii As Integer)
PheChuanKeyPress meditChitietTrKhau, KeyAscii
If KeyAscii = 13 Then
cmdLuu.SetFocus
End If
End Sub
Private Sub meditChitietTrKhau_LostFocus()
BuocphaidienDL meditChitietTrKhau, True
End Sub
Private Sub optTron_Click(Index As Integer)
Select Case Index
Case 0
optTron(1).Value = False
optTron(2).Value = False
With VSFlexGrid1ChitietHD
.MergeCells = flexMergeRestrictColumns
.MergeCol(1) = True
.MergeCol(2) = False
End With
Case 1
optTron(0).Value = False
optTron(2).Value = False
With VSFlexGrid1ChitietHD
.MergeCells = flexMergeRestrictColumns
.MergeCol(2) = True
.MergeCol(1) = False
End With
Case Else
optTron(0).Value = False
optTron(1).Value = False
With VSFlexGrid1ChitietHD
.MergeCells = flexMergeNever
End With
End Select
End Sub
Private Sub VSFlexGrid1ChitietHD_AfterEdit(ByVal Row As Long, ByVal Col As Long)
On Error GoTo loi
With VSFlexGrid1ChitietHD
If (.Col 0) And (.Cell(flexcpText, .RowSel, .ColSel) GuiTT) Then
If MsgBox("Bạn có muốn lưu ô này vào trong CSDL hay không?", vbYesNo, "Thông báo") = vbNo Then
.Cell(flexcpText, .RowSel, .ColSel) = GuiTT
Exit Sub
Else
.Cell(flexcpForeColor, .RowSel, .ColSel) = vbRed
Exit Sub
End If
Else
Exit Sub
End If
End With
loi:
If Col = 0 Then
MsgBox "Bạn không thể thay đổi dữ liệu trên cột này.", vbInformation, "Thông báo"
With VSFlexGrid1ChitietHD
.Cell(flexcpForeColor, .RowSel, .ColSel) = vbBlack
End With
Exit Sub
End If
End Sub
Private Sub VSFlexGrid1ChitietHD_BeforeEdit(ByVal Row As Long, ByVal Col As Long, Cancel As Boolean)
With VSFlexGrid1ChitietHD
GuiTT = .Cell(flexcpText, .RowSel, .ColSel)
End With
End Sub
Private Sub VSFlexGrid1ChitietHD_EnterCell()
'Gọi thủ tục
VaoO VSFlexGrid1ChitietHD, Label1
End Sub
Private Sub VSFlexGrid1ChitietHD_LeaveCell()
'Gọi thủ tục
RoikhoiO VSFlexGrid1ChitietHD
End Sub
Private Sub VSFlexGrid1ChitietHD_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Gọi thủ tục
HienToolTipText VSFlexGrid1ChitietHD
End Sub
Option Explicit
Private Sub Form_Load()
Me.Top = frmLienket.Top
Me.Left = frmLienket.Left + frmLienket.cmdBCBHTheoQui.Left - Me.Width
End Sub
Private Sub optKieuDT_Click(Index As Integer)
Select Case Index
Case 0
optKieuDT(1).Value = False
msCharDothi.ChartType = VtChChartType2dBar
Case 1
optKieuDT(0).Value = False
msCharDothi.ChartType = VtChChartType3dBar
End Select
End Sub
Option Explicit
Private GuiTT As String
Private Sub cboHDNuocnhan_KeyPress(KeyAscii As Integer)
PheChuanKeyPress cboHDNuocnhan, KeyAscii
If KeyAscii = 13 Then
dbcboHDMaNgban.SetFocus
End If
End Sub
Private Sub cboHDNuocnhan_LostFocus()
BuocphaidienDL cboHDNuocnhan, True
End Sub
Private Sub cboHDThPhonhan_KeyPress(KeyAscii As Integer)
PheChuanKeyPress cboHDThPhonhan, KeyAscii
If KeyAscii = 13 Then
cboHDVungnhan.SetFocus
End If
End Sub
Private Sub cboHDThPhonhan_LostFocus()
BuocphaidienDL cboHDThPhonhan, True
End Sub
Private Sub cboHDVungnhan_KeyPress(KeyAscii As Integer)
PheChuanKeyPress cboHDVungnhan, KeyAscii
If KeyAscii = 13 Then
txtHDMaVungnhan.SetFocus
End If
End Sub
Private Sub cboHDVungnhan_LostFocus()
BuocphaidienDL cboHDVungnhan, True
End Sub
Private Sub cmdHDThemCTHD_Click()
frmChitietHD.Show
Me.Enabled = False
End Sub
Private Sub cmdLocnhanh_Click()
frmHDBanhangLoc.Show
End Sub
Private Sub cmdLuu_Click()
'Gọi thủ tục
KhoitaoControlsLucLuu Me
With dataHDBH.Recordset
.Fields("MaHD").Value = txtHDonMa.Text
If DTPickerHDNgayHD.Value = Now() Then
.Fields("NgayHD").Value = DTPickerHDNgayHD.Value
Else
MsgBox "Ngày hoá đơn phải là ngày:" & Now() & "", vbInformation, "Thông báo"
DTPickerHDNgayHD.SetFocus
cmdLuu.Enabled = True
Exit Sub
End If
If DTPicker1HDNgayYC >= Now() Then
.Fields("NgayYC").Value = DTPicker1HDNgayYC.Value
Else
MsgBox "Ngày yêu cầu phải sau ngày:" & Now() & "", vbInformation, "Thông báo"
DTPicker1HDNgayYC.SetFocus
cmdLuu.Enabled = True
Exit Sub
End If
If DTPicker1HDNgGui >= Now() Then
.Fields("Ngaygui").Value = DTPicker1HDNgGui.Value
Else
MsgBox "Ngày gửi phải sau ngày: " & Now() & "", vbInformation, "Thông báo"
DTPicker1HDNgGui.SetFocus
cmdLuu.Enabled = True
Exit Sub
End If
.Fields("NguoibanID").Value = dbcboHDMaNgban.Text
.Fields("NGuiID").Value = dbcboHDMaNgGui.Text
.Fields("KhachID").Value = dbcboHDMakhach.Text
.Fields("Cuocphi").Value = meditHDBHCuocphi.Text
.Fields("TenCtyNGui").Value = txtHDTenNgnhan.Text
.Fields("Thanhphonhangui").Value = cboHDThPhonhan.Text
.Fields("Vungnhangui").Value = cboHDVungnhan.Text
.Fields("Mavungnhangui").Value = txtHDMaVungnhan.Text
.Fields("Quocgianhangui").Value = cboHDNuocnhan.Text
.Update
End With
dataHDBH.Refresh
'Gọi thủ tục
Vohieuhoa Me
dataHDBH.Recordset.MoveLast
End Sub
Private Sub cmdThem_Click()
Dim SQLMatudong As String
SQLMatudong = "Select Max([MaHD]) as Lonnhat From tblHoadon"
'Gọi thủ tục tạo data kết nối cho txtHoadonMa
Ketnoi dataMatudong, SQLMatudong
dataHDBH.Recordset.AddNew
'Khởi tạo thuộc tính các Controls luc thêm DL
KhoitaoControlsLucThem Me
If dataHDBH.Recordset.RecordCount = 0 Then
txtHDonMa.Text = "1"
dataHDBH.Caption = "1"
Else
With dataMatudong
txtHDonMa.Text = "" & .Recordset.Fields("Lonnhat").Value + 1
dataHDBH.Caption = "" & .Recordset.Fields("Lonnhat").Value + 1
End With
End If
dbcboHDMakhach.SetFocus
lblHDonTenkhach.Caption = ""
rtxtHDDchiKH.Text = ""
lblHDTphoKH.Caption = ""
lblHDVungKH.Caption = ""
lblHDDThoaiKH.Caption = ""
lblHDFaxKH.Caption = ""
lblHDTenNgban.Caption = ""
lblHDTenNggui.Caption = ""
lblHDTienTongDT.Caption = ""
lblHDTienTongTK.Caption = ""
lblHDTienDTThuan.Caption = ""
lblHDBHThueVAT.Caption = ""
lblHDBHTDTsauthueVAT.Caption = ""
lblMatudong.Visible = True
End Sub
Private Sub cmdXoa_Click()
If dataHDBH.Recordset.RecordCount > 0 Then
If dataHDBHChitiet.Recordset.RecordCount > 0 Then
MsgBox "Bạn không thể xoá bản ghi này vì nó còn xuất hiện trên bảng con.", vbInformation, "Thông báo"
Exit Sub
Else
'Gọi thủ tục Xoa
Xoa dataHDBH
dataHDBH.Recordset.MoveLast
End If
Else
MsgBox "Không có dữ liệu để xoá.", vbInformation, "Thông báo"
Exit Sub
End If
End Sub
Private Sub dataHDBH_Reposition()
On Error GoTo loi
'---------------------------------------------------------------------------------
Dim SQLChitietHD As String
SQLChitietHD = "Select *" & _
" From tblChitietHD" & _
" Where HoadonID=" & dataHDBH.Recordset.Fields("MaHD").Value & ""
'Khởi tạo data kết nối
Ketnoi dataHDBHChitiet, SQLChitietHD
'---------------------------------------------------------------------------------
Dim SQLHientenKH As String
SQLHientenKH = "Select TenCty,Diachi,Thanhpho,Vung,Dienthoai,Fax" & _
" From tblKhachhang" & _
" Where KhachhangID=" & dataHDBH.Recordset.Fields("KhachID").Value & ""
Ketnoi dataHienTenKH, SQLHientenKH
With dataHienTenKH
lblHDonTenkhach.Caption = "" & .Recordset.Fields("TenCty").Value
rtxtHDDchiKH.Text = "" & .Recordset.Fields("Diachi").Value
lblHDTphoKH.Caption = "" & .Recordset.Fields("Thanhpho").Value
lblHDVungKH.Caption = "" & .Recordset.Fields("Vung").Value
lblHDDThoaiKH.Caption = "" & .Recordset.Fields("Dienthoai").Value
lblHDFaxKH.Caption = "" & .Recordset.Fields("Fax").Value
End With
'---------------------------------------------------------------------------------
Dim SQLHientenNVBH As String
SQLHientenNVBH = "Select Ho,Ten" & _
" From tblNhanvienbanhang" & _
" Where MaNBan=" & dataHDBH.Recordset.Fields("NguoibanID").Value & ""
Ketnoi dataHienTenNVBH, SQLHientenNVBH
With dataHienTenNVBH
lblHDTenNgban.Caption = "" & .Recordset.Fields("Ho").Value & " " & .Recordset.Fields("Ten").Value
End With
'---------------------------------------------------------------------------------
Dim SQLHientennguoigui As String
SQLHientennguoigui = "Select TenCtyGui" & _
" From tblNguoigui" & _
" Where MaNGui=" & dataHDBH.Recordset.Fields("NGuiID").Value & ""
Ketnoi dataHientenNguoigui, SQLHientennguoigui
With dataHientenNguoigui
lblHDTenNggui.Caption = "" & .Recordset.Fields("TenCtyGui").Value
End With
With VSFlexGrid1CTHD
.MergeCells = flexMergeRestrictColumns
.MergeCol(1) = True
End With
With dataHDBH
.Caption = "HD:" & .Recordset.Fields("MaHD").Value
End With
'---------------------------------------------------------------------------------
'Tính toán trên hoá đơn,kiểm tra nếu có chi tiết HD hay không
If dataHDBHChitiet.Recordset.RecordCount > 0 Then
Dim SQLTinhtoan As String
Dim DThuThuan As Currency
SQLTinhtoan = "Select HoadonID,Sum([Dongia]*[Soluong]) as TongDThu,Sum([Dongia]*[Soluong]*[Trietkhau]) as TongTK,TongDThu-TongTK as TongDTsauTK" & _
" From tblChitietHD" & _
" Group By HoadonID" & _
" Having HoadonID=" & dataHDBH.Recordset.Fields("MaHD").Value & ""
'Gọi thủ tục khởi tạo nguồn kết nối dữ liệu
KhoitaoADODB SQLTinhtoan
With rsado
DThuThuan = CCur(.Fields("TongDTsauTK").Value - dataHDBH.Recordset.Fields("Cuocphi").Value)
Frame6.Caption = "Tính toán hoá đơn: " & dataHDBH.Recordset.Fields("MaHD").Value
lblHDTienTongDT.Caption = "" & .Fields("TongDThu").Value & " $"
lblHDTienTongTK.Caption = "" & .Fields("TongTK").Value & " $"
lblHDTienDTThuan.Caption = "" & DThuThuan & " $"
lblHDBHThueVAT.Caption = "" & DThuThuan * 0.1 & " $"
lblHDBHTDTsauthueVAT.Caption = "" & DThuThuan * 0.9 & " $"
.Close
End With
Else
Frame6.Caption = "Chưa có chi tiết hoá đơn. "
lblHDTienTongDT.Caption = ""
lblHDTienTongTK.Caption = ""
lblHDTienDTThuan.Caption = ""
lblHDBHThueVAT.Caption = ""
lblHDBHTDTsauthueVAT.Caption = ""
End If
loi:
End Sub
Private Sub dbcboHDMakhach_Change()
'Cần bẫy lỗi khi trường KhachID trong bang tblHoadon co giá trị mặc định
'nếu trường này không có giá trị mặc định thì không cần bẫy lỗi
On Error GoTo loi
If dbcboHDMakhach.Text "" Then
Dim SQLThaydoimakhach As String
SQLThaydoimakhach = "Select TenCty,Diachi,Thanhpho,Vung,Dienthoai,Fax" & _
" From tblKhachhang" & _
" Where KhachhangID=" & dbcboHDMakhach.Text & ""
Ketnoi dataThaydoiMakhach, SQLThaydoimakhach
With dataThaydoiMakhach
lblHDonTenkhach.Caption = "" & .Recordset.Fields("TenCty").Value
rtxtHDDchiKH.Text = "" & .Recordset.Fields("Diachi").Value
lblHDTphoKH.Caption = "" & .Recordset.Fields("Thanhpho").Value
lblHDVungKH.Caption = "" & .Recordset.Fields("Vung").Value
lblHDDThoaiKH.Caption = "" & .Recordset.Fields("Dienthoai").Value
lblHDFaxKH.Caption = "" & .Recordset.Fields("Fax").Value
End With
Else
Exit Sub
End If
loi:
End Sub
Private Sub dbcboHDMakhach_KeyPress(KeyAscii As Integer)
PheChuanKeyPress dbcboHDMakhach, KeyAscii
If KeyAscii = 13 Then
txtHDTenNgnhan.SetFocus
End If
End Sub
Private Sub dbcboHDMakhach_LostFocus()
'Gọi thủ tục
BuocphaidienDL dbcboHDMakhach, True
End Sub
Private Sub dbcboHDMaNgban_Change()
On Error GoTo loi
If dbcboHDMaNgban.Text "" Then
Dim SQLThaydoiManguoiban As String
SQLThaydoiManguoiban = "Select Ho,Ten" & _
" From tblNhanvienbanhang" & _
" Where MaNBan=" & dbcboHDMaNgban.Text & ""
Ketnoi dataThaydoiManguoiban, SQLThaydoiManguoiban
With dataThaydoiManguoiban
lblHDTenNgban.Caption = "" & .Recordset.Fields("Ho").Value & " " & .Recordset.Fields("Ten").Value
End With
Else
Exit Sub
End If
loi:
End Sub
Private Sub dbcboHDMaNgban_KeyPress(KeyAscii As Integer)
PheChuanKeyPress dbcboHDMaNgban, KeyAscii
If KeyAscii = 13 Then
dbcboHDMaNgGui.SetFocus
End If
End Sub
Private Sub dbcboHDMaNgban_LostFocus()
BuocphaidienDL dbcboHDMaNgban, True
End Sub
Private Sub dbcboHDMaNgGui_Change()
On Error GoTo loi
If dbcboHDMaNgGui.Text "" Then
Dim SQLThaydoiMaNGui As String
SQLThaydoiMaNGui = "Select TenCtyGui" & _
" From tblNguoigui" & _
" Where MaNGui=" & dbcboHDMaNgGui.Text & ""
Ketnoi dataThaydoiMaNGui, SQLThaydoiMaNGui
With dataThaydoiMaNGui
lblHDTenNggui.Caption = "" & .Recordset.Fields("TenCtyGui").Value
End With
Else
Exit Sub
End If
loi:
End Sub
Private Sub dbcboHDMaNgGui_KeyPress(KeyAscii As Integer)
PheChuanKeyPress dbcboHDMaNgGui, KeyAscii
If KeyAscii = 13 Then
meditHDBHCuocphi.SetFocus
End If
End Sub
Private Sub dbcboHDMaNgGui_LostFocus()
BuocphaidienDL dbcboHDMaNgGui, True
End Sub
Private Sub Form_Load()
Dim SQLHoadonBH As String
SQLHoadonBH = "Select * From tblHoadon"
'Gọi thủ tục khởi tạo data kết nối
Ketnoi dataHDBH, SQLHoadonBH
'Gọi thủ tục
HienForm Me
'Gọi thủ tục
Vohieuhoa Me
'Gọi thủ tục khởi tạo cấu hình lưới
CauhinhLuoiChinh VSFlexGrid1HD
CauhinhLuoiPhu VSFlexGrid1CTHD
With cboHDThPhonhan
.AddItem "Hà Nội"
.AddItem "Hải Phòng"
.AddItem "Tp HCM"
.AddItem "Đà Nẵng"
.AddItem "Nam Định"
End With
With cboHDVungnhan
.AddItem "Bắc"
.AddItem "Trung"
.AddItem "Nam"
.AddItem "Hải đảo"
.AddItem "Miền Núi"
End With
With cboHDNuocnhan
.AddItem "Việt Nam"
.AddItem "Trung Quốc"
.AddItem "Thái Lan"
.AddItem "Indonesia"
.AddItem "Malaysia"
End With
End Sub
Private Sub Form_Unload(Cancel As Integer)
'cnado.Close
Set cnado = Nothing
End Sub
Private Sub meditHDBHCuocphi_KeyPress(KeyAscii As Integer)
PheChuanKeyPress meditHDBHCuocphi, KeyAscii
If KeyAscii = 13 Then
cmdLuu.SetFocus
End If
End Sub
Private Sub meditHDBHCuocphi_LostFocus()
BuocphaidienDL meditHDBHCuocphi, True
End Sub
Private Sub rtxtHDDchiNGNhan_KeyPress(KeyAscii As Integer)
PheChuanKeyPress rtxtHDDchiNGNhan, KeyAscii
End Sub
Private Sub rtxtHDDchiNGNhan_LostFocus()
BuocphaidienDL rtxtHDDchiNGNhan, True
End Sub
Private Sub txtHDMaVungnhan_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtHDMaVungnhan, KeyAscii
If KeyAscii = 13 Then
cboHDNuocnhan.SetFocus
End If
End Sub
Private Sub txtHDMaVungnhan_LostFocus()
BuocphaidienDL txtHDMaVungnhan, True
End Sub
Private Sub txtHDTenNgnhan_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtHDTenNgnhan, KeyAscii
If KeyAscii = 13 Then
rtxtHDDchiNGNhan.SetFocus
End If
End Sub
Private Sub txtHDTenNgnhan_LostFocus()
BuocphaidienDL txtHDTenNgnhan, True
End Sub
Private Sub VSFlexGrid1CTHD_EnterCell()
VaoO VSFlexGrid1CTHD, Label1
End Sub
Private Sub VSFlexGrid1CTHD_LeaveCell()
RoikhoiO VSFlexGrid1CTHD
End Sub
Private Sub VSFlexGrid1CTHD_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
HienToolTipText VSFlexGrid1CTHD
End Sub
Private Sub VSFlexGrid1HD_AfterEdit(ByVal Row As Long, ByVal Col As Long)
On Error GoTo loi
With VSFlexGrid1HD
If (.Col 0) And (.Cell(flexcpText, .RowSel, .ColSel) GuiTT) Then
If MsgBox("Bạn có muốn lưu ô này vào trong CSDL hay không?", vbYesNo, "Thông báo") = vbNo Then
.Cell(flexcpText, .RowSel, .ColSel) = GuiTT
Exit Sub
Else
.Cell(flexcpForeColor, .RowSel, .ColSel) = vbRed
End If
Else
Exit Sub
End If
End With
loi:
If Col = 0 Then
MsgBox "Bạn không thể thay đổi dữ liệu trên cột này.", vbInformation, "Thông báo"
With VSFlexGrid1HD
.Cell(flexcpForeColor, .RowSel, .ColSel) = vbBlack
End With
Exit Sub
End If
End Sub
Private Sub VSFlexGrid1HD_BeforeEdit(ByVal Row As Long, ByVal Col As Long, Cancel As Boolean)
With VSFlexGrid1HD
GuiTT = .Cell(flexcpText, .RowSel, .ColSel)
End With
End Sub
Private Sub VSFlexGrid1HD_EnterCell()
'Gọi thủ tục VaoO
VaoO VSFlexGrid1HD, Label1
End Sub
Private Sub VSFlexGrid1HD_LeaveCell()
'Gọi thủ tục RoiO
RoikhoiO VSFlexGrid1HD
End Sub
Private Sub VSFlexGrid1HD_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Gọi thủ tục HienToolTipText
HienToolTipText VSFlexGrid1HD
End Sub
Option Explicit
Private Sub cboMangLoc_KeyPress(Index As Integer, KeyAscii As Integer)
PheChuanKeyPress cboMangLoc(Index), KeyAscii
End Sub
Private Sub cboMangLoc_Validate(Index As Integer, Cancel As Boolean)
'Sự kiện này dùng để kiểm tra xem việc nhập liệu
'vào các điều khiển,nếu một điều khiển thoả mãn một điều kiện
'nào đó mà làm cho tham số Cancel=True thì ta sẽ không thể
'di chuyển sang một Control nào khác ngoại trừ Controls có
'thuộc tính CauseValidate là Fasle
If cboMangLoc(Index) "" Then
Cancel = True
MsgBox "Bạn chỉ có thể tìm kiếm theo một tiêu thức.", vbInformation, "Thông báo"
End If
End Sub
Private Sub cmdTimkiem_Click()
On Error GoTo loi
Dim cot As Integer
Dim dong As Integer
Dim SQLTKiemTheoCacTT As String
If cboMangLoc(0).Text "" Then
SQLTKiemTheoCacTT = "Select MaHD,NgayHD,NgayYC,Ngaygui,Cuocphi,HanghoaID,Dongia,Soluong,Trietkhau" & _
" From tblHoadon" & _
" Inner Join tblChitietHD" & _
" On tblHoadon.MaHD=tblChitietHD.HoadonID" & _
" Where MaHD=" & cboMangLoc(0).Text & ""
'Mệnh đề Having chỉ áp dụng cho SQL gộp nhóm
Ketnoi dataHDLoc, SQLTKiemTheoCacTT
If dataHDLoc.Recordset.RecordCount = 0 Then
MsgBox "Không tìm thấy hoá đơn có mã là: " & cboMangLoc(0).Text & "", vbInformation, "Thông tin"
cboMangLoc(0).SelStart = 0
cboMangLoc(0).SelLength = Len(cboMangLoc(0).Text)
Exit Sub
Else
lblKQTK.Visible = True
With VSFlexGridHDLoc
.MergeCells = flexMergeRestrictColumns
.MergeCol(0) = True
.Cell(flexcpBackColor, 1, 0) = &HFFC0C0
End With
End If
End If
'--------------------------------------------------------------------------------
If cboMangLoc(1).Text "" Then
SQLTKiemTheoCacTT = "Select TenCty,Diachi,Thanhpho,Vung,Nuoc,Dienthoai,Fax,Wedside,Email,NgayHD,NgayYC,Ngaygui,Cuocphi" & _
" From tblKhachhang" & _
" Inner Join tblHoadon" & _
" On tblKhachhang.KhachhangID=tblHoadon.KhachID" & _
" Where TenCty='" & cboMangLoc(1).Text & "'"
Ketnoi dataHDLoc, SQLTKiemTheoCacTT
If dataHDLoc.Recordset.RecordCount = 0 Then
MsgBox "Không tìm thấy hoá đơn có khách hàng là: " & cboMangLoc(1).Text & "", vbInformation, "Thông tin"
cboMangLoc(1).SelStart = 0
cboMangLoc(1).SelLength = Len(cboMangLoc(1).Text)
Exit Sub
Else
lblKQTK.Visible = True
With VSFlexGridHDLoc
.MergeCells = flexMergeRestrictColumns
For cot = 0 To 8
.MergeCol(cot) = True
Next cot
'.ColFormat(5) = "(###)###-#####"
.Cell(flexcpBackColor, 1, 0) = &HFFC0C0
End With
End If
End If
'--------------------------------------------------------------------------------
If cboMangLoc(2).Text "" Then
SQLTKiemTheoCacTT = "Select Ho,Ten,Diachi,DTNha,Email,NgayHD,NgayYC,Ngaygui,Cuocphi" & _
" From tblNhanvienbanhang" & _
" Inner Join tblHoadon" & _
" On tblNhanvienbanhang.[MaNBan]=tblHoadon.[NguoibanID]" & _
" Where Ten='" & cboMangLoc(2).Text & "'"
Ketnoi dataHDLoc, SQLTKiemTheoCacTT
If dataHDLoc.Recordset.RecordCount = 0 Then
MsgBox "Không tìm thấy hoá đơn có người bán là: " & cboMangLoc(2).Text & "", vbInformation, "Thông báo"
cboMangLoc(2).SelStart = 0
cboMangLoc(2).SelLength = Len(cboMangLoc(2).Text)
Exit Sub
Else
lblKQTK.Visible = True
With VSFlexGridHDLoc
.MergeCells = flexMergeRestrictColumns
For cot = 0 To 4
.MergeCol(cot) = True
Next cot
.Cell(flexcpBackColor, 1, 1) = &HFFC0C0
End With
End If
End If
'--------------------------------------------------------------------------------
If cboMangLoc(3).Text "" Then
SQLTKiemTheoCacTT = "Select TenCtyGui,Dienthoai,Fax,Email,Wedside,NgayHD,NgayYC,Ngaygui,TenCtyNGui as Noinhan,DiachiCtyNGui as Diachinhan,Cuocphi" & _
" From tblNguoigui" & _
" Inner Join tblHoadon" & _
" On tblNguoigui.[MaNGui]=tblHoadon.[NGuiID]" & _
" Where TenCtyGui='" & cboMangLoc(3).Text & "'"
Ketnoi dataHDLoc, SQLTKiemTheoCacTT
If dataHDLoc.Recordset.RecordCount = 0 Then
MsgBox "Không tìm thấy hoá đơn mà có người gửi là: " & cboMangLoc(3).Text & "", vbInformation, "Thông báo"
cboMangLoc(3).SelStart = 0
cboMangLoc(3).SelLength = Len(cboMangLoc(3).Text)
Exit Sub
Else
lblKQTK.Visible = True
With VSFlexGridHDLoc
.MergeCells = flexMergeRestrictColumns
For cot = 0 To 4
.MergeCol(cot) = True
Next cot
.Cell(flexcpBackColor, 1, 0) = &HFFC0C0
End With
End If
End If
'--------------------------------------------------------------------------------
If cboMangLoc(4).Text "" Then
SQLTKiemTheoCacTT = "Select *" & _
" From tblHoadon" & _
" Where Month(tblHoadon.[NgayHD])=" & Right$(cboMangLoc(4).Text, Len(cboMangLoc(4).Text) - Len("Tháng")) & ""
Ketnoi dataHDLoc, SQLTKiemTheoCacTT
If dataHDLoc.Recordset.RecordCount = 0 Then
MsgBox "Không tìm thấy hoá đơn trong " & cboMangLoc(4).Text & "", vbInformation, "Thông báo"
cboMangLoc(4).SelStart = 0
cboMangLoc(4).SelLength = Len(cboMangLoc(4).Text)
Exit Sub
Else
lblKQTK.Visible = True
With VSFlexGridHDLoc
.MergeCells = flexMergeRestrictColumns
.MergeCol(1) = True
For dong = 1 To .Rows
.Cell(flexcpBackColor, dong, 1) = &HFFC0C0
Next dong
End With
End If
End If
loi:
End Sub
Private Sub Form_Load()
Dim i As Integer
Dim SQLMaHD As String
Dim SQLTenKH As String
Dim SQLTenNVBH As String
Dim SQLTenNGui As String
SQLMaHD = "Select MaHD From tblHoadon"
SQLTenKH = "Select TenCty From tblKhachhang"
SQLTenNVBH = "Select Ten From tblNhanvienbanhang"
SQLTenNGui = "Select TenCtyGui From tblNguoigui"
'--------------------------------------------------------------------------------
KhoitaoADODB SQLMaHD
With rsado
Do Until .EOF = True
cboMangLoc(0).AddItem .Fields("MaHD").Value
.MoveNext
Loop
.Close
End With
'--------------------------------------------------------------------------------
KhoitaoADODB SQLTenKH
With rsado
Do While .EOF = False
cboMangLoc(1).AddItem .Fields("TenCty").Value
.MoveNext
Loop
.Close
End With
'--------------------------------------------------------------------------------
KhoitaoADODB SQLTenNVBH
With rsado
Do While .EOF = False
cboMangLoc(2).AddItem .Fields("Ten").Value
.MoveNext
Loop
.Close
End With
'--------------------------------------------------------------------------------
KhoitaoADODB SQLTenNGui
With rsado
Do Until .EOF = True
cboMangLoc(3).AddItem .Fields("TenCtyGui").Value
.MoveNext
Loop
.Close
End With
'--------------------------------------------------------------------------------
With cboMangLoc(4)
For i = 1 To 12
.AddItem "Tháng " & i
Next i
End With
'Gọi thủ tục
HienForm Me
CauhinhLuoiPhu VSFlexGridHDLoc
End Sub
Private Sub Form_Unload(Cancel As Integer)
cnado.Close
Set cnado = Nothing
End Sub
Option Explicit
Private GuiTT As String
Private Sub cboKhachhangNuoc_KeyPress(KeyAscii As Integer)
PheChuanKeyPress cboKhachhangNuoc, KeyAscii
If KeyAscii = 13 Then
txtKhachhangDThoai.SetFocus
End If
End Sub
Private Sub cboKhachhangNuoc_LostFocus()
BuocphaidienDL cboKhachhangNuoc, True
End Sub
Private Sub cboKhachhangTpho_KeyPress(KeyAscii As Integer)
PheChuanKeyPress cboKhachhangTpho, KeyAscii
If KeyAscii = 13 Then
txtKhachhangMavung.SetFocus
End If
End Sub
Private Sub cboKhachhangTpho_LostFocus()
BuocphaidienDL cboKhachhangTpho, True
End Sub
Private Sub cboKhachhangVung_KeyPress(KeyAscii As Integer)
PheChuanKeyPress cboKhachhangVung, KeyAscii
If KeyAscii = 13 Then
cboKhachhangTpho.SetFocus
End If
End Sub
Private Sub cboKhachhangVung_LostFocus()
BuocphaidienDL cboKhachhangVung, True
End Sub
Private Sub cmdLocnhanh_Click()
frmKhachhangLoc.Show
End Sub
Private Sub cmdLuu_Click()
'Gọi hàm Khởi tạo lúc Luu
KhoitaoControlsLucLuu Me
With dataKhachhang.Recordset
.Fields("KhachhangID").Value = txtKhachhangMa.Text
.Fields("TenCty").Value = txtKhachhanhTenCty.Text
.Fields("TenDT").Value = txtKhachhangTenDTac.Text
.Fields("ChucdanhDT").Value = txtKhachhangCDDT.Text
.Fields("Diachi").Value = rtxtKhachhangDchi.Text
.Fields("Thanhpho").Value = cboKhachhangTpho.Text
.Fields("Vung").Value = cboKhachhangVung.Text
.Fields("Mavung").Value = txtKhachhangMavung.Text
.Fields("Nuoc").Value = cboKhachhangNuoc.Text
.Fields("Dienthoai").Value = txtKhachhangDThoai.Text
.Fields("Fax").Value = txtKhachhangFax.Text
.Fields("Wedside").Value = txtKhachhangSide.Text
.Fields("Email").Value = txtKhachhangE_mail.Text
.Update
End With
dataKhachhang.Refresh
'Gọi thủ tục Vohieuhoa
dataKhachhang.Recordset.MoveLast
Vohieuhoa Me
End Sub
Private Sub cmdThem_Click()
Dim SQLMatudong As String
SQLMatudong = "Select Max([KhachhangID]) as Lonnhat From tblKhachhang"
'Gọi thủ tục tạo nguồn kết nối cho txtKhachhangMa
Ketnoi dataMatudong, SQLMatudong
dataKhachhang.Recordset.AddNew
'Gọi hàm khởi tạo lúc Them
KhoitaoControlsLucThem Me
If dataKhachhang.Recordset.RecordCount = 0 Then
txtKhachhangMa.Text = "1"
dataKhachhang.Caption = "1"
Else
With dataMatudong
txtKhachhangMa.Text = "" & .Recordset.Fields("Lonnhat").Value + 1
dataKhachhang.Caption = "" & .Recordset.Fields("Lonnhat").Value + 1
End With
End If
lblMatudong.Visible = True
txtKhachhanhTenCty.SetFocus
End Sub
Private Sub cmdXoa_Click()
If dataKhachhang.Recordset.RecordCount > 0 Then
If dataKhachhangCtietHD.Recordset.RecordCount > 0 Then
MsgBox "Bạn không thể xoá bản ghi này vì nó còn xuất hiện trong bảng con.", vbInformation, "Thông báo"
Exit Sub
Else
'Gọi thủ tục xoá
Xoa dataKhachhang
dataKhachhang.Recordset.MoveLast
End If
Else
MsgBox "Không có dữ liệu để xoá", vbInformation, "Thông báo"
Exit Sub
End If
End Sub
Private Sub dataKhachhang_Reposition()
On Error GoTo loi
Dim SQLKhachhangCtietHD As String
SQLKhachhangCtietHD = "Select *" & _
" From tblHoadon" & _
" Where KhachID=" & dataKhachhang.Recordset.Fields("KhachhangID").Value & ""
'Goi thủ tục khởi tạo nguồn dữ liệu cho lưới phụ
Ketnoi dataKhachhangCtietHD, SQLKhachhangCtietHD
With dataKhachhang
.Caption = "" & .Recordset.Fields("KhachhangID").Value
End With
With VSFlexGridKhachhangCTiet
.MergeCells = flexMergeRestrictColumns
.MergeCol(6) = True
End With
loi:
End Sub
Private Sub Form_Load()
Dim SQLKhachhang As String
SQLKhachhang = "Select * From tblKhachhang Order By Nuoc,Thanhpho"
'Gọi thủ tục tạo data kết nối với nguồn dữ liệu
Ketnoi dataKhachhang, SQLKhachhang
'Gọi thủ tục hiện Form
HienForm Me
'Gọi thủ tục khởi tạo các điều khiển không cần thiết
Vohieuhoa Me
optTronDL(1).Value = True
'Gọi thủ tục cấu hình cho lưới
CauhinhLuoiChinh VSFlexGridKhachhang
CauhinhLuoiPhu VSFlexGridKhachhangCTiet
With cboKhachhangTpho
.AddItem "Hà Nội"
.AddItem "Hải Phòng"
.AddItem "Tp HCM"
.AddItem "Đà Nẵng"
.AddItem "Nam Định"
End With
With cboKhachhangVung
.AddItem "Bắc"
.AddItem "Trung"
.AddItem "Nam"
.AddItem "Hải đảo"
.AddItem "Miền Núi"
End With
With cboKhachhangNuoc
.AddItem "Việt Nam"
.AddItem "Trung Quốc"
.AddItem "Thái Lan"
.AddItem "Indonesia"
.AddItem "Malaysia"
End With
End Sub
Private Sub optTronDL_Click(Index As Integer)
Select Case Index
Case 0
optTronDL(1).Value = False
With VSFlexGridKhachhang
.MergeCells = flexMergeRestrictColumns
.MergeCol(8) = True
End With
Case 1
optTronDL(0).Value = False
With VSFlexGridKhachhang
.MergeCells = flexMergeNever
End With
Case Else
End Select
End Sub
Private Sub rtxtKhachhangDchi_KeyPress(KeyAscii As Integer)
PheChuanKeyPress rtxtKhachhangDchi, KeyAscii
End Sub
Private Sub rtxtKhachhangDchi_LostFocus()
BuocphaidienDL rtxtKhachhangDchi, True
End Sub
Private Sub txtKhachhangCDDT_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtKhachhangCDDT, KeyAscii
If KeyAscii = 13 Then
rtxtKhachhangDchi.SetFocus
End If
End Sub
Private Sub txtKhachhangCDDT_LostFocus()
BuocphaidienDL txtKhachhangCDDT, True
End Sub
Private Sub txtKhachhangDThoai_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtKhachhangDThoai, KeyAscii
If KeyAscii = 13 Then
txtKhachhangFax.SetFocus
End If
End Sub
Private Sub txtKhachhangDThoai_LostFocus()
BuocphaidienDL txtKhachhangDThoai, True
End Sub
Private Sub txtKhachhangE_mail_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtKhachhangE_mail, KeyAscii
If KeyAscii = 13 Then
txtKhachhangSide.SetFocus
End If
End Sub
Private Sub txtKhachhangE_mail_LostFocus()
BuocphaidienDL txtKhachhangE_mail, False
End Sub
Private Sub txtKhachhangFax_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtKhachhangFax, KeyAscii
If KeyAscii = 13 Then
txtKhachhangE_mail.SetFocus
End If
End Sub
Private Sub txtKhachhangFax_LostFocus()
BuocphaidienDL txtKhachhangFax, True
End Sub
Private Sub txtKhachhangMa_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtKhachhangMa, KeyAscii
If KeyAscii = 13 Then
txtKhachhanhTenCty.SetFocus
End If
End Sub
Private Sub txtKhachhangMavung_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtKhachhangMavung, KeyAscii
If KeyAscii = 13 Then
cboKhachhangNuoc.SetFocus
End If
End Sub
Private Sub txtKhachhangMavung_LostFocus()
BuocphaidienDL txtKhachhangMavung, True
End Sub
Private Sub txtKhachhangSide_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtKhachhangSide, KeyAscii
If KeyAscii = 13 Then
cmdLuu.SetFocus
End If
End Sub
Private Sub txtKhachhangSide_LostFocus()
BuocphaidienDL txtKhachhangSide, False
End Sub
Private Sub txtKhachhangTenDTac_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtKhachhangTenDTac, KeyAscii
If KeyAscii = 13 Then
txtKhachhangCDDT.SetFocus
End If
End Sub
Private Sub txtKhachhangTenDTac_LostFocus()
BuocphaidienDL txtKhachhangTenDTac, True
End Sub
Private Sub txtKhachhanhTenCty_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtKhachhanhTenCty, KeyAscii
If KeyAscii = 13 Then
txtKhachhangTenDTac.SetFocus
End If
End Sub
Private Sub txtKhachhanhTenCty_LostFocus()
BuocphaidienDL txtKhachhanhTenCty, True
End Sub
Private Sub VSFlexGridKhachhang_AfterEdit(ByVal Row As Long, ByVal Col As Long)
On Error GoTo loi
With VSFlexGridKhachhang
If (.Col 0) And (.Cell(flexcpText, .RowSel, .ColSel) GuiTT) Then
If MsgBox("Bạn có muốn lưu ô này vào trong CSDL hay không?", vbYesNo, "Thông báo") = vbNo Then
.Cell(flexcpText, .RowSel, .ColSel) = GuiTT
Exit Sub
Else
.Cell(flexcpForeColor, .RowSel, .ColSel) = vbRed
End If
Else
Exit Sub
End If
End With
loi:
If Col = 0 Then
MsgBox "Bạn không thể thay đổi dữ liệu trên cột này.", vbInformation, "Thông báo"
With VSFlexGridKhachhang
.Cell(flexcpForeColor, .RowSel, .ColSel) = vbBlack
End With
Exit Sub
End If
End Sub
Private Sub VSFlexGridKhachhang_BeforeEdit(ByVal Row As Long, ByVal Col As Long, Cancel As Boolean)
With VSFlexGridKhachhang
GuiTT = .Cell(flexcpText, .RowSel, .ColSel)
End With
End Sub
Private Sub VSFlexGridKhachhang_EnterCell()
'Gọi thủ tục
VaoO VSFlexGridKhachhang, Label1
End Sub
Private Sub VSFlexGridKhachhang_LeaveCell()
'Gọi thủ tục
RoikhoiO VSFlexGridKhachhang
End Sub
Private Sub VSFlexGridKhachhang_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Gọi thủ tục
HienToolTipText VSFlexGridKhachhang
End Sub
Private Sub VSFlexGridKhachhangCTiet_EnterCell()
VaoO VSFlexGridKhachhangCTiet, Label1
End Sub
Private Sub VSFlexGridKhachhangCTiet_LeaveCell()
RoikhoiO VSFlexGridKhachhangCTiet
End Sub
Private Sub VSFlexGridKhachhangCTiet_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
HienToolTipText VSFlexGridKhachhangCTiet
End Sub
Private Sub cmdTimkiem_Click()
On Error GoTo loi
Dim SQLTimkiemKH As String
If cboKhachhangLocMa.Text = "Tất cả" Then
SQLTimkiemKH = "Select * From tblKhachhang"
Else
SQLTimkiemKH = "Select *" & _
" From tblKhachhang" & _
" Where KhachhangID=" & cboKhachhangLocMa.Text & ""
End If
Ketnoi dataKhachhangLoc, SQLTimkiemKH
If dataKhachhangLoc.Recordset.RecordCount = 0 Then
MsgBox "Không tìm thấy khách hàng có mã: " & cboKhachhangLocMa.Text & "", vbInformation, "Thông báo"
cboKhachhangLocMa.SelStart = 0
cboKhachhangLocMa.SelLength = Len(cboKhachhangLocMa.Text)
Exit Sub
Else
lblKQTK.Visible = True
End If
loi:
End Sub
Private Sub Form_Load()
Dim SQL As String
SQL = "Select KhachhangID From tblKhachhang"
HienForm Me
CauhinhLuoiPhu VSFlexGridKhachhangLoc
KhoitaoADODB SQL
With cboKhachhangLocMa
.AddItem "Tất cả"
End With
With rsado
Do Until .EOF = True
cboKhachhangLocMa.AddItem .Fields("KhachhangID").Value
.MoveNext
Loop
.Close
End With
End Sub
Private Sub Form_Unload(Cancel As Integer)
cnado.Close
Set cnado = Nothing
End Sub
Option Explicit
Private Sub cmdBangtinh_Click()
On Error GoTo loi
Shell "C:\WINDOWS\CALC.EXE", vbMaximizedFocus
loi:
Exit Sub
End Sub
Private Sub cmdBCBHTheoHH_Click()
rptBCBHTheoHH.Show
End Sub
Private Sub cmdBCBHTheoNCC_Click()
rptBCBHTheoNCC.Show
End Sub
Private Sub cmdBCBHTheonhom_Click()
rptBCBHTheoNhomHH.Show
End Sub
Private Sub cmdBCBHTheoNV_Click()
rptBCBHTheoNV.Show
End Sub
Private Sub cmdBCBHTheoQui_Click()
imgMuiten.Visible = True
frmQui.Show
End Sub
Private Sub cmdBCDSSP_Click()
frmBCHang.Show
imgMuiten1.Visible = True
End Sub
Private Sub cmdBCBHTheothang_Click()
rptBCBHTheoThang.Show
End Sub
Private Sub cmdBCDSHH_Click()
imgMuiten1.Visible = True
frmBCHang.Show
End Sub
Private Sub cmdBCDSKhach_Click()
rptDSKhachhang.Show
End Sub
Private Sub cmdExcel_Click()
On Error GoTo loi
Shell "C:\Program Files\Microsoft Office\Office\EXCEL.EXE", vbMaximizedFocus
loi:
Exit Sub
End Sub
Private Sub cmdHanghoa_Click()
frmSanpham.Show
End Sub
Private Sub cmdLuuDL_Click()
On Error GoTo loi
Dim Ten As String
With comdHopthoai
.CancelError = True
.DialogTitle = "Bạn phải đặt tên File thì mới Backup được dữ liêu"
.Filter = "Text Files(*.txt)|*.txt|Microsoft Words(*.doc)|*.doc|All Files(*.*)|*.*"
.FilterIndex = 1
.MaxFileSize = 200
.InitDir = "C:\QLKH\Backup"
.ShowSave
Screen.MousePointer = 99
Screen.MouseIcon = LoadPicture("C:\QLKH\GRAPHICS\CURSORS\Wait07.cur")
Ten = frmChitietHD.VSFlexGrid1ChitietHD.Name
frmChitietHD.VSFlexGrid1ChitietHD.SaveGrid .InitDir & "\" & Right$(Ten, Len(Ten) - 10) & ".txt", flexFileAll
Ten = frmHDBanhang.VSFlexGrid1HD.Name
frmHDBanhang.VSFlexGrid1HD.SaveGrid .InitDir & "\" & Right$(Ten, Len(Ten) - 10) & ".txt", flexFileAll
Ten = frmKhachhang.VSFlexGridKhachhang.Name
frmKhachhang.VSFlexGridKhachhang.SaveGrid .InitDir & "\" & Right$(Ten, Len(Ten) - 10) & ".txt", flexFileAll
Ten = frmNguoigui.VSFlexGrid1NgGui.Name
frmNguoigui.VSFlexGrid1NgGui.SaveGrid .InitDir & "\" & Right$(Ten, Len(Ten) - 10) & ".txt", flexFileAll
Ten = frmNhaCCap.VSFlexGrid1Ncc.Name
frmNhaCCap.VSFlexGrid1Ncc.SaveGrid .InitDir & "\" & Right$(Ten, Len(Ten) - 10) & ".txt", flexFileAll
Ten = frmNhanvienbanhang.VSFlexGrid1Nnbh.Name
frmNhanvienbanhang.VSFlexGrid1Nnbh.SaveGrid .InitDir & "\" & Right$(Ten, Len(Ten) - 10) & ".txt", flexFileAll
Ten = frmNhomSP.VSFlexGrid1NhomHH.Name
frmNhomSP.VSFlexGrid1NhomHH.SaveGrid .InitDir & "\" & Right$(Ten, Len(Ten) - 10) & ".txt", flexFileAll
Ten = frmSanpham.VSFlexGrid1SP.Name
frmSanpham.VSFlexGrid1SP.SaveGrid .InitDir & "\" & Right$(Ten, Len(Ten) - 10) & ".txt", flexFileAll
MousePointer = 0
End With
loi:
End Sub
Private Sub cmdLuuDL_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
With lblChuthich
.Visible = True
.Caption = "Cho phép bạn lưu bảng dữ liệu lên tệp *.txt với tên tệp được đặt tự động"
End With
End Sub
Private Sub cmdNapDL_Click()
frmXemDLCu.Show
End Sub
Private Sub cmdNapDL_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
With lblChuthich
.Visible = True
.Caption = "Cho phép bạn xem dữ liệu đẫ được backup lên tệp *.txt"
End With
End Sub
Private Sub cmdNhapCTietHD_Click()
frmChitietHD.Show
End Sub
Private Sub cmdNhapHDBH_Click()
frmHDBanhang.Show
End Sub
Private Sub cmdNhapKhachhang_Click()
frmKhachhang.Show
End Sub
Private Sub cmdNhapNCC_Click()
frmNhaCCap.Show
End Sub
Private Sub cmdNhapNguoigui_Click()
frmNguoigui.Show
End Sub
Private Sub cmdNhapNhomSP_Click()
frmNhomSP.Show
End Sub
Private Sub cmdThoatCT_Click()
Unload Me
End Sub
Private Sub cmdQLNSD_Click()
MsgBox "Tính năng này sẽ được phát triển trong phiên bản sau", vbInformation, "Thông báo"
End Sub
Private Sub cmdQLNSD_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
With lblChuthich
.Visible = True
.Caption = "Tính năng này chưa được nghiên cứu,xin bạn hãy chờ đến phiên bản sau"
End With
End Sub
Private Sub cmdThoat_Click()
Unload Me
End Sub
Private Sub cmdTonghop_Click()
imgMuiten2.Visible = True
frmTonghop.Show
End Sub
Private Sub cmdTonghop_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
With lblChuthichTH
.Visible = True
.Caption = "Cho phép ta xem thông tin dưới dạng lưới cô đọng hoặc có thể xuất dữ liệu lên Excel"
End With
End Sub
Private Sub cmdTrogiup_Click()
MsgBox "Tính năng này sẽ được phát triển trong phiên bản sau.", vbInformation, "Thông báo"
End Sub
Private Sub cmdTrogiup_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
With lblChuthich
.Visible = True
.Caption = "Tính năng này chưa có"
End With
End Sub
Private Sub cmdWord_Click()
On Error GoTo loi
Shell "C:\Program Files\Microsoft Office\Office\WINWORD.EXE", vbMaximizedFocus
loi:
Exit Sub
End Sub
Private Sub cmdXemTT_Click()
frmTreeView.Show
End Sub
Private Sub cmdXemTT_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
With lblChuthichTT
.Visible = True
.Caption = "Cung cấp thông tin một cách trực quan về kết quả bán hàng của từng nhân viên,hàng hoá v.v..."
End With
End Sub
Private Sub cmdXoaDL_Click()
If MsgBox("Thực hiện công việc này sẽ làm cho dữ liệu bị xoá hết.Bạn có muốn tiếp tục hay không?", vbYesNo + vbCritical, "Thông báo") = vbYes Then
XoaTatCaDL frmChitietHD.dataCTHD
XoaTatCaDL frmHDBanhang.dataHDBH
XoaTatCaDL frmNhanvienbanhang.dataNvbh
XoaTatCaDL frmKhachhang.dataKhachhang
XoaTatCaDL frmNguoigui.dataNguoigui
XoaTatCaDL frmSanpham.dataSanpham
XoaTatCaDL frmNhaCCap.dataNhaCC
XoaTatCaDL frmSanpham.dataSanpham
Else
Exit Sub
End If
End Sub
Private Sub cmdXoaDL_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
With lblChuthich
.Visible = True
.Caption = "Nghịch vào đây sẽ rất nguy hiển,dữ liệu sẽ bị mất tất,hãy cẩn thận nhé."
End With
End Sub
Private Sub cmnNhapNVBH_Click()
frmNhanvienbanhang.Show
End Sub
Private Sub Form_Load()
HienForm Me
Me.tabLienket.Tab = 0
lblChuchay.Top = 120
lblChuchay.Left = Picture2.Width
End Sub
Private Sub Form_Unload(Cancel As Integer)
Unload frmQui
Unload frmBCHang
Unload frmTonghop
Unload frmDothi
Unload frmXemDLCu
End Sub
Private Sub Image1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
With lblChuthichTT
.Visible = False
End With
End Sub
Private Sub Image2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
With lblChuthichTH
.Visible = False
End With
End Sub
Private Sub Image3_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
With lblChuthich
.Visible = False
End With
End Sub
Private Sub Timer1_Timer()
Dim X As Integer
X = 15
If lblChuchay.Left > -lblChuchay.Width Then
lblChuchay.Left = lblChuchay.Left - X
Else
lblChuchay.Left = frmLienket.Picture2.Width
'Timer1_Timer
End If
End Sub
Option Explicit
Private GuiTT As String
Private Sub cmdLocnhanh_Click()
frmNguoiguiLoc.Show
End Sub
Private Sub cmdLuu_Click()
'Gọi thủ tục KhoitaolucLuu
KhoitaoControlsLucLuu Me
With dataNguoigui.Recordset
.Fields("MaNGui").Value = txtNgGuiMa.Text
.Fields("TenCtyGui").Value = txtNgGuiTenCty.Text
.Fields("Dienthoai").Value = txtNgGuiDThoai.Text
.Fields("Fax").Value = txtNgGuiFax.Text
.Fields("Email").Value = txtNgGuiE_mail.Text
.Fields("Wedside").Value = txtNgGuiSide.Text
.Update
End With
dataNguoigui.Refresh
'Gọi thủ tục
dataNguoigui.Recordset.MoveLast
Vohieuhoa Me
End Sub
Private Sub cmdThem_Click()
Dim SQLMatudong As String
SQLMatudong = "Select Max([MaNGui]) as Lonnhat From tblNguoigui"
'Gọi thủ tục tạo data kết nối cho txtNguoiguiMa
Ketnoi dataMatudong, SQLMatudong
dataNguoigui.Recordset.AddNew
'Gọi thủ tục để khởi tạo Controls lúc thêm
KhoitaoControlsLucThem Me
'Tự động điền mã vào txtNguoiguimMa
If dataNguoigui.Recordset.RecordCount = 0 Then
txtNgGuiMa.Text = "1"
dataNguoigui.Caption = "1"
Else
With dataMatudong
txtNgGuiMa.Text = "" & .Recordset.Fields("Lonnhat").Value + 1
dataNguoigui.Caption = "" & .Recordset.Fields("Lonnhat").Value + 1
End With
End If
txtNgGuiTenCty.SetFocus
lblMatudong.Visible = True
End Sub
Private Sub cmdXoa_Click()
If dataNguoigui.Recordset.RecordCount > 0 Then
If dataNguoiguiCtietHD.Recordset.RecordCount > 0 Then
MsgBox "Bạn không thể xoá được bản ghi này,vì nó còn xuất hiện trong bảng con.", vbInformation, "Thông báo"
Exit Sub
Else
'Gọi thủ tục xoá
Xoa dataNguoigui
dataNguoigui.Recordset.MoveLast
End If
Else
MsgBox "Không có dữ liệu để xoá.", vbInformation, "Thông báo"
Exit Sub
End If
End Sub
Private Sub dataNguoigui_Reposition()
On Error GoTo loi
Dim SQLNguoiguiCTHD As String
SQLNguoiguiCTHD = "Select *" & _
" From tblHoadon" & _
" Where NGuiID=" & dataNguoigui.Recordset.Fields("MaNGui").Value & ""
'Gọi thủ tục tạo data kết nối cho lưới phụ
Ketnoi dataNguoiguiCtietHD, SQLNguoiguiCTHD
With dataNguoigui
.Caption = "" & .Recordset.Fields("MaNGui").Value
End With
With VSFlexGrid1NgGuiCTHD
.MergeCells = flexMergeRestrictColumns
.MergeCol(5) = True
End With
loi:
End Sub
Private Sub Form_Load()
Dim SQLNguoigui As String
SQLNguoigui = "Select * From tblNguoigui"
'Gọi thủ tục HienForm
HienForm Me
'Gọi thủ tục vô hiệu hoá các điều khiển không cần thiết
Vohieuhoa Me
'Gọi thủ tục khởi tạo data kết nối
Ketnoi dataNguoigui, SQLNguoigui
'Gọi thủ tục định dạng lưới
CauhinhLuoiChinh VSFlexGrid1NgGui
CauhinhLuoiPhu VSFlexGrid1NgGuiCTHD
End Sub
Private Sub txtNgGuiDThoai_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtNgGuiDThoai, KeyAscii
If KeyAscii = 13 Then
txtNgGuiFax.SetFocus
End If
End Sub
Private Sub txtNgGuiDThoai_LostFocus()
BuocphaidienDL txtNgGuiDThoai, True
End Sub
Private Sub txtNgGuiE_mail_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtNgGuiE_mail, KeyAscii
If KeyAscii = 13 Then
txtNgGuiSide.SetFocus
End If
End Sub
Private Sub txtNgGuiE_mail_LostFocus()
BuocphaidienDL txtNgGuiE_mail, False
End Sub
Private Sub txtNgGuiFax_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtNgGuiFax, KeyAscii
If KeyAscii = 13 Then
txtNgGuiE_mail.SetFocus
End If
End Sub
Private Sub txtNgGuiFax_LostFocus()
BuocphaidienDL txtNgGuiFax, True
End Sub
Private Sub txtNgGuiSide_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtNgGuiSide, KeyAscii
If KeyAscii = 13 Then
cmdLuu.SetFocus
End If
End Sub
Private Sub txtNgGuiSide_LostFocus()
BuocphaidienDL txtNgGuiSide, False
End Sub
Private Sub txtNgGuiTenCty_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtNgGuiTenCty, KeyAscii
If KeyAscii = 13 Then
txtNgGuiDThoai.SetFocus
End If
End Sub
Private Sub txtNgGuiTenCty_LostFocus()
BuocphaidienDL txtNgGuiTenCty, True
End Sub
Private Sub VSFlexGrid1NgGui_AfterEdit(ByVal Row As Long, ByVal Col As Long)
On Error GoTo loi
With VSFlexGrid1NgGui
If (.Col 0) And (.Cell(flexcpText, .RowSel, .ColSel) GuiTT) Then
If MsgBox("Bạn có muốn lưu ô này vào trong CSDL hay không?", vbYesNo, "Thông báo") = vbNo Then
.Cell(flexcpText, .RowSel, .ColSel) = GuiTT
Exit Sub
Else
.Cell(flexcpForeColor, .RowSel, .ColSel) = vbRed
End If
Else
Exit Sub
End If
End With
loi:
If Col = 0 Then
MsgBox "Bạn không thể thay đổi dữ liệu trên cột này.", vbInformation, "Thông báo"
With VSFlexGrid1NgGui
.Cell(flexcpForeColor, .RowSel, .ColSel) = vbBlack
End With
Exit Sub
End If
End Sub
Private Sub VSFlexGrid1NgGui_BeforeEdit(ByVal Row As Long, ByVal Col As Long, Cancel As Boolean)
With VSFlexGrid1NgGui
GuiTT = .Cell(flexcpText, .RowSel, .ColSel)
End With
End Sub
Private Sub VSFlexGrid1NgGui_EnterCell()
'Gọi thủ tục
VaoO VSFlexGrid1NgGui, Label1
End Sub
Private Sub VSFlexGrid1NgGui_LeaveCell()
'Gọi thủ tục
RoikhoiO VSFlexGrid1NgGui
End Sub
Private Sub VSFlexGrid1NgGui_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Gọi thủ tục
HienToolTipText VSFlexGrid1NgGui
End Sub
Private Sub VSFlexGrid1NgGuiCTHD_EnterCell()
VaoO VSFlexGrid1NgGuiCTHD, Label1
End Sub
Private Sub VSFlexGrid1NgGuiCTHD_LeaveCell()
RoikhoiO VSFlexGrid1NgGuiCTHD
End Sub
Private Sub VSFlexGrid1NgGuiCTHD_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
HienToolTipText VSFlexGrid1NgGuiCTHD
End Sub
Option Explicit
Private Sub cmdTimkiem_Click()
On Error GoTo loi
Dim SQLTkiemNGui As String
If cboLocNGuima.Text = "Tất cả" Then
SQLTkiemNGui = "Select * From tblNguoigui"
Else
SQLTkiemNGui = "Select *" & _
" From tblNguoigui" & _
" Where MaNGui=" & cboLocNGuima.Text & ""
End If
Ketnoi dataNGuiLoc, SQLTkiemNGui
If dataNGuiLoc.Recordset.RecordCount = 0 Then
MsgBox "Không tìm thấy người gửi có mã: " & cboLocNGuima.Text & "", vbInformation, "Thông báo"
cboLocNGuima.SelStart = 0
cboLocNGuima.SelLength = Len(cboLocNGuima.Text)
Exit Sub
Else
lblKQTK.Visible = True
End If
loi:
End Sub
Private Sub Form_Load()
Dim SQL As String
SQL = "Select * From tblNguoigui"
HienForm Me
CauhinhLuoiPhu VSFlexGridNguiTK
KhoitaoADODB SQL
With cboLocNGuima
.AddItem "Tất cả"
End With
With rsado
Do While .EOF = False
cboLocNGuima.AddItem .Fields("MaNGui").Value
.MoveNext
Loop
.Close
End With
End Sub
Private Sub Form_Unload(Cancel As Integer)
cnado.Close
Set cnado = Nothing
End Sub
Option Explicit
Private GuiTT As String
Private Sub cboNCCNuoc_KeyPress(KeyAscii As Integer)
PheChuanKeyPress cboNCCNuoc, KeyAscii
If KeyAscii = 13 Then
meditDthoaiNcc.SetFocus
End If
End Sub
Private Sub cboNCCNuoc_LostFocus()
BuocphaidienDL cboNCCNuoc, True
End Sub
Private Sub cboNCCTpho_KeyPress(KeyAscii As Integer)
PheChuanKeyPress cboNCCTpho, KeyAscii
If KeyAscii = 13 Then
cboNCCVung.SetFocus
End If
End Sub
Private Sub cboNCCTpho_LostFocus()
BuocphaidienDL cboNCCTpho, True
End Sub
Private Sub cboNCCVung_KeyPress(KeyAscii As Integer)
PheChuanKeyPress cboNCCVung, KeyAscii
If KeyAscii = 13 Then
txtNCCmavung.SetFocus
End If
End Sub
Private Sub cboNCCVung_LostFocus()
BuocphaidienDL cboNCCVung, True
End Sub
Private Sub cmdLocnhanh_Click()
frmNhaCCLoc.Show
End Sub
Private Sub cmdLuu_Click()
'Gọi thủ tục khởi tạo Controls lúc luu
KhoitaoControlsLucLuu Me
With dataNhaCC.Recordset
.Fields("MaNhaCC").Value = txtNCCma.Text
.Fields("TenCtyNcc").Value = txtNCCten.Text
.Fields("TenDTNcc").Value = txtNCCTenDT.Text
.Fields("ChucdanhDTNcc").Value = txtNCCChucdanh.Text
.Fields("DiachiNcc").Value = rtxtDiachiNcc.Text
.Fields("ThanhphoNcc").Value = cboNCCTpho.Text
.Fields("VungNcc").Value = cboNCCVung.Text
.Fields("MavungNcc").Value = txtNCCmavung.Text
.Fields("NuocNcc").Value = cboNCCNuoc.Text
.Fields("DienthoaiNcc").Value = meditDthoaiNcc.Text
.Fields("FaxNcc").Value = txtNCCFax.Text
.Fields("WedsideNcc").Value = txtNCCWed.Text
.Fields("EmailNcc").Value = txtNCCEmail.Text
.Update
End With
dataNhaCC.Refresh
'Gọi thủ tục Vohieuhoa
dataNhaCC.Recordset.MoveLast
Vohieuhoa Me
End Sub
Private Sub cmdThem_Click()
Dim SQLMatudong As String
SQLMatudong = "Select Max([MaNhaCC]) as Lonnhat From tblNhacungcap"
'Gọi thủ tục tạo Data kết nối để tạo nguồn kết nối cho txtNccma
Ketnoi dataMatudong, SQLMatudong
dataMatudong.Refresh
dataNhaCC.Recordset.AddNew
'Gọi hàm để qui định thuộc tính các Controls lúc Thêm
KhoitaoControlsLucThem Me
If dataNhaCC.Recordset.RecordCount = 0 Then
txtNCCma.Text = "1"
dataNhaCC.Caption = "1"
Else
With dataMatudong
txtNCCma.Text = "" & .Recordset.Fields("Lonnhat").Value + 1
dataNhaCC.Caption = "Nhà CC: " & .Recordset.Fields("Lonnhat").Value + 1
End With
End If
txtNCCten.SetFocus
lblTudong.Visible = True
End Sub
Private Sub cmdXoa_Click()
If dataNhaCC.Recordset.RecordCount > 0 Then
If dataNccChitietSp.Recordset.RecordCount > 0 Then
MsgBox "Bạn không thể xoá bản ghi này vì nó còn xuất hiện trong bảng con.", vbInformation, "Thông báo"
Exit Sub
Else
'Gọi thủ tục Xoa
Xoa dataNhaCC
dataNhaCC.Recordset.MoveLast
End If
Else
MsgBox "Không có dữ liệu để xoá.", vbInformation, "Thông báo"
Exit Sub
End If
End Sub
Private Sub dataNhaCC_Reposition()
On Error GoTo loi
Dim SQLNccCTietSP As String
SQLNccCTietSP = "Select *" & _
" From tblSanpham" & _
" Where NhaCCID=" & dataNhaCC.Recordset.Fields("MaNhaCC").Value & ""
'Gọi thủ tục khởi tạo data kết nỗi cho lưới chi tiết
Ketnoi dataNccChitietSp, SQLNccCTietSP
dataNccChitietSp.Refresh
With dataNhaCC
.Caption = "" & .Recordset.Fields("ManhaCC").Value
End With
With VSFlexGrid1NccCtietSP
.MergeCells = flexMergeRestrictColumns
.MergeCol(2) = True
End With
loi:
End Sub
Private Sub Form_Load()
Dim SQLNhaCC As String
SQLNhaCC = "Select * From tblNhacungcap Order By NuocNcc"
'Gọi thủ tục Vohieuhoa các Controls
Vohieuhoa Me
'Gọi thủ tục hiện Form
HienForm Me
'Gọi thủ tục tạo data kết nối với nguồn dữ liệu
Ketnoi dataNhaCC, SQLNhaCC
optTron(1).Value = True
'Cấu hình thuộc tính cho lưới
CauhinhLuoiChinh VSFlexGrid1Ncc
CauhinhLuoiPhu VSFlexGrid1NccCtietSP
With cboNCCTpho
.AddItem "Hà Nội"
.AddItem "Hải Phòng"
.AddItem "Tp HCM"
.AddItem "Đà Nẵng"
.AddItem "Nam Định"
End With
With cboNCCVung
.AddItem "Bắc"
.AddItem "Trung"
.AddItem "Nam"
.AddItem "Hải đảo"
.AddItem "Miền Núi"
End With
With cboNCCNuoc
.AddItem "Việt Nam"
.AddItem "Trung Quốc"
.AddItem "Thái Lan"
.AddItem "Indonesia"
.AddItem "Malaysia"
End With
End Sub
Private Sub meditDthoaiNcc_KeyPress(KeyAscii As Integer)
PheChuanKeyPress meditDthoaiNcc, KeyAscii
If KeyAscii = 13 Then
txtNCCFax.SetFocus
End If
End Sub
Private Sub meditDthoaiNcc_LostFocus()
BuocphaidienDL meditDthoaiNcc, True
End Sub
Private Sub optTron_Click(Index As Integer)
Select Case Index
Case 1
optTron(0).Value = False
With VSFlexGrid1Ncc
.MergeCells = flexMergeNever
End With
Case 0
optTron(1).Value = False
With VSFlexGrid1Ncc
.MergeCells = flexMergeRestrictColumns
.MergeCol(8) = True
End With
Case Else
End Select
End Sub
Private Sub rtxtDiachiNcc_KeyPress(KeyAscii As Integer)
PheChuanKeyPress rtxtDiachiNcc, KeyAscii
If KeyAscii = 13 Then
cboNCCTpho.SetFocus
End If
End Sub
Private Sub rtxtDiachiNcc_LostFocus()
BuocphaidienDL rtxtDiachiNcc, True
End Sub
Private Sub txtNCCChucdanh_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtNCCChucdanh, KeyAscii
If KeyAscii = 13 Then
rtxtDiachiNcc.SetFocus
End If
End Sub
Private Sub txtNCCDThoai_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtNCCDThoai, KeyAscii
If KeyAscii = 13 Then
txtNCCFax.SetFocus
End If
End Sub
Private Sub txtNCCChucdanh_LostFocus()
BuocphaidienDL txtNCCChucdanh, True
End Sub
Private Sub txtNCCEmail_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtNCCEmail, KeyAscii
If KeyAscii = 13 Then
txtNCCWed.SetFocus
End If
End Sub
Private Sub txtNCCEmail_LostFocus()
BuocphaidienDL txtNCCEmail, False
End Sub
Private Sub txtNCCFax_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtNCCFax, KeyAscii
If KeyAscii = 13 Then
txtNCCEmail.SetFocus
End If
End Sub
Private Sub txtNCCFax_LostFocus()
BuocphaidienDL txtNCCFax, True
End Sub
Private Sub txtNCCma_KeyPress(KeyAscii As Integer)
'Gọi thủ tục PheChuan
PheChuanKeyPress txtNCCma, KeyAscii
If KeyAscii = 13 Then
txtNCCten.SetFocus
End If
End Sub
Private Sub txtNCCmavung_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtNCCmavung, KeyAscii
If KeyAscii = 13 Then
cboNCCNuoc.SetFocus
End If
End Sub
Private Sub txtNCCmavung_LostFocus()
BuocphaidienDL txtNCCmavung, True
End Sub
Private Sub txtNCCten_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtNCCten, KeyAscii
If KeyAscii = 13 Then
txtNCCTenDT.SetFocus
End If
End Sub
Private Sub txtNCCten_LostFocus()
BuocphaidienDL txtNCCten, True
End Sub
Private Sub txtNCCTenDT_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtNCCTenDT, KeyAscii
If KeyAscii = 13 Then
txtNCCChucdanh.SetFocus
End If
End Sub
Private Sub txtNCCTenDT_LostFocus()
BuocphaidienDL txtNCCTenDT, True
End Sub
Private Sub txtNCCWed_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtNCCWed, KeyAscii
If KeyAscii = 13 Then
cmdLuu.SetFocus
End If
End Sub
Private Sub txtNCCWed_LostFocus()
BuocphaidienDL txtNCCWed, False
End Sub
Private Sub VSFlexGrid1Ncc_AfterEdit(ByVal Row As Long, ByVal Col As Long)
On Error GoTo loi
With VSFlexGrid1Ncc
If (.Col 0) And (.Cell(flexcpText, .RowSel, .ColSel) GuiTT) Then
If MsgBox("Bạn có muốn lưu ô này vào trong CSDL hay không?", vbYesNo, "Thông báo") = vbNo Then
.Cell(flexcpText, .RowSel, .ColSel) = GuiTT
Exit Sub
Else
.Cell(flexcpForeColor, .RowSel, .ColSel) = vbRed
End If
End If
End With
loi:
If Col = 0 Then
MsgBox "Bạn không thể thay đổi dữ liệu trên cột này.", vbInformation, "Thông báo"
With VSFlexGrid1Ncc
.Cell(flexcpForeColor, .RowSel, .ColSel) = vbBlack
End With
Exit Sub
End If
End Sub
Private Sub VSFlexGrid1Ncc_BeforeEdit(ByVal Row As Long, ByVal Col As Long, Cancel As Boolean)
With VSFlexGrid1Ncc
GuiTT = .Cell(flexcpText, .RowSel, .ColSel)
End With
End Sub
Private Sub VSFlexGrid1Ncc_EnterCell()
'Gọi thủ tục VaoO
VaoO VSFlexGrid1Ncc, Label1
End Sub
Private Sub VSFlexGrid1Ncc_LeaveCell()
'Gọi thủ tục RoiO
RoikhoiO VSFlexGrid1Ncc
End Sub
Private Sub VSFlexGrid1Ncc_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Gọi thủ tục HienToolTip
HienToolTipText VSFlexGrid1Ncc
End Sub
Private Sub VSFlexGrid1NccCtietSP_EnterCell()
VaoO VSFlexGrid1NccCtietSP, Label1
End Sub
Private Sub VSFlexGrid1NccCtietSP_LeaveCell()
RoikhoiO VSFlexGrid1NccCtietSP
End Sub
Private Sub VSFlexGrid1NccCtietSP_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Gọi thủ tục hiện ToolTip
HienToolTipText VSFlexGrid1NccCtietSP
End Sub
Option Explicit
Private Sub cmdTimkiem_Click()
On Error GoTo loi
Dim SQLLocNCC As String
If cboLocNCCma.Text = "Tất cả" Then
SQLLocNCC = "Select * From tblNhacungcap"
Else
SQLLocNCC = "Select *" & _
" From tblNhacungcap" & _
" Where MaNhaCC=" & cboLocNCCma.Text & ""
End If
Ketnoi dataLocNCC, SQLLocNCC
If dataLocNCC.Recordset.RecordCount = 0 Then
MsgBox "Không tìm thấy nhà cung cấp có mã: " & cboLocNCCma.Text & "", vbInformation, "Thông báo"
cboLocNCCma.SelStart = 0
cboLocNCCma.SelLength = Len(cboLocNCCma.Text)
Exit Sub
Else
lblKQTK.Visible = True
End If
loi:
End Sub
Private Sub Form_Load()
Dim SQL As String
SQL = "Select MaNhaCC From tblNhacungcap"
HienForm Me
CauhinhLuoiPhu VSFlexGridNCCloc
KhoitaoADODB SQL
With cboLocNCCma
.AddItem "Tất cả"
End With
With rsado
Do While .EOF = False
cboLocNCCma.AddItem .Fields("MaNhaCC").Value
.MoveNext
Loop
.Close
End With
End Sub
Option Explicit
Private GuiTT As String
Private Sub cboNuocNvbh_KeyPress(KeyAscii As Integer)
PheChuanKeyPress cboNuocNvbh, KeyAscii
If KeyAscii = 13 Then
txtDthoaiNvbh.SetFocus
End If
End Sub
Private Sub cboNuocNvbh_LostFocus()
BuocphaidienDL cboNuocNvbh, True
End Sub
Private Sub cboTphoNvbh_KeyPress(KeyAscii As Integer)
PheChuanKeyPress cboTphoNvbh, KeyAscii
If KeyAscii = 13 Then
cboVungNvbh.SetFocus
End If
End Sub
Private Sub cboTphoNvbh_LostFocus()
BuocphaidienDL cboTphoNvbh, True
End Sub
Private Sub cboVungNvbh_KeyPress(KeyAscii As Integer)
PheChuanKeyPress cboVungNvbh, KeyAscii
If KeyAscii = 13 Then
txtMavungNvbh.SetFocus
End If
End Sub
Private Sub cboVungNvbh_LostFocus()
BuocphaidienDL cboVungNvbh, True
End Sub
Private Sub cmdChonhinh_Click()
On Error GoTo loi
With Hopthoai
'Thuộc tính này sẽ bẫy lỗi khi ta Cancel hộp thoại,tức là nếu
'ta qui định thuộc tính này là True thì lỗi sẽ xẩy ra nếu ta Cancel
.CancelError = True
.DialogTitle = "Chọn hình"
.Filter = "JPG Files(*.jpg)|*.jpg|Bitmap Files(*.bmp)|*.bmp"
.FilterIndex = 1
.MaxFileSize = 150
.InitDir = "C:\QLBH\Hinh"
.ShowOpen
Picture1.Picture = LoadPicture(.FileName)
lblDuongdan.Caption = "" & .FileName
End With
loi:
'MsgBox "Bạn đã không chọn hình.", vbInformation, "Thông báo"
End Sub
Private Sub cmdLocnhanh_Click()
frmNhanvienbanhangLoc.Show
End Sub
Private Sub cmdLuu_Click()
'Gọi thủ tục khởi tạo lúc Luu
KhoitaoControlsLucLuu Me
With dataNvbh.Recordset
.Fields("MaNBan").Value = txtMaNvbh.Text
.Fields("Ten").Value = txtTenNvbh.Text
.Fields("Ho").Value = txtHoNvbh.Text
.Fields("Chucdanh").Value = txtChudanhNvbh.Text
.Fields("Bidanh").Value = txtBidanhNvbh.Text
If dtpNgaysinhNvbh.Value < Now() Then
.Fields("Ngaysinh").Value = dtpNgaysinhNvbh.Value
Else
MsgBox "Ngày sinh không được sau: " & Now() & "", vbInformation, "Thông báo"
dtpNgaysinhNvbh.SetFocus
cmdLuu.Enabled = True
Exit Sub
End If
If dtpNgayVLNvbh.Value <= Now() Then
.Fields("Ngaynhanviec").Value = dtpNgayVLNvbh.Value
Else
MsgBox "Ngày vào làm của nhân viên không được sau: " & Now() & "", vbInformation, "Thông báo"
dtpNgayVLNvbh.SetFocus
cmdLuu.Enabled = True
Exit Sub
End If
.Fields("Baocaotoi").Value = dbcboBaocaotoiNvbh.Text
.Fields("Diachi").Value = rtxtDChiNvbh.Text
.Fields("Thanhpho").Value = cboTphoNvbh.Text
.Fields("Vung").Value = cboVungNvbh.Text
.Fields("Mavung").Value = txtMavungNvbh.Text
.Fields("Nuoc").Value = cboNuocNvbh.Text
.Fields("DTNha").Value = txtDthoaiNvbh.Text
.Fields("Ghichu").Value = rtxtGhichuNvbh.Text
.Fields("Email").Value = txtEmailNvbh.Text
.Update
End With
dataNvbh.Refresh
tabNhanvienBH.Tab = 0
'Gọi thủ tục
dataNvbh.Recordset.MoveLast
Vohieuhoa Me
End Sub
Private Sub cmdThem_Click()
Dim SQLMatudong As String
SQLMatudong = "Select Max([MaNBan]) as Lonnhat From tblNhanvienbanhang"
tabNhanvienBH.Tab = 0
'Gọi thủ tục tạo data là nguồn kết nối cho txtNvbhMa
Ketnoi dataMatudong, SQLMatudong
dataMatudong.Refresh
dataNvbh.Recordset.AddNew
'Gọi thủ tục khởi tạo Controls lúc thêm
KhoitaoControlsLucThem Me
If dataNvbh.Recordset.RecordCount = 0 Then
txtMaNvbh.Text = "1"
dataNvbh.Caption = "1"
Else
With dataMatudong
txtMaNvbh.Text = "" & .Recordset.Fields("Lonnhat") + 1
dataNvbh.Caption = "Nviên: " & .Recordset.Fields("Lonnhat") + 1
End With
End If
txtHoNvbh.SetFocus
lblMatudong.Visible = True
End Sub
Private Sub cmdXoa_Click()
If dataNvbh.Recordset.RecordCount > 0 Then
If dataNvbhHoadon.Recordset.RecordCount > 0 Then
MsgBox "Bạn không thể xoá được bản ghi này vì nó con xuất hiện trong bảng con.", vbInformation, "Thông báo"
Exit Sub
Else
'Gọi thủ tục xoá
Xoa dataNvbh
dataNvbh.Recordset.MoveLast
End If
Else
MsgBox "Không có dữ liệu để xoá.", vbInformation, "Thông báo"
Exit Sub
End If
End Sub
Private Sub dataNvbh_Reposition()
On Error GoTo loi
Dim SQLNvbhHoadon As String
SQLNvbhHoadon = "Select *" & _
" From tblHoadon" & _
" Where NguoibanID=" & dataNvbh.Recordset.Fields("MaNBan").Value & ""
'Gọi thủ tục tạo data kết nối cho lưới phụ
Ketnoi dataNvbhHoadon, SQLNvbhHoadon
dataNvbhHoadon.Refresh
With dataNvbh
.Caption = "Nviên: " & .Recordset.Fields("MaNBan").Value
lblHoTenNvbh.Caption = "" & .Recordset.Fields("Ho").Value & " " & .Recordset.Fields("Ten").Value
'Kiểm tra xem mẩu tin tương ứng với trường kiểu text Hinhanh co
'là Null hay không
If IsNull(.Recordset.Fields("Hinhanh").Value) = False Then
Picture1.Picture = LoadPicture(.Recordset.Fields("Hinhanh").Value)
lblKhongcohinh.Visible = False
Else
'Không nạp hình ảnh nào vào PictureBox
Picture1.Picture = LoadPicture()
lblKhongcohinh.Visible = True
End If
End With
With VSFlexGrid1NvbhHDon
.MergeCells = flexMergeRestrictColumns
.MergeCol(4) = True
End With
'--------------------------------------------------------------------------------
loi:
End Sub
Private Sub dbcboBaocaotoiNvbh_KeyPress(KeyAscii As Integer)
PheChuanKeyPress dbcboBaocaotoiNvbh, KeyAscii
If KeyAscii = 13 Then
dtpNgayVLNvbh.SetFocus
End If
End Sub
Private Sub dbcboBaocaotoiNvbh_LostFocus()
BuocphaidienDL dbcboBaocaotoiNvbh, True
End Sub
Private Sub dtpNgayVLNvbh_KeyPress(KeyAscii As Integer)
'PheChuanKeyPress dtpNgayVLNvbh, KeyAscii
'If KeyAscii = 13 Then
' tabNhanvienBH.Tab = 1
' rtxtDChiNvbh.SetFocus
'End If
End Sub
Private Sub Form_Load()
Dim SQLNvbh As String
SQLNvbh = "Select * From tblNhanvienbanhang"
'Gọi thủ tục
Vohieuhoa Me
'Gọi thủ tục
HienForm Me
'Gọi thủ tục tạo data kết nối
Ketnoi dataNvbh, SQLNvbh
'Gọi thủ tục
CauhinhLuoiChinh VSFlexGrid1Nnbh
CauhinhLuoiPhu VSFlexGrid1NvbhHDon
With cboTphoNvbh
.AddItem "Hà Nội"
.AddItem "Hải Phòng"
.AddItem "Tp HCM"
.AddItem "Đà Nẵng"
.AddItem "Nam Định"
End With
With cboVungNvbh
.AddItem "Bắc"
.AddItem "Trung"
.AddItem "Nam"
.AddItem "Hải đảo"
.AddItem "Miền Núi"
End With
With cboNuocNvbh
.AddItem "Việt Nam"
.AddItem "Trung Quốc"
.AddItem "Thái Lan"
.AddItem "Indonesia"
.AddItem "Malaysia"
End With
End Sub
Private Sub rtxtDChiNvbh_KeyPress(KeyAscii As Integer)
PheChuanKeyPress rtxtDChiNvbh, KeyAscii
End Sub
Private Sub rtxtDChiNvbh_LostFocus()
BuocphaidienDL rtxtDChiNvbh, True
End Sub
Private Sub rtxtGhichuNvbh_KeyPress(KeyAscii As Integer)
PheChuanKeyPress rtxtGhichuNvbh, KeyAscii
If KeyAscii = 13 Then
txtEmailNvbh.SetFocus
End If
End Sub
Private Sub rtxtGhichuNvbh_LostFocus()
BuocphaidienDL rtxtGhichuNvbh, True
End Sub
Private Sub txtBidanhNvbh_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtBidanhNvbh, KeyAscii
If KeyAscii = 13 Then
rtxtGhichuNvbh.SetFocus
End If
End Sub
Private Sub txtBidanhNvbh_LostFocus()
BuocphaidienDL txtBidanhNvbh, True
End Sub
Private Sub txtChudanhNvbh_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtChudanhNvbh, KeyAscii
If KeyAscii = 13 Then
dbcboBaocaotoiNvbh.SetFocus
End If
End Sub
Private Sub txtChudanhNvbh_LostFocus()
BuocphaidienDL txtChudanhNvbh, True
End Sub
Private Sub txtDthoaiNvbh_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtDthoaiNvbh, KeyAscii
If KeyAscii = 13 Then
txtBidanhNvbh.SetFocus
End If
End Sub
Private Sub txtDthoaiNvbh_LostFocus()
BuocphaidienDL txtDthoaiNvbh, True
End Sub
Private Sub txtEmailNvbh_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtEmailNvbh, KeyAscii
If KeyAscii = 13 Then
dtpNgaysinhNvbh.SetFocus
End If
End Sub
Private Sub txtEmailNvbh_LostFocus()
BuocphaidienDL txtEmailNvbh, False
End Sub
Private Sub txtHoNvbh_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtHoNvbh, KeyAscii
If KeyAscii = 13 Then
txtTenNvbh.SetFocus
End If
End Sub
Private Sub txtHoNvbh_LostFocus()
BuocphaidienDL txtHoNvbh, True
End Sub
Private Sub txtMavungNvbh_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtMavungNvbh, KeyAscii
If KeyAscii = 13 Then
cboNuocNvbh.SetFocus
End If
End Sub
Private Sub txtMavungNvbh_LostFocus()
BuocphaidienDL txtMavungNvbh, True
End Sub
Private Sub txtTenNvbh_KeyPress(KeyAscii As Integer)
PheChuanKeyPress txtTenNvbh, KeyAscii
If KeyAscii = 13 Then
txtChudanhNvbh.SetFocus
lblHoTenNvbh.Caption = "" & txtHoNvbh.Text & " " & txtTenNvbh.Text
End If
End Sub
Private Sub txtTenNvbh_LostFocus()
BuocphaidienDL txtTenNvbh, True
End Sub
Private Sub VSFlexGrid1Nnbh_AfterEdit(ByVal Row As Long, ByVal Col As Long)
On Error GoTo loi
With VSFlexGrid1Nnbh
If (.Col 0) And (.Cell(flexcpText, .RowSel, .ColSel) GuiTT) Then
If MsgBox("Bạn có muốn lưu ô này vào trong CSDL hay không", vbYesNo, "Thông báo") = vbNo Then
.Cell(flexcpText, .RowSel, .ColSel) = GuiTT
Exit Sub
Else
.Cell(flexcpForeColor, .RowSel, .ColSel) = vbRed
End If
Else
Exit Sub
End If
End With
loi:
If Col = 0 Then
MsgBox "Cột này không cho phép thay đổi giá trị.", vbInformation, "Thông báo"
With VSFlexGrid1Nnbh
.Cell(flexcpForeColor, .RowSel, .ColSel) = vbBlack
End With
Exit Sub
End If
End Sub
Private Sub VSFlexGrid1Nnbh_BeforeEdit(ByVal Row As Long, ByVal Col As Long, Cancel As Boolean)
With VSFlexGrid1Nnbh
GuiTT = .Cell(flexcpText, .RowSel, .ColSel)
End With
End Sub
Private Sub VSFlexGrid1Nnbh_EnterCell()
'Gọi thủ tục VaoO
VaoO VSFlexGrid1Nnbh, Label1
End Sub
Private Sub VSFlexGrid1Nnbh_LeaveCell()
'Gọi thủ tục RoiO
RoikhoiO VSFlexGrid1Nnbh
End Sub
Private Sub VSFlexGrid1Nnbh_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Gọi thủ tục HienToolTip
HienToolTipText VSFlexGrid1Nnbh
End Sub
Private Sub VSFlexGrid1NvbhHDon_EnterCell()
VaoO VSFlexGrid1NvbhHDon, Label1
End Sub
Private Sub VSFlexGrid1NvbhHDon_LeaveCell()
RoikhoiO VSFlexGrid1NvbhHDon
End Sub
Private Sub VSFlexGrid1NvbhHDon_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Gọi thủ tục
HienToolTipText VSFlexGrid1NvbhHDon
End Sub
Private Sub cmdTimkiem_Click()
On Error GoTo loi
Dim SQLNvbhLoc As String
If cboLocNVBHMa.Text = "Tất cả" Then
SQLNvbhLoc = "Select * From tblNhanvienbanhang"
Else
SQLNvbhLoc = "Select *" & _
" From tblNhanvienbanhang" & _
" Where MaNBan=" & cboLocNVBHMa.Text & ""
End If
Ketnoi dataLocNVBH, SQLNvbhLoc
If dataLocNVBH.Recordset.RecordCount = 0 Then
MsgBox "Không tìm thấy nhân viên có mã là: " & cboLocNVBHMa.Text & "", vbInformation, "Thông báo"
cboLocNVBHMa.SelStart = 0
cboLocNVBHMa.SelLength = Len(cboLocNVBHMa.Text)
Exit Sub
Else
lblKQTK.Visible = True
End If
loi:
End Sub
Private Sub Form_Load()
Dim SQL As String
SQL = "Select * From tblNhanvienbanhang"
HienForm Me
CauhinhLuoiPhu VSFlexGridNVBHLoc
KhoitaoADODB SQL
With cboLocNVBHMa
.AddItem "Tất cả"
End With
With rsado
Do While .EOF = False
cboLocNVBHMa.AddItem .Fields("MaNBan").Value
.MoveNext
Loop
.Close
End With
End Sub
Private Sub Form_Unload(Cancel As Integer)
cnado.Close
Set cnado = Nothing
End Sub
Option Explicit
Private GuiTT As String
Private Sub cdmNHomSPChonhinh_Click()
On Error GoTo loi
With HophinhNsp
.CancelError = True
.DialogTitle = "Chọn hình"
.Filter = "JPG Files(*.jpg)|*.jpg|Bitmap Files(*.bmp)|*.bmp|All Files(*.*)|*.*"
.FilterIndex = 1
.InitDir = "C:\QLKH\Hinh"
.MaxFileSize = 150
.ShowOpen
lblHinhanhNSP.Caption = "" & .FileName
picNhomSPhinh.Picture = LoadPicture(.FileName)
End With
loi:
End Sub
Private Sub cmdLocnhanh_Click()
frmNhomSPLoc.Show
End Sub
Private Sub cmdLuu_Click()
'Gọi thủ tục khởi tạo Controls lúc Luu DL
KhoitaoControlsLucLuu Me
With dataNhomhh
.Recordset.Fields("MaNhom").Value = txtNhomSPMa.Text
.Recordset.Fields("Tennhom").Value = txtNhomSPten.Text
.Recordset.Fields("Mota").Value = rtxtNhomSPmota.Text
.Recordset.Update
.Refresh
End With
'Gọi thủ tục Vohieuhoa
dataNhomhh.Recordset.MoveLast
Vohieuhoa Me
End Sub
Private Sub cmdThem_Click()
Dim SQLMatudong As String
SQLMatudong = "Select Max([MaNhom]) as Lonnhat From tblNhomhang"
'Gọi thủ tục khởi tạo Data kết nối cho txtNhomSPma
Ketnoi dataMatudong, SQLMatudong
dataMatudong.Refresh
dataNhomhh.Recordset.AddNew
'Gọi hàm khởi tạo thuộc tính các Controls lúc thêm mới DL
KhoitaoControlsLucThem Me
If dataNhomhh.Recordset.RecordCount = 0 Then
txtNhomSPMa.Text = "1"
dataNhomhh.Caption = "1"
Else
With dataMatudong
txtNhomSPMa.Text = "" & dataMatudong.Recordset.Fields("Lonnhat").Value + 1
dataNhomhh.Caption = "Nhóm: " & dataMatudong.Recordset.Fields("Lonnhat").Value + 1
End With
End If
txtNhomSPten.SetFocus
lblTudong.Visible = True
End Sub
Private Sub cmdXoa_Click()
If dataNhomhh.Recordset.RecordCount > 0 Then
If dataNhomhangCTietHH.Recordset.RecordCount > 0 Then
MsgBox "Bạn không thể xoá bản ghi này vì nó còn xuất hiện trên bảng con.", vbInformation, "Thông báo"
Exit Sub
Else
'Gọi thủ tục xoá dữ liệu
Xoa dataNhomhh
dataNhomhh.Recordset.MoveLast
End If
Else
MsgBox "Không có dữ liệu để xoá.", vbInformation, "Thông báo"
Exit Sub
End If
End Sub
Private Sub dataNhomhh_Reposition()
On Error GoTo loi
Dim SQLNhomhangCTietHH As String
SQLNhomhangCTietHH = "Select *" & _
" From tblSanpham" & _
" Where NhomHHID=" & dataNhomhh.Recordset.Fields("MaNhom").Value & ""
'Gọi hàm khởi tạo Data kết nối cho luới chi tiết
Ketnoi dataNhomhangCTietHH, SQLNhomhangCTietHH
dataNhomhangCTietHH.Refresh
'Hiện thứ tự nhóm HH lên Caption của dataNhomHH
With dataNhomhh
.Caption = "Nhóm: " & dataNhomhh.Recordset.Fields("MaNhom").Value
If IsNull(.Recordset.Fields("HinhNhom").Value) = False Then
picNhomSPhinh.Picture = LoadPicture(.Recordset.Fields("HinhNhom").Value)
lblKhongcohinh.Visible = False
Else
picNhomSPhinh.Picture = LoadPicture()
lblKhongcohinh.Visible = True
End If
End With
With VSFlexGrid1NhomHHChitiet
.MergeCells = flexMergeRestrictColumns
.MergeCol(3) = True
End With
loi:
End Sub
Private Sub Form_Load()
Dim SQLNhomhang As String
SQLNhomhang = "Select * From tblNhomhang"
'Gọi thủ tục khởi tạo Data kết nối
Ketnoi dataNhomhh, SQLNhomhang
'Gọi thủ tục Vohieuhoa để vô hiệu hoá những điều khiển trên Form
Vohieuhoa Me
'Gọi thủ tục HienForm
HienForm Me
'Gọi thủ tục qui định thuộc tính cho lưới chính và lưới phụ
CauhinhLuoiChinh VSFlexGrid1NhomHH
CauhinhLuoiPhu VSFlexGrid1NhomHHChitiet
End Sub
Private Sub rtxtNhomSPmota_KeyPress(KeyAscii As Integer)
PheChuanKeyPress rtxtNhomSPmota, KeyAscii
If KeyAscii = 13 Then
cmdLuu.SetFocus
End If
End Sub
Private Sub rtxtNhomSPmota_LostFocus()
BuocphaidienDL rtxtNhomSPmota, True
End Sub
Private Sub txtNhomSPMa_KeyPress(KeyAscii As Integer)
'Gọi thủ tục PhechuanKeypress
PheChuanKeyPress txtNhomSPMa, KeyAscii
If KeyAscii = 13 Then
txtNhomSPten.SetFocus
End If
End Sub
Private Sub txtNhomSPMa_LostFocus()
BuocphaidienDL txtNhomSPMa, True
End Sub
Private Sub txtNhomSPten_KeyPress(KeyAscii As Integer)
'Gọi thủ tục PhechuanKeypress
PheChuanKeyPress txtNhomSPten, KeyAscii
If KeyAscii = 13 Then
rtxtNhomSPmota.SetFocus
End If
End Sub
Private Sub txtNhomSPten_LostFocus()
BuocphaidienDL txtNhomSPten, True
End Sub
Private Sub VSFlexGrid1NhomHH_AfterEdit(ByVal Row As Long, ByVal Col As Long)
On Error GoTo loi
With VSFlexGrid1NhomHH
If (.Col 0) And (.Cell(flexcpText, .RowSel, .ColSel) GuiTT) Then
If MsgBox("Bạn có muốn xoá bản ghi này hay không?", vbYesNo, "Thông báo") = vbNo Then
.Cell(flexcpText, .RowSel, .ColSel) = GuiTT
Exit Sub
Else
.Cell(flexcpForeColor, .RowSel, .ColSel) = vbRed
End If
End If
End With
loi:
If Col = 0 Then
MsgBox "Bạn không thể thay đổi dữ liệu trên cột này.", vbInformation, "Thông báo"
With VSFlexGrid1NhomHH
.Cell(flexcpForeColor, .RowSel, .ColSel) = vbBlack
End With
Exit Sub
End If
End Sub
Private Sub VSFlexGrid1NhomHH_BeforeEdit(ByVal Row As Long, ByVal Col As Long, Cancel As Boolean)
With VSFlexGrid1NhomHH
GuiTT = .Cell(flexcpText, .RowSel, .ColSel)
End With
End Sub
Private Sub VSFlexGrid1NhomHH_EnterCell()
'Gọi thủ tục VaoO
VaoO VSFlexGrid1NhomHH, Label1
End Sub
Private Sub VSFlexGrid1NhomHH_LeaveCell()
'Gọi thủ tục RoikhoiO
RoikhoiO VSFlexGrid1NhomHH
End
Các file đính kèm theo tài liệu này:
- 27566.DOC