Tài liệu Luận văn Giới thiệu ngôn ngữ Visual Basic: LUẬN VĂN TỐT NGHIỆP
Mục lục
NộI dung
Phần I
GiớI thiệu về ngôn ngữ Visual Basic
Lập trình vớI ngôn ngữ Visual Basic
Cấu trúc của một chương trình viết bằng ngôn ngữ Visual Basic
Phần II
Mục đích và yêu cầu của phần mềm
Chức năng chính của Phần mềm
Phần III
Cơ sở dữ liệu
Phần IV
Mã nguồn
Phần I : Giới thiệu ngôn ngữ Visual Basic
Ngôn ngữ Visual Basic ngày càng được sử dụng rộng rãi trong các đề án, chương trình thực hiện trong và ngoài nước. Visual Basic được xem là một công cụ phát triển phần mềm thông dụng hiện nay.
Sau phiên bản Visual Basic 1.0 là Visual Basic 2.0, đã từng chạy nhanh hơn, dễ sử dụng hơn. Đến Visual Basic 3.0 bổ sung thêm một số phương thức đơn giản, dễ điều khiển cơ sở dữ liệu hơn. Visual Basic 4.0 bổ sung thêm hơn hỗ trợ phát triển 32 bit và bắt đầu tiến trình chuyển Visual Basic thành ngôn ngữ lập trình hướng đốI tượng. Visual Basic 5.0 bổ sung khả năng tạo các điều khiển riêng. Visual Basic 6.0 có thêm nhiều chức năng mạnh như các ứng dụng In...
91 trang |
Chia sẻ: hunglv | Lượt xem: 1514 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Luận văn Giới thiệu ngôn ngữ Visual Basic, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
LUẬN VĂN TỐT NGHIỆP
Mục lục
NộI dung
Phần I
GiớI thiệu về ngôn ngữ Visual Basic
Lập trình vớI ngôn ngữ Visual Basic
Cấu trúc của một chương trình viết bằng ngôn ngữ Visual Basic
Phần II
Mục đích và yêu cầu của phần mềm
Chức năng chính của Phần mềm
Phần III
Cơ sở dữ liệu
Phần IV
Mã nguồn
Phần I : Giới thiệu ngôn ngữ Visual Basic
Ngôn ngữ Visual Basic ngày càng được sử dụng rộng rãi trong các đề án, chương trình thực hiện trong và ngoài nước. Visual Basic được xem là một công cụ phát triển phần mềm thông dụng hiện nay.
Sau phiên bản Visual Basic 1.0 là Visual Basic 2.0, đã từng chạy nhanh hơn, dễ sử dụng hơn. Đến Visual Basic 3.0 bổ sung thêm một số phương thức đơn giản, dễ điều khiển cơ sở dữ liệu hơn. Visual Basic 4.0 bổ sung thêm hơn hỗ trợ phát triển 32 bit và bắt đầu tiến trình chuyển Visual Basic thành ngôn ngữ lập trình hướng đốI tượng. Visual Basic 5.0 bổ sung khả năng tạo các điều khiển riêng. Visual Basic 6.0 có thêm nhiều chức năng mạnh như các ứng dụng Internet/ Intranet. . .v.v…..
Visual Basic gắn liền vớI khái niệm lập trình trực quan, nghĩa là khi thiết kế chương trình, bạn thấy ngay được kết quả qua từng thao tác. Visual Basic cho phép chỉnh sửa một cách đơn giản, nhanh chóng giao diện của các đốI tượng trong ứng dụng. Đó là một thuận lợI cho ngườI lập trình.
VớI Visual Basic, việc lập trình trong Windows đã trở nên hiệu quả hơn và đơn giản hơn rất nhiều. Một khả năng nữa của Visual Basic là khả năng kết hợp các thư viện liên kết động DLLl (Dynamic Link Library). DLL chính là phần mở rộng cho Visual Basic, tức là khi xây dựng một chương trình có một số yêu cầu mà Visual Basic không đáp ứng đầy đủ ta có thể viết các DLL để phụ thêm cho chương trình.
Các công cụ để thiết kế giao diện:
Như chúng ta đã biết Visual Basic là ngôn ngữ lập trình có tính hướng đốI tượng nên công việc thiết kế giao diện là rất đơn giản. Chúng ta chỉ việc tiến hành đưa các đốI tượng cần thiết trong thanh công cụ vào Form bằng cách kích – kéo sau đó thay đổI các thuộc tính của chúng trên cửa sổ Properties cho phù hợp vớI mục đích lập trình.
Form:
Form là một biểu mẫu của mỗI ứng dụng trong Visual Basic. Ta dùng Form nhằm mục đích định vị và sắp xếp các bộ phận trên nó khi thiết kế giao diện vớI ngườI sử dụng. Ta có thể xem Form như một bộ phận mà nó có thể chứa các bộ phận khác. Các thành phần trong Form chính của ứng dụng tương tác vớI các Form khác và các bộ phận của chúng tạo nên giao tiếp cho ứng dụng. Form chính là giao diện chính của ứng dụng, các Form khác có thể chứa các công cụ để nhập dữ liệu, xem xét v.v…
Trong nhiều ứng dụng của Visual Basic, kích cỡ và vị trí của biểu mẫu lúc thiết kế là kích cỡ mà ngườI dùng sẽ gặp vào lúc sử dụng. Điều này, có nghĩa là Visual Basic cho phép ta thay đổI kích cỡ và di chuyển vị trí Form đến bất cứ nơi nào trên màn hình khi chạy một đề án, bằng cách thay đổI một số thuộc tính của nó trên cửa sổ thuộc tính đốI tượng (Properties Windows ). Thực tế, một trong tính năng thiếu của Visual Basic là khả năng tiến hành các thay đổI động để đáp ứng sự kiện ngườI dùng.
Toolbox (hộp công cụ):
Toolbox là hộp công cụ chưa các biểu tượng, biểu thị cho các điều khiển mà ta có thể biểu mẫu là bảng chứa các đối tượng đã được định nghĩa sẵn của Visual Basic. Các đối tượng này được sử dụng trong Form để tạo thành giao diện cho các chương trình ứng dụng của Visual Basic. Ta có thể coi hộp công cụ là một hộp “đồ nghề” của người thiết kế chương trình.
Scrollbar (thanh cuốn):
Scrollbar là đối tượng cho phép nhận từ người dùng một giá trị tuỳ theo vị trí con chạy trên thanh cuốn thay cho các giá trị số.
Thanh cuốn có một số thuộc tính quan trọng sau:
Thuộc tính Min: xác định cận dưới của thanh cuốn.
Thuộc tính Max: xác định cận trên của thanh cuốn.
Thuộc tính Value: xác định giá trị tạm thời của thanh cuốn.
Option Button (Nút chọn):
Đối tượng nút chọn (thường được dùng nhiều nút) cho phép người dùng chọn một trong những lựa chọn đưa ra. Như vậy, tại 1 thời điểm chỉ có thể là 1 trong những nút chọn đuợc chọn
Checkbox( hộp kiểm);
Cũng như nút chọn, đối tượng hộp kiểm được dùng nhiều hộp một lần. Nhưng khác với nút chọn, hộp kiểm cho phép người dùng lựa một hay nhiều điều kiện. Như vậy tại 1 thời điểm có thể có nhiều hộp kiểm được chọn
Label(nhãn):
Đối tượng nhãn cho phép người dùng gắn nhãn 1 bộ phận nào đó của giao diện trong lúc thiết kế giao diện cho chương trình ứng dụng .
Các nhãn dùng để hiển thị thông tin không muốn người dùng thay đổi. Trong thực tế, các nhãn thường được dùng để định danh 1 hộp văn bản hoặc 1 điều khiển khác bằng việc mô tả nội dung của điều khiển đó. Một công cụ phổ biến cho việc hiển thị thông tin trợ giúp,
Picturebox, Image ( hộp ảnh, điều khiển ảnh );
Đối tượng Image và Picturebox dùng để hiển thị ảnh . Nó cho phép người thiết kế đưa hình ảnh từ các file ảnh ( .bmp , .gif …) lên Form
Textbox ( hộp văn bản );
Đối tượng Textbox dùng làm hộp nhập dữ liệu cho phép đưa các chuỗi ký tự vào Form. Có thể dùng hộp văn bản để nhập dữ liệu hoặc hiển thị văn bản . Tất cả các công cụ trong windows về chỉnh sửa văn bản như : cut , copy , paste đều dùng trong hộp văn bản
Command Button ( nút lệnh ):
Khi người dùng kích vào 1 nút lệnh trong biểu mẫu, một thao tác nào đó sẽ được thực hiện tuỳ theo thủ tục sự kiện được viết để đáp ứng sự kiện kích chuột đó .
Listbox ( hộp danh sách ):
Đối tượng Listbox cho phép kết xuất các thông tin về nhiều chuỗi kí tự vào trong nó thông qua phương thức additem. Thường được dùng để hiển thị thông tin dưới dạng danh sách có liên quan với nhau. Listbox không cho phép người dùng nhập dữ liệu vào.
Combo box ( hộp kết hợp );
Công cụ này cho phép người dùng gõ vào thông tin và hiển thị thông tin . nó có tác dụng như hộp danh sách và hộp văn bản . Hộp kết hợp có 3 loại:
Hộp kết hợp thả xuống ( drop-down combo ) : là 1 hộp văn bản cho phép người dùng gõ vào, kế bên có 1 mũi tên mà khi nhấn vào nó sẽ xổ ra 1 danh sách cho phép người sử dụng chọn lựa .
Hộp kết hợp đơn giản ( simple combo ) : luôn hiển thị danh sách và cho phép người dùng gõ vào hộp văn bản.
Hộp danh sách thả xuống ( drop- down list box) : tương tự như hộp kết hợp thả xuống. Danh sách sẽ không hiển thị sẵn nếu người dùng không nhấn vào mũi tên bên cạnh. người sử dụng chỉ có thể chọn từ danh sách, gõ vào hộp văn bản thì danh sách sẽ cuộn đúng đến phần tử yêu cầu và đánh dấu nó.
Ole ( đối tượng nhúng ):
Ole là viết tắt của Object - Linking and Embedding . Nó cho phép ta nhúng toàn bộ ứng dụng và dữ liệu từ một ứng dụng khác vào chương trình . Ole không chỉ là 1 hệ thống cho phép nhúng hay kết nối dữ liệu từ 1 ứng dụng khác mà vào thời gian chạy của chương trình ta sẽ có 1 bản sao của ứng dụng đó trong chương trình của ta. Nó có khả năng automation cho phép đóng gói các đối tượng chức năng của ứng dụng để có thể sử dụng trong ứng dụng khác.
Project explorer :
Project explorer trong Visual Basic 6.0 giúp quản lý và định hướng các đề án, biểu mẫu, các module,…. Visual Basic cho phép tổ chức nhiều đề án trong 1 nhóm gọi là project groups. Ta có thể lưu tập hợp các đề án trong Visual Basic thành 1 tập tin nhóm đề án. Các tập tin này có phần mở rộng là .Vbg .
Propeties windows ( cửa sổ thuộc tính ):
Là nơi chứa danh sách các thuộc tính của một đối tượng cụ thể. Các thuộc tính này có thể khác nhau với từng đối tượng cụ thể. Ta có thể đặt các thuộc tính cho phù hợp với các chương trình ứng dụng.
Lập trình trong Visual Basic:
Ở phần một, chúng ta mới chỉ biết tuỳ biến biểu mẫu bằng cách bổ xung các điều khiển vào cho phù hợp với yêu cầu của chương trình. Tuy nhiên, đó chỉ có thể coi là bộ mặt của chương trình. Muốn chương trình chạy được thì chúng ta phải thêm vào các thành phần khác như lệnh, dữ liệu. . và cách thức thể hiển chúng trong chương trình.
Khi lập trình trong Visual Basic thì phần lớn các mã được xử lý để đáp ứng sự kiện. Ví dụ như sự kiện kích chuột, bấm phím, load form…Các dòng mã thi hành trong một chương trình Visual Basic phải nằm trong các thủ tục hoặc hàm, các dòng lệnh nằm ngoài sẽ không làm việc. Toàn bộ mã lệnh được gõ vào trong cửa sổ code.
Cửa sổ code:
Cửa số code bao gồm các thành phần sau:
Thanh tách: cửa sổ code có một thanh tách (Split bar) nằm đầu thanh cuộn dọc. Mục đích của nó là: khi các dòng mã trở nên nhiều, ta có thể chia cửa sổ code thành 2 phần.
Hộp liệt kê Object: nằm ở đầu cửa sổ code bên trái, nó liệt kê tất cả các điều khiển có trên biểu mẫu và thêm vào một đối tượng có tên là: General. Khi thả hộp liệt kê và nhắp vào một đối tượng nào đó thì sẽ đưa ta đến phần mã viết cho đối tượng đó.
Hộp Procedure: hộp này cung cấp mọi sự kiện mà đối tượng đã được lựa chọn trong hộp liệt kê object.
Intellisence:
Intellisence là một công cụ thông minh, nó giúp ta đỡ mất công gõ và tra cứu. Intellisence mở các hộp liệt kê cùng với các thông tin về đối tượng mà ta đang tiếp cận. Nó có 3 phần:
QuickInfo: cho ta thông tin về cú pháp của 1 lệnh Visual Basic. Mỗi khi nhập một từ khoá theo sau là một dấu cách hoặc dấu chấm. . .một hộp thoại sẽ hiện ra cung cấp cú pháp của thành phần đó.
List properties/Methods: tính năng này đưa ra một danh sách các tính chất và phương pháp của đối tượng ngay khi ta gõ dấu chấm.
Available constant : tính năng này cung cấp một danh sách các hằng sẵn có.
Biến:
Trong Visual Basic, tên biến có thể dài tối đa 255 kí tự. Kí tự đầu tiên phải là một chữ cái và tên biến có thể là một tổ hợp chữ cái, chữ số và dấu gạch dưới. Không được dùng các từ khoá trong Visual Basic ( như end, print. . .) làm tên biến. Visual Basic không phân biệt chữ hoa, chữ thường.
Cách khai báo biến: Dim as
Phạm vi sử dụng biến phụ thuộc vào cách khai báo biến và vị trí đặt dòng lênh khai báo.
Các kiểu dữ liệu:
String: các biến string lưu giữ các kí tự. Một chuỗi có thể có một hay nhiều kí tự.
Integer: biến nguyên lưu giữ các giá trị số nguyên từ -32768 đến +32767.
Long Integer: biến số nguyên dài lưu giữ các số nguyên giữa: -2147483648 đến +214783647.
Single precision: các số có phần thập phân gồm: Single precision có độ chính xác đến 7 chữ số và double precision có độ chính xác lên đến 16 vị trí.
Currency: Biến tiền tệ là một kiểu mới. Kiểu này cho ta 15 chữ số trước dấu thập phân và 4 chữ số sau dấu thập phân.
Date: kiểu dữ liệu ngày tháng.
Byte: kiểu byte có thể lưu giữ các số nguyên từ 0 đến 255.
Boolean: đây là kiểu logic với các giá trị True/False.
Variant: kiểu này được thiết kế để lưu mọi dữ liệu khác nhau của Visual Basic.
Các toán tử:
Các toán tử tính toán:
Các toán tử
Ý nghĩa
Ví dụ
+
Có thể dùng để cộng hai toán hạng hoặc hai chuỗi với nhau.
X=y+1
A=”A”+”B”
-
trừ 2 số hạng
X=y-1
*
Nhân 2 số hạng
X=y*2
/
Chia, trả về kiểu số thực
Y=4/2
\
Chia lấy nguyên
X=3\2(x=1)
Mod
Chia lấy dư
X=7 mod 4 (x=3)
^
Lấy luỹ thừa
X=y^3 (X=y3)
Các toán tử so sánh:
Toán tử
Ý nghĩa
>
So sánh xem số thứ nhất có lớn hơn số thứ 2 không
<
So sánh xem số thứ nhất có nhỏ hơn số thứ 2 không.
=
So sánh số thứ nhất có bằng số thứ 2 không.
So sánh số thứ nhất có khác số thứ 2 không.
>=
So sánh số thứ nhất có lớn hơn hay bằng số thứ 2 không
<=
So sánh số thứ nhất có nhỏ hơn hay bằng số thứ 2 không
Các toán tử Boolean:
Toán tử
Ý nghĩa
And
Chỉ nhận giá trị True nếu cả 2 số hạng đều là True
Or
Chỉ nhận giá trị False nếu cả 2 số hạng đều là False
Not
Phủ định giá trị của số hạng
Cấu trúc điều khiển:
Các cấu trúc chọn:
Cấu trúc If….Then…
Dạng 1: If then End If
Khi gặp một điều lệnh If…..then, Visual Basic sẽ kiểm tra , nếu là True thì máy sẽ thực hiện nếu kêt quả là False thì máy sẽ bỏ qua lệnh và thực hiện những lệnh sau End If.
Dạng 2: If then else
Khi gặp lệnh này, nếu lấy giá trị True thì thực hiện bỏ qua , còn nếu lấy giá trị False thì bỏ qua và thực hiện .
Nhiều khi bạn phải thực hiện nhiều lệnh ứng với điều kiện là True hay False. Để làm được điều đó, ta sử dụng dạng khác của cấu trúc If …..then, có dạng tổng quát như sau:
If then
else
end if
Cấu trúc Select Case:
Cú pháp:
Select case
Case
…………………
Case
……………..
Case else
End Select
Cấu trúc lặp:
Cấu trúc lặp có điều kiện:
Cú pháp 1:
While
Wend
Cú pháp 2:
Do
While
được thực hiện lặp đi lặp lại nếu vẫn nhận giá trị True. Do đó, để thoát khỏi vòng lặp thì trong . Trong cú pháp 1, thì được xét trước khi thực hiện các câu lệnh, còn trong cú pháp 2 thì các câu lệnh được thực hiện trước khi xét đến .
Cấu trúc For …Next:
Cú pháp:
For = to [Step ]
Next biến
Đây là lệnh lặp biết trước số lần lặp. Khi gặp cấu trúc lệnh này, Visual Basic sẽ gán giá trị cho , thực hiện , rồi tăng lên một giá trị tuỳ theo . Vòng lặp này sẽ kết thúc khi có giá trị lớn hơn
Cấu trúc For Each….Next:
For Each In
Next
Khi gặp cấu trúc này, Visual Basic sẽ lặp lại cho từng phần tử của mảng, hay các điều khiển…Người ta thường dùng cấu trúc này để duyệt nhiều đối tượng điều khiển.
Thủ tục:
Trong Visual Basic, một thủ tục mà trước khi ta muốn sử dụng nó thì ta phải định nghĩa nó và ta phải dùng từ khoá “Sub” để khai báo nó.
Private/Public Sub
End Sub
Nếu dùng từ khoá Public, thủ tục có thể được dùng trong bất kì Form nào trong chương trình.
Nếu ta khai báo bằng từ khoá Private thì thủ tục chỉ có thể được dùng được trong Form,module chứa nó mà thôi.
Giá trị được truyền cho thủ tục thông qua tham số. Một thủ tục có thể có hoặc không có tham số. Khi gọi một thủ tục có tham số, ta phải truyền giá trị cho tham số của thủ tục đó. Trong Visual Basic, có 2 cách để truyền thám số : By Ref ( truyền tham chiếu) và By Val ( truyền tham trị ).
Private/Public Sub ( as , , v.v…)
End Sub
Hiển thị và nhận thông tin:
Ta sử dụng các hộp đối thoại để hiển thị thông tin cho người dùng hoặc nhận thông tin. Trong Visual Basic có 4 hộp thoại, đó là:
Thông điệp: (MesageBox)
Là một hộp thoại đơn giản nhất, gồm 2 loại:
Chỉ cung cấp thông tin
Tương tác với người sử dụng.
Hộp nhập (InputBox):
InputBox dùng để nhập thông tin từ người dùng, nó bao gồm một dòng thông báo, hộp soạn thảo và 2 nút “OK” và “Cancel”. Nó có mặt hạn chế là chỉ cho người sử dụng nhập rất ít thông tin.
Các hộp thoại thông dụng
Bởi hộp thoại này xuất hiện mọi nơi, nên thay vì phải viết chương trình nhiều lần, Windows chứa chúng trong cùng một DLL, Comdlg32.dll hay Comdlg.ocx
Có 6 hộp thoại:
mở tập tin (File Open)
Lưu tập tin (File save).
Chọn mầu (Color).
Chọn phông (Font).
Trợ giúp (Help).
In ấn (Print).
Hộp thoại hiệu chỉnh (Custom Dialog).
Đây là loại hộp đối thoại do người lập trình định nghĩa để tương thích với yêu cầu nhận thông tin của người sử dụng. Nó có ưu điểm là ta có thể thiết kế theo ý thích. Trở ngại của nó là khi thi hành từng biểu mẫu thì sẽ sử dụng tài nguyên hệ thống như bộ nhớ, thời gian CPU. Nếu dùng nhiều hộp thoại hiệu chỉnh trong ứng dụng có thể mất tài nguyên hệ thống và dễ bị treo máy.
PhÇn II. Mục đích và chức năng chính của chương trình
Quản lý một trung tâm giới thiệu và buôn bán bất động sản là một bài toán lớn . Do đặc thù của công việc này cần phải có sự nhanh nhạy chính xác và đặc biệt cần 1 luồng thông tin đa chiều .
Vậy nên ,việc tạo lập 1 phần mềm quản lý các giao dịch nhà đất thông qua mạng thông tin toàn cầu là rất cần thiết .
Với phần mềm này , việc thông tin cho các khách hàng có nhu cầu mua bán , thuê mượn nhà đất sẽ được tiện lợi , nhanh chóng hơn.
Khi sử dụng chương trình này , khách hàng ( customer ) sẽ phải mua một account đăng ký quyền truy cập để có thể xem thông tin giao dịch ,đồng thời có thể đăng các nhu cầu giao dịch của chính mình thông qua việc email những người quản trị chương trình ( administrator ).
Khi nhận được email của khách hàng, administrator sẽ đăng thông
tin này lên sau khi đã kiểm chứng tính chính xác của thông tin.
* Chức năng chính của chương trình
* Bảng phân quyền sử dụng chương trình
Menu
Function
Administrator
Customer
Transact
My House
Ok
Ok
Buying
None
Ok
Selling
Ok
None
Rent
None
Ok
Hire
Ok
None
Find transaction
Ok
Ok
User
Update user
Ok
None
Find user
Ok
None
View
Browse transaction
Ok
Ok
View user
Ok
Ok
User log summary
Ok
None
View accessed time
None
Ok
Tool
Change user password
Ok
Ok
Option
Ok
None
Help
Ok
Ok
Exit
Ok
Ok
* Chi tiết tính năng của chương trình
1. Transaction (giao dịch )
1.1 My House
- Trong chức năng này , người sử dụng chương trình có thê xem thông tin cuả mình đã được đăng tải bằng cách click vào từng thanh công cụ ( rent , buying , selling , hire )
- người sử dụng có thể gửi hoặc nhận thư điện tử trong giao dịch với thanh công cụ my inbox
- do nhu cầu thực tế , nên chương trình chỉ cho phép khách hàng ( customer) được đưa thông tin cần mua ( buying ) và thông tin cần thuê ( rent ) và ngược lại administrator chỉ được đăng lên những thông tin giao dịch bán ( selling ) và cho thuê ( hire )
1.2 Buying
-Chức năng này cho phép người sử dụng xem những thông tin chi tiết về việc cần mua nhà đất đang được đăng hiện thời
*Buying id : id bán
*User id : tên người đăng thông tin
*District : quận
*Street: phố
*location: địa điểm
*type house : tình trạng giấy tờ nhà đất
*min/max area : diện tích nhà đất người đăng thông tin có thể
chấp nhận
*direction : hướng nhà đất
*width : mặt tiền
*number of floor: số tầng
*floor no : vị trí tầng
*house description : Đăng thông tin chi tiết thêm của người cần
chấp nhận
-Với các button trên form này như : add , find , modify , cancel, save , close, delete . Người sử dụng có thể chỉnh sửa ,tìm kiếm , đăng thêm thông tin cũng như lưu giữ và hủy bỏ thông tin
-Riêng đối với những button như add và modify người sử dụng là khách hàng ( customer) chỉ có thÓ chỉnh sửa và đưa thêm thông tin cho account của chính mình
1.3 Rent
Công cụ này cũng tương tự như thanh Buying nhưng là thông tin về giao dịch cho thuê.
1.4/ 1.5 Selling/ hire
Hai mục này , chương trình chỉ đăng quyền sử dụng cho administrator . với thông tin cần bán ( selling ) và cần thuê ( hire ) người quản trị cũng có thể chỉnh sửa và đăng thêm thông tin mới
- Trên form này cũng có những textbox và button tương tự như rent và buying
1.6 Find transaction
-Đây là phần tìm kiếm , nó giúp cho người sự dụng chương trình tiếp cận những thông tin mình cần một cách hiệu quả, nhanh chóng
- Trên form chính của mục này cho phép người sử dụng công cụ tìm kiếm theo
* transaction type ( kiÓu giao dịch ) : buying, rent,
hire, selling
*transaction id ( id của giao dịch )
*author id ( tên người sử dụng )
hộp checkbox : match similar id/ author dùng cho phép tìm kiếm tương tự
- Với button more : cho phép người sử dụng có thể tìm kiếm theo những tiêu mục cụ thÓ hơn
* district : tìm theo quận
* direction : tìm theo hướng nhà ( đất )
* location : tìm theo tình trạng vị trí nhà ( mặt tiền , trong ngõ )
* street : tìm theo phố
* type : tìm theo kiểu nhà
* width : tìm theo kiểu mặt tiền nhà
* area : tìm theo diện tích nhà ( đất )
khoảng diện tích có thÓ thực hiện giao dịch
* price : tìm theo giá cả ( vnd . usd . tael of gold )
khả năng tài chính có thÓ thực hiện giao dịch
* Date of update : tìm theo ngày ( khoảng thời gian ) được đăng
thông tin
2. User ( người sử dụng )
Đây là công cụ mà chương trình chỉ cho phép administrator được truy cập và thực hiện những thao tác quản lý người sử dụng chương trình
2.1 update user
- Phần này cho phép administrator chỉnh sửa và cập nhật thông tin ( modify )người sử dụng chương trình , đồng thời có thể xóa bỏ thông tin hay tạo lập một account mới ( add new user )
- Thông tin của 1 account gồm có
* user id : tên của id
* password : tạo mật khÈu
* confirm password : xác nhận lại mật khÈu
* permission : đăng quyền sử dụng ( administrator , customer )
* clear password : xóa mật khÈu
* user name : tên người sử dụng
* identify code : mã người sử dụng
* sex : giới tính người sử dụng
* birth of year : thông tin lứa tuổi người sử dụng
* primacy address : địa chỉ người sử dụng
* email : địa chỉ thư điện tử
* hand phone/ phone number : điện thoại người sử dụng chương
trình
- khách hàng khi sử dụng chương trình này sẽ phải thanh toán 1 khoản tiền để mua thời gian truy cập và sử dụng thông tin . Thời gian này sẽ được người quản trị chương trình ( administrator ) quản lý và cập nhật .
- hộp Time expired : hiÓn thị thời gian người sử dụng chương trình
còn trong tài khoản
- nút reset : administrator tạo lại thời gian truy cập của khách
hàng
- nút upgrate : adminstrator cung cấp thời gian truy cập cho
khách hàng sau khi nhận được thanh toán
2.2 find user
Form này cho phép administrator thực hiện thao tác tìm kiếm thông tin người sử dụng thông qua 2 thanh công cụ user account( account người sử dụng ) và user detail information ( thông tin chi tiết khách hàng ) và nút start search
- Tìm kiếm theo user account :
* hộp combo box : user id : tìm kiếm theo id người sử dụng
check box match similar user id : cho phép tìm kiếm tương đối
* Nút more : cho phép tìm kiếm thông tin cụ thÓ hơn
* Access time : tìm kiếm theo thời gian truy cập của người sử
dụng chương trình
* Total account : tìm kiếm theo khoản tiền khách hàng đã thanh
toán
* Size of inbox : tìm kiếm theo dung lượng của email người sử
dụng
* Size remain : tìm kiếm theo dung lượng còn lại của email
người sử dụng
- Tìm kiếm theo user detail information
* phần chính của thanh công cụ này tương tự cũng như phần chính của thanh tìm kiếm user account
* click nút more : Admin có thể tìm kiếm thông tin người sử dụng một cách chi tiết hơn
* user name : tìm kiếm theo tên người sử dụng
match similar username tìm kiếm tên tương tự
* id card : tìm kiếm theo số id người sử dụng
contain word : cho phép tìm kiếm liên quan
* year of born : tìm kiếm theo năm sinh người sử dụng
* phone/mobile/email : tìm kiếm theo số điện thoại, địa chỉ thư điện
tử người sử dụng
* contact address : tìm kiếm theo địa chỉ liên lạc người sử dụng
3. View
3.1 browse transaction (duyệt giao dịch)
- Trong form này người sử dụng có thể thực hiện thao tác tìm kiếm thông tin 1 cách tổng quát, nhanh chóng thông qua những thanh công cụ selling , buying, for rent , hire
- Với những combo box ,item id , author id, district , street người sử dụng duyệt thông tin tổng hợp , kết hợp với thanh công cụ bên trái form
- Nút Detail : cho phép người sử dụng chương trình xem chi tiết của thông tin đang hiển thị
- Nút advanced search : chức năng của nút này giống chức năng của nút find transaction của phần 1.6
- Nút new advetisment : người sử dụng chức năng này có thê đăng thông tin giao dịch mới ( riêng đối với customer, phần này chỉ có thê đăng thông tin cần bán (buying ) và cho thuê ( rent ) . Nếu muốn đăng thông tin cần mua và cần thuê sẽ phải liên hệ với administrator thông qua email
-Nút contact author : cho người sử dụng sử dụng gửi email liên lạc với các user khác
3.2 view user
- Xem thông tin chi tiết cá nhân của mình , trong phần naỳ có check box có cho phép người khác xem thông tin cá nhân của mình hay không .
- Nút Account : thay đổi mật khẩu
3.3 View accessed time
Đây là phần rành riêng cho khách hàng để xem thông tin chi tiết thời gian truy cập của riêng mình
3.4 User log summary
Phần này rành riêng cho những administrator , để có thể xem chi tiết thời gian truy cập và sử dụng chương trình của khách hàng
4. Tools
4.1 Change user password
Cho người sử dụng chương trình có thể thay đổi password truy cập của riêng mình .
4.2 option
Mục này chỉ rành riêng cho administrator , nó giúp cho công tác quản trị chương trình chạy trên INTERNET hoặc mạng LAN
* path : thanh công cụ này cho người quản trị mạng chỉ đường dẫn cho chương trình chạy trên mạng nội bộ (local ) hay mạng toàn cầu (network )
* Setup infor :
- check request : hiển thị thời gian yêu cầu từ server đến máy trạm
- computer : tên máy kết nối với server
- rate of exchange : hiển thị tỉ giá vàng và dollar quy đổi ra vnd
* Edit item :
administrator dùng thanh công cụ này để thay đổi thêm bớt thông tin về địa giới, quận huyện , phố ,tình trạng giấy tờ của nhà (đất)
giúp cho khách hàng khi truy cập , sử dụng được dễ dàng .
* Backup
Đây là phần thông tin về những cơ sở dữ liệu được sao chép dự phòng trên sever
- path : chỉ đường dẫn lưu giữ cơ sở dữ liệu
- save/ delete/ restore : lưu, xóa , khôi phục dữ liệu
Phần III : Cơ sở dữ liệu
Bảng 1 Bảng 2
Bảng 3
Bảng 4
Bảng5
Bảng 6
Bảng 7
Bảng 8
Bảng 9
Bảng 10
Bảng 11
Bảng 12
Bảng 13 Bảng 14
Bảng 15
Bảng 16
Bảng 17
Bảng 18
Bảng 19
Phần IV : Mã nguồn 1 số Form chính
1.Form my house
Private Sub cmdAdd_Click(Index As Integer)
Select Case Index
Case 0
frm_adv_new.Show
Case 1
End Select
End Sub
Private Sub cmdCompose_Click(Index As Integer)
Select Case Index
Case 0
TableT = tblTrans
TableM = tblMessage
frmCompose.Show (1)
Case 1
End Select
End Sub
Private Sub CmdDelete_Click()
Dim Code As String
If flagStatus Then
MSFGrid.Col = 0
Else
MSFGrid.Col = 4
End If
Code = MSFGrid.Text
If Code = "" Then
Exit Sub
End If
Dim Response As String
' On Error GoTo lblDelBut
If flagStatus Then
Response = MsgBox("Are you sure delete " & _
"this Transaction ?", vbYesNo, "Warning !")
Else
Response = MsgBox("Are you sure delete " & _
"this Message ?", vbYesNo, "Warning !")
End If
Select Case Response
Case vbYes
MSFGrid.row = SelTransCell
If flagStatus Then
MSFGrid.Col = 0
Else
MSFGrid.Col = 4
End If
Code = MSFGrid.Text
If Code = "" Then
Exit Sub
End If
rs.MoveFirst
Do While Not rs.EOF
If flagStatus Then
If rs.Fields(0) = Trim(Code) Then
rs.Delete
LoadTrans (tblTrans)
cmdDelete.Enabled = False
Exit Sub
End If
Else
If rs.Fields(0) = CLng(Code) Then
rs.Delete
LoadMessage (tblMessage)
cmdDelete.Enabled = False
Exit Sub
End If
End If
rs.MoveNext
Loop
Case vbNo
End Select
'lblDelBut:
End Sub
Private Sub cmdExit_Click()
Unload Me
End Sub
Private Sub Form_Load()
MonthView1.Value = Month(Now) & "/" & Day(Now) & "/" & Year(Now)
'Connection Database
Set cn = cnNet
Set rs = New ADODB.Recordset
Label1.Caption = " " + User_ID
InitialValue
ChangeInterface 'hide check box cho cac hom thu
LblBorderStyleRestart
LblRestartColor
InstallGrid
changeBkColorCell
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
LblRestartColor
End Sub
' Dua Backcolor cua cac label ve mau` cua Form
Private Sub LblRestartColor()
Dim i As Byte
For i = 0 To 4 Step 1
lblTrans(i).ForeColor = vbBlack
Next i
End Sub
Private Sub lblTrans_Click(Index As Integer)
If Not flagStatus Then ' tranh goi lap ham hideInbox
flagStatus = True
ChangeInterface
End If
cmdDelete.Enabled = False
MouseClick (Index)
Select Case Index
Case 0 'Selling
tblTrans = "Tbl_Selling"
tblMessage = "Tbl_Message_Selling"
EcmdAdd (False)
Case 1 'Hire
tblTrans = "Tbl_Hire"
tblMessage = "Tbl_Message_Hire"
EcmdAdd (False)
Case 2 'Buying
tblTrans = "Tbl_Buying"
tblMessage = "Tbl_Message_Buying"
EcmdAdd (True)
Case 3 'Rent
tblTrans = "Tbl_Rent"
tblMessage = "Tbl_Message_Rent"
EcmdAdd (True)
Case 4 'Inbox
tblMessage = "Tbl_Message_Account"
LoadMessage (tblMessage)
TSend = False
MSFGrid_DblClick
GoTo jump
End Select
LoadTrans (tblTrans)
TSend = False
jump:
BeforeClick = Index 'Xac dinh vi tri lbl da mo truoc do
End Sub
Private Sub MouseClick(Index As Integer)
'lblTrans(BeforeClick).BorderStyle = 0
'lblTrans(Index).BorderStyle = 1
Dim i As Byte
For i = 0 To 4
lblTrans(i).ButtonType = [Flat Highlight]
Next i
lblTrans(Index).ButtonType = [KDE 2]
lblTrans(Index).Refresh
End Sub
Private Sub MSFGrid_Click()
SelTransCell = MSFGrid.MouseRow
cmdDelete.Enabled = True
End Sub
Private Sub InitialValue()
flagStatus = True 'o trang thai Transaction Management
SelTransCell = -1 ' khong tro vao bat ky Row nao trong Grid
chbBeforeClick = 0
BeforeMove = 0
BeforeClick = 0
cmdDelete.Enabled = False
'lblSubject.Caption = "Transaction Management"
End Sub
Private Sub MSFGrid_DblClick()
On Error Resume Next
If flagStatus Then
SelMailCell = MSFGrid.MouseRow
flagStatus = False
ChangeInterface
MSFGrid.row = SelMailCell
MSFGrid.Col = 0
Code = MSFGrid.Text
MSFGrid.Col = 1
Tcode = Code
'If lblTrans(4).BorderStyle = 0 Then
'lblNameInbox.Caption = Code + " - " + MSFGrid.Text
'End If
LoadMessage (tblMessage)
cmdDelete.Enabled = False
Else
MSFGrid.row = MSFGrid.MouseRow
MSFGrid.Col = 0
frmCheck.lblFrom.Caption = MSFGrid.Text
MSFGrid.Col = 2
frmCheck.lblDate.Caption = MSFGrid.Text
MSFGrid.Col = 1
frmCheck.lblSubject.Caption = MSFGrid.Text
MSFGrid.Col = 4
MCode = Trim(MSFGrid.Text)
If MCode = "" Then
Exit Sub
End If
frmCheck.Show (1)
End If
End Sub
==================================================
2.Form Buying
Private Sub AddTypeHouse()
Dim rsTHouse As ADODB.Recordset
Dim SQL As String
On Error GoTo Err
Set rsTHouse = New ADODB.Recordset
SQL = "Select * from Tbl_Type_House;"
rsTHouse.Open SQL, cnNet, adOpenKeyset, adLockOptimistic, adCmdText
rsTHouse.MoveFirst
Do While Not rsTHouse.EOF
cobTHouse.AddItem rsTHouse!thouse
rsTHouse.MoveNext
Loop
rsTHouse.Close
Err:
End Sub
Private Sub AddDistrict()
Dim rsDistrict As ADODB.Recordset
Dim SQL As String
On Error GoTo Err
Set rsDistrict = New ADODB.Recordset
SQL = "Select * from Tbl_District;"
rsDistrict.Open SQL, cnNet, adOpenStatic, adLockOptimistic, adCmdText
rsDistrict.MoveFirst
Do While Not rsDistrict.EOF
cobDistrict.AddItem rsDistrict!District
rsDistrict.MoveNext
Loop
rsDistrict.Close
Err:
End Sub
Private Sub AddUserID()
Dim rsUserID As ADODB.Recordset
Dim SQL As String
On Error GoTo Err
Set rsUserID = New ADODB.Recordset
SQL = "Select * from Tbl_User_Infomation"
rsUserID.Open SQL, cnNet, adOpenStatic, adLockOptimistic, adCmdText
rsUserID.MoveFirst
Do While Not rsUserID.EOF
cobUserID.AddItem rsUserID!userid
rsUserID.MoveNext
Loop
rsUserID.Close
Err:
End Sub
Private Sub cmdAdd_Click()
Dim ctl As Control
For Each ctl In Controls
If TypeOf ctl Is CommandButton Then
ctl.Enabled = False
End If
Next ctl
cmdSave.Enabled = True
cmdCancel.Enabled = True
cmdFind.Enabled = True
' cmdHelp.Enabled = True
For Each ctl In Controls
If TypeOf ctl Is TextBox Or TypeOf ctl Is ComboBox Or TypeOf ctl Is TextBox Then
ctl.Text = ""
ctl.Enabled = True
End If
Next ctl
txtBuyID.Enabled = False
txtBuyID.Text = AutoCode(3, rsBuy)
addFlag = True
If IsAdmin = True Then
cobUserID.Enabled = True
Else
cobUserID.Enabled = Not True
cobUserID.Text = User_ID
End If
End Sub
Private Sub cmdDel_Click()
If rsBuy.RecordCount <= 0 Then
LockNavi False
cmdDel.Enabled = False
Exit Sub
End If
Delete
If AnsMsg = vbYes Then
Call DelTransact(txtBuyID.Text, cobUserID.Text)
End If
If rsBuy.RecordCount <= 0 Then
Dim ctl As Control
For Each ctl In Controls
If TypeOf ctl Is TextBox Or TypeOf ctl Is ComboBox Then
ctl.Text = ""
End If
Next ctl
LockNavi False
cmdDel.Enabled = False
cmdModify.Enabled = False
Exit Sub
End If
End Sub
Private Sub cmdFind_Click()
Unload Me
frm_find_trans.Show
End Sub
Private Sub cmdFirst_Click()
If rsBuy.RecordCount <= 0 Then
Exit Sub
End If
rsBuy.MoveFirst
Display
End Sub
Private Sub cmdLast_Click()
If rsBuy.RecordCount <= 0 Then
Exit Sub
End If
rsBuy.MoveLast
Display
End Sub
Private Sub cmdModify_Click()
Dim ctl As Control
For Each ctl In Controls
If TypeOf ctl Is TextBox Or TypeOf ctl Is ComboBox Then
ctl.Enabled = True
End If
If TypeOf ctl Is CommandButton Then
ctl.Enabled = False
End If
Next ctl
cobUserID.Enabled = False
cmdCancel.Enabled = True
cmdSave.Enabled = True
addFlag = False
End Sub
Private Sub cmdNext_Click()
If rsBuy.RecordCount <= 0 Then
Exit Sub
End If
rsBuy.MoveNext
If rsBuy.EOF Then rsBuy.MoveLast
Display
End Sub
Private Sub cmdPrevious_Click()
If rsBuy.RecordCount <= 0 Then
Exit Sub
End If
rsBuy.MovePrevious
If rsBuy.BOF Then rsBuy.MoveFirst
Display
End Sub
Private Sub cmdExit_Click()
Unload Me
End Sub
Private Sub Form_Load()
Set rsBuy = New ADODB.Recordset
rsBuy.Open "Tbl_Buying", cnNet, adOpenKeyset, adLockPessimistic, adCmdTable
'If UserAdd Then
' UserAdd = False
'End If
'MonthView.Value =
If IsAdmin = False Then
cmdModify.Enabled = False
cmdDel.Enabled = False
Else
cmdModify.Enabled = Not False
cmdDel.Enabled = Not False
End If
MonthView.Value = Month(Now) & "/" & Day(Now) & "/" & Year(Now)
AddDistrict
AddTypeHouse
AddUserID
If rsBuy.RecordCount <= 0 Then
LockNavi False
cmdDel.Enabled = False
cmdModify.Enabled = False
End If
End Sub
Private Sub cmdCancel_Click()
'If UserAdd Then
' cmdExit.Enabled = True
' Unload Me
'End If
If IsAdmin = False Then
cmdModify.Enabled = False
cmdDel.Enabled = False
Else
cmdModify.Enabled = Not False
cmdDel.Enabled = Not False
End If
LockNavi True
cmdAdd.Enabled = True
cmdFind.Enabled = True
cmdSave.Enabled = False
If rsBuy.RecordCount <= 0 Then
LockNavi False
LockCtl False
cmdDel.Enabled = False
cmdCancel.Enabled = False
cmdModify.Enabled = False
Dim ctl As Control
EmptyCtl
Exit Sub
End If
rsBuy.CancelUpdate
rsBuy.MovePrevious
If rsBuy.BOF Then rsBuy.MoveFirst
If rsBuy.EOF Then rsBuy.MoveLast
Display
If IsAdmin = False And LCase(cobUserID.Text) = LCase(User_ID) Then
cmdDel.Enabled = True
cmdModify.Enabled = True
End If
End Sub
Private Sub cmdSave_Click()
Save
If Saved = True Then
cmdCancel_Click
End If
addFlag = False
If UserAdd Then
If Saved = True Then
Call MakeTransact(txtBuyID.Text, cobUserID.Text)
Unload Me
End If
End If
End Sub
==================================================
3. Form search transaction
Private Sub chk_area_Click()
If chk_area.Value = 1 Then
frm_area.Height = 1475
frm_floor.Top = 5520
frm_expired.Top = frm_floor.Top + frm_floor.Height + 100
If chk_expired.Value = 1 Then
Me.Height = 8300
Else
Me.Height = 7800
End If
chk_area.ForeColor = &HFF0000
Else
If chk_date.Value = 0 And chk_price.Value = 0 Then
If chk_expired.Value = 1 Then
Me.Height = 7200
Else
Me.Height = 6600
End If
frm_floor.Top = 4380
frm_expired.Top = frm_floor.Top + frm_floor.Height + 100
End If
chk_area.ForeColor = &H808080
frm_area.Height = 375
End If
End Sub
Private Sub chk_date_Click()
If chk_date.Value = 1 Then
frm_date.Height = 1475
If chk_expired.Value = 1 Then
Me.Height = 8300
Else
Me.Height = 7800
End If
frm_floor.Top = 5520
frm_expired.Top = frm_floor.Top + frm_floor.Height + 100
chk_date.ForeColor = &HFF0000
Else
If chk_area.Value = 0 And chk_price.Value = 0 Then
If chk_expired.Value = 1 Then
Me.Height = 7200
Else
Me.Height = 6600
End If
frm_floor.Top = 4380
frm_expired.Top = frm_floor.Top + frm_floor.Height + 100
End If
chk_date.ForeColor = &H808080
frm_date.Height = 385
End If
End Sub
Private Sub chk_direct_Click()
If chk_direct.Value = 1 Then
cmb_direct.Visible = True
chk_direct.ForeColor = &HFF0000
Else
cmb_direct.Visible = False
chk_direct.ForeColor = &H808080
End If
End Sub
Private Sub chk_dist_Click()
If chk_dist.Value = 1 Then
cmb_dist.Visible = True
chk_dist.ForeColor = &HFF0000
Else
cmb_dist.Visible = False
chk_dist.ForeColor = &H808080
End If
End Sub
Private Sub chk_expired_Click()
If chk_expired.Value = 1 Then
chk_expired.ForeColor = &HFF0000
frm_expired.Height = 900
Me.Height = Me.Height + 500
Else
chk_expired.ForeColor = &H808080
frm_expired.Height = 345
Me.Height = Me.Height - 500
End If
End Sub
Private Sub chk_floor_num_Click()
If chk_floor_num.Value = 1 Then
cmb_operator1.Visible = True
lbl1.Visible = True
txt_value1.Visible = True
frm_floor.Width = 7245
chk_floor_num.ForeColor = &HFF0000
Else
chk_floor_num.ForeColor = &H808080
If chk_tot_floor.Value = 0 Then
frm_floor.Width = 1980
End If
cmb_operator1.Visible = False
lbl1.Visible = False
txt_value1.Visible = False
End If
End Sub
Private Sub chk_h_type_Click()
If chk_h_type.Value = 1 Then
chk_floor_num.Value = 0
chk_tot_floor.Value = 0
If cmb_h_type.Text = cmb_h_type.List(6) Or cmb_h_type.Text = cmb_h_type.List(7) Or cmb_h_type.Text = cmb_h_type.List(8) Then
chk_floor_num.Enabled = False
chk_tot_floor.Enabled = False
Else
chk_floor_num.Enabled = True
chk_tot_floor.Enabled = True
End If
cmb_h_type.Visible = True
chk_h_type.ForeColor = &HFF0000
Else
chk_floor_num.Value = 0
chk_tot_floor.Value = 0
chk_floor_num.Enabled = False
chk_tot_floor.Enabled = False
cmb_h_type.Visible = False
chk_h_type.ForeColor = &H808080
End If
End Sub
Private Sub chk_loc_Click()
If chk_loc.Value = 1 Then
cmb_loc.Visible = True
chk_loc.ForeColor = &HFF0000
Else
chk_loc.ForeColor = &H808080
cmb_loc.Visible = False
End If
End Sub
Private Sub chk_price_Click()
If chk_price.Value = 1 Then
cmb_cur.Visible = True
frm_price.Height = 1475
If chk_expired.Value = 1 Then
Me.Height = 8300
Else
Me.Height = 7800
End If
frm_floor.Top = 5520
frm_expired.Top = frm_floor.Top + frm_floor.Height + 100
chk_price.ForeColor = &HFF0000
Else
If chk_date.Value = 0 And chk_area.Value = 0 Then
If chk_expired.Value = 1 Then
Me.Height = 7200
Else
Me.Height = 6600
End If
frm_floor.Top = 4380
frm_expired.Top = frm_floor.Top + frm_floor.Height + 100
End If
frm_price.Height = 375
chk_price.ForeColor = &H808080
cmb_cur.Visible = False
End If
End Sub
Private Sub chk_street_Click()
If chk_street.Value = 1 Then
cmb_street.Visible = True
chk_street.ForeColor = &HFF0000
Else
cmb_street.Visible = False
chk_street.ForeColor = &H808080
End If
End Sub
Private Sub chk_tot_floor_Click()
If chk_tot_floor.Value = 1 Then
cmb_operator2.Visible = True
lbl2.Visible = True
txt_value2.Visible = True
frm_floor.Width = 7245
chk_tot_floor.ForeColor = &HFF0000
Else
If chk_floor_num.Value = 0 Then
frm_floor.Width = 1980
End If
cmb_operator2.Visible = False
lbl2.Visible = False
txt_value2.Visible = False
chk_tot_floor.ForeColor = &H808080
End If
End Sub
Private Sub chk_width_Click()
If chk_width.Value = 1 Then
lbl_width.Visible = True
txt_width.Visible = True
chk_width.ForeColor = &HFF0000
Else
lbl_width.Visible = False
txt_width.Visible = False
chk_width.ForeColor = &H808080
End If
End Sub
Private Sub chk7_Click()
End Sub
Private Sub chk9_Click()
End Sub
Private Sub chk1_Click()
If chk1.Value = 1 Then
chk1.ForeColor = &HFF0000
Else
chk1.ForeColor = &H808080
End If
End Sub
Private Sub chk2_Click()
If chk2.Value = 1 Then
chk2.ForeColor = &HFF0000
Else
chk2.ForeColor = &H808080
End If
End Sub
Private Sub cmb_dist_Click()
Call Add_Street(cmb_dist.Text)
End Sub
Private Sub cmb_h_type_Click()
If cmb_h_type.Text = cmb_h_type.List(6) Or cmb_h_type.Text = cmb_h_type.List(7) Or cmb_h_type.Text = cmb_h_type.List(8) Then
chk_floor_num.Enabled = False
chk_tot_floor.Enabled = False
Else
If chk_h_type.Value = 1 Then
chk_floor_num.Enabled = True
chk_tot_floor.Enabled = True
End If
End If
End Sub
Private Sub Command1_Click()
End Sub
Private Sub cmd_search_Click()
If Check_Condition = False Then
Exit Sub
End If
Call Set_Condition
lbl_pro.Visible = True
pic1.Visible = True
DoEvents
frm_tran_res.lst1.ColumnHeaders.Clear
frm_tran_res.lst1.ListItems.Clear
frm_tran_res.lst1.ColumnHeaders.Add , , "Item ID"
frm_tran_res.lst1.ColumnHeaders.Add , , "Type"
frm_tran_res2.lst1.ColumnHeaders.Clear
frm_tran_res2.lst1.ListItems.Clear
frm_tran_res2.lst1.ColumnHeaders.Add , , "Item ID"
frm_tran_res2.lst1.ColumnHeaders.Add , , "Type"
Call Search_Trans(True, TblTran, AuthID, AuthID_chk, TranID, TranID_chk, Street, District, HType, Location, Direct, HWidth, FDate, LDate, Oper1, Oper2, Value1, Value2, FExpired, LExpired, MinArea, MaxArea, MinPrice, MaxPrice)
End Sub
Private Sub Command3_Click()
Unload Me
End Sub
Private Sub cmdClose_Click()
Unload frm_find_trans
End Sub
Private Sub Form_Load()
If User_Permission = "Administrator" Then
chk_expired.Enabled = True
End If
Set cnnFind = New ADODB.Connection
'cnn.Open "Provider=" & "Microsoft.Jet.OLEDB.3.51;" & "Data Source=" & App.Path & "\Database\advertisement.mdb;" & "Jet OLEDB:Database Password=" & "dankadv;"
cnnFind.Provider = "Microsoft.Jet.OLEDB.4.0"
cnnFind.Open App.Path & "\database\nhadatdatabase.mdb"
frm_floor.Width = 1980
frm_floor.Top = 4380
frm_area.Height = 375
frm_area.Height = 375
frm_price.Height = 375
frm_date.Height = 375
Me.Height = 2590 '
Me.WindowState = 0
Call Default
End Sub
'--------------------------------------------------------------------------------
If District " " And District "( ALL )" Then 'Match District
If rs!District = District Then
FDistrict = True
Else
FDistrict = False
End If
Else
FDistrict = True
End If
'--------------------------------------------------------------------------------
If Street " " And Street "( ALL )" Then 'Match Street
If rs!Street = Street Then
FStreet = True
Else
FStreet = False
End If
Else
FStreet = True
End If
'--------------------------------------------------------------------------------
If Direction " " Then 'Match Direction
If rs!Direction = Direction Then
FDirection = True
Else
FDirection = False
End If
Else
FDirection = True
End If
'--------------------------------------------------------------------------------
If Location " " Then 'Match Location
If rs!Location = Location Then
FLocation = True
Else
FLocation = False
End If
Else
FLocation = True
End If
'--------------------------------------------------------------------------------
If HWidth -1 Then 'Match Width
If rs!Width >= HWidth Then
FWidth = True
Else
FWidth = False
End If
Else
FWidth = True
End If
'--------------------------------------------------------------------------------
If FDate " " Then 'Match Date of Update
Dim Max
If CDate(FDate) > CDate(LDate) Then
Max = FDate
LDate = FDate
FDate = Max
End If
If CDate(rs!dofupdate) >= FDate And CDate(rs!dofupdate) <= LDate Then
FoDate = True
Else
FoDate = False
End If
Else
FoDate = True
End If
'--------------------------------------------------------------------------------
If FExpired " " Then 'Match Date of Expired
Dim MaxD
If CDate(FExpired) > CDate(LExpired) Then
MaxD = FExpired
LExpired = FExpired
FExpired = Max
End If
If CDate(rs!dofupdate) >= FExpired And CDate(rs!dofupdate) <= LExpired Then
FoExpired = True
Else
FoExpired = False
End If
Else
FoExpired = True
End If
'--------------------------------------------------------------------------------
If HType " " Then ' Match House Type
If LCase(rs!thouse) = LCase(HType) Then
FType = True
Else
FType = False
End If
Else
FType = True
End If
'--------------------------------------------------------------------------------
'Match Area
If MinArea -1 And MaxArea = -1 Then ' Min only
If TblTran = "tbl_selling" Or TblTran = "tbl_rent" Then
If rs!area >= MinArea Then
FArea = True
Else
FArea = False
End If
Else
If rs!MinArea >= MinArea Then
FArea = True
Else
FArea = False
End If
End If
End If
If MinArea = -1 And MaxArea -1 Then 'Max Only
If TblTran = "tbl_selling" Or TblTran = "tbl_rent" Then
If rs!area <= MaxArea Then
FArea = True
Else
FArea = False
End If
Else
If rs!MaxArea >= MaxArea Then
FArea = True
Else
FArea = False
End If
End If
End If
If MinArea -1 And MaxArea -1 Then 'Min And Max
If TblTran = "tbl_selling" Or TblTran = "tbl_hire" Then
If rs!area >= MinArea And rs!area <= MaxArea Then
FArea = True
Else
FArea = False
End If
Else
If rs!minTarea >= MinArea And rs!MaxTarea <= MaxArea Then
FArea = True
Else
FArea = False
End If
End If
End If
If MinArea = -1 And MaxArea = -1 Then
FArea = True
End If
'--------------------------------------------------------------------------------
'Match Price
If MinPrice -1 And MaxPrice = -1 Then
If TblTran = "tbl_selling" Or TblTran = "tbl_rent" Then
If rs!Price >= MinPrice Then
FPrice = True
Else
FPrice = False
End If
Else
If rs!MinPrice >= MinPrice Then
FPrice = True
Else
FPrice = False
End If
End If
End If
If MinPrice = -1 And MaxPrice -1 Then
If TblTran = "tbl_selling" Or TblTran = "tbl_rent" Then
If rs!Price <= MaxPrice Then
FPrice = True
Else
FPrice = False
End If
Else
If rs!MaxPrice >= MaxPrice Then
FPrice = True
Else
FPrice = False
End If
End If
End If
If MinPrice -1 And MaxPrice -1 Then
If TblTran = "tbl_selling" Or TblTran = "tbl_hire" Then
If rs!Price >= MinPrice And rs!Price <= MaxPrice Then
FPrice = True
Else
FPrice = False
End If
Else
If rs!MinPrice >= MinPrice And rs!MaxPrice <= MaxPrice Then
FPrice = True
Else
FPrice = False
End If
End If
End If
If MinPrice = -1 And MaxPrice = -1 Then
FPrice = True
End If
'--------------------------------------------------------------------------------
'Match Floor number
If Oper1 6 Then
If Oper1 = 0 Then
If rs!fno Value1 Then
FFloorNum = True
Else
FFloorNum = False
End If
End If
If Oper1 = 1 Then
If rs!fno = Value1 Then
FFloorNum = True
Else
FFloorNum = False
End If
End If
If Oper1 = 2 Then
If rs!fno > Value1 Then
FFloorNum = True
Else
FFloorNum = False
End If
End If
If Oper1 = 3 Then
If rs!fno >= Value1 Then
FFloorNum = True
Else
FFloorNum = False
End If
End If
If Oper1 = 4 Then
If rs!fno < Value1 Then
FFloorNum = True
Else
FFloorNum = False
End If
End If
If Oper1 = 5 Then
If rs!fno <= Value1 Then
FFloorNum = True
Else
FFloorNum = False
End If
End If
Else
FFloorNum = True
End If
'--------------------------------------------------------------------------------
'Match Total of floor
If Oper2 6 Then
If Oper2 = 0 Then
If rs!toffloor Value2 Then
FFloorTot = True
Else
FFloorTot = False
End If
End If
If Oper2 = 1 Then
If rs!toffloor = Value2 Then
FFloorTot = True
Else
FFloorTot = False
End If
End If
If Oper2 = 2 Then
If rs!toffloor > Value2 Then
FFloorTot = True
Else
FFloorTot = False
End If
End If
If Oper2 = 3 Then
If rs!toffloor >= Value2 Then
FFloorTot = True
Else
FFloorTot = False
End If
End If
If Oper2 = 4 Then
If rs!toffloor < Value2 Then
FFloorTot = True
Else
FFloorTot = False
End If
End If
If Oper2 = 5 Then
If rs!toffloor <= Value2 Then
FFloorTot = True
Else
FFloorTot = False
End If
End If
Else
FFloorTot = True
End If
'--------------------------------------------------------------------------------
'FINAL UNION FOUND CONDITION
If FTran = True And FAuth = True And FDistrict = True _
And FStreet = True And FWidth = True And FoDate = True _
And FDirection = True And FLocation = True And FType = True _
And FArea = True And FPrice = True And FoExpired = True _
And FFloorNum = True And FFloorTot = True Then
found = found + 1
End Function
==================================================
4. Form compose
Private Sub Initial()
rtxtBox.Text = ""
cboSize.Text = "10"
cboFont.Text = "MS Sans Serif"
End Sub
Private Sub lblTransparent()
Dim i As Byte
For i = 0 To 8
picAlign(i).BackColor = vbButtonFace
Next i
End Sub
Private Sub cboFont_LostFocus()
rtxtBox.SelFontName = cboFont.Text
rtxtBox.Refresh
End Sub
Private Sub cboSize_Change()
On Error GoTo lbl
rtxtBox.SelFontSize = cboSize.Text
rtxtBox.Refresh
lbl:
End Sub
Private Sub cboSize_LostFocus()
rtxtBox.SelFontSize = cboSize.Text
rtxtBox.Refresh
End Sub
Private Sub cmdClose_Click(Index As Integer)
Unload Me
End Sub
Private Sub cmdSend_Click(Index As Integer)
If txtTo.Text = "" Then
MsgBox "You must enter the UserName to sent to !", vbInformation, "Message can not be send "
Exit Sub
End If
txtTo.Text = Trim(txtTo.Text)
If rtxtBox.Text = "" Then
MsgBox "You must type in the message to be sent !", vbInformation, "Message empty !"
rtxtBox.SetFocus
Exit Sub
End If
Dim rsU As ADODB.Recordset
Set rsU = New ADODB.Recordset
rsU.Open "tbl_Account", cnNet, adOpenKeyset, adLockOptimistic, adCmdTable
If rsU.RecordCount <= 0 Then
Exit Sub
End If
rsU.MoveFirst
Dim Ex As Boolean
Ex = False
Do While Not rsU.EOF
If LCase(rsU.Fields(0)) = LCase(txtTo.Text) Then
Ex = True
Exit Do
End If
rsU.MoveNext
Loop
If Ex = False Then
MsgBox "The User '" & txtTo.Text & "' is not exist . Please check down your Send to !", vbCritical, "User Invalid"
Exit Sub
End If
Select Case Index
Case 0
Call UpdateM
Case 1
End Select
MsgBox "Message has been sent to " & txtTo.Text & " !", vbOKOnly + vbInformation, "Note !"
Unload Me
End Sub
Private Sub Form_Load()
lblTransparent
Initial
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Not FFlag Then
lblTransparent
FFlag = True
End If
End Sub
Private Sub picAlign_Click(Index As Integer)
If Index >= 0 And Index <= 5 Then
picAlign(Index).BorderStyle = _
(picAlign(Index).BorderStyle + 1) Mod 2
End If
Select Case Index
Case 0
rtxtBox.SelBold = Not rtxtBox.SelBold
Case 1
rtxtBox.SelItalic = Not rtxtBox.SelItalic
Case 2
rtxtBox.SelUnderline = Not rtxtBox.SelUnderline
Case 3
rtxtBox.SelAlignment = vbLeftJustify
Case 4
rtxtBox.SelAlignment = vbCenter
Case 5
rtxtBox.SelAlignment = vbRightJustify
Case 6
Seltext = rtxtBox.Seltext
rtxtBox.Seltext = ""
Case 7
Seltext = rtxtBox.Seltext
Case 8
rtxtBox.Seltext = Seltext
End Select
If Index = 3 Then
picAlign(ClickPicAlign).BorderStyle = 0
ClickPicAlign = Index
End If
If Index >= 6 And Index <= 8 Then
picAlign(ClickPicEdit).BorderStyle = 0
ClickPicEdit = Index
End If
End Sub
Private Sub picAlign_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
If Index >= 6 And Index <= 8 Then
picAlign(Index).BorderStyle = 1
End If
End Sub
Private Sub picAlign_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
If Index MoveLabel Then
picAlign(MoveLabel).BackColor = vbButtonFace
picAlign(Index).BackColor = vbWhite '&H80000016
MoveLabel = Index
End If
FFlag = False
End Sub
Private Sub picAlign_MouseUp(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
If Index >= 6 And Index <= 8 Then
picAlign(Index).BorderStyle = 0
End If
End Sub
Private Sub UpdateM()
Dim rs As New ADODB.Recordset
If Not TSend Then
TableM = "Tbl_Message_Account"
End If
rs.Open TableM, cnNet, adOpenDynamic, adLockPessimistic, adCmdTable
rs.AddNew
rs!RUserID = Trim(txtTo.Text)
rs!Suserid = User_ID
rs!DofSending = Date
rs!Subject = txtSubject.Text
If TSend Then
rs.Fields(1) = Tcode
End If
rtxtBox.SaveFile (netPathDir + "User\" + Trim(txtTo.Text) + "\" + CStr(rs.Fields(0)) + ".rtf")
rs.Update
End Sub
==================================================
5.form browse transaction
Private Sub cmb_auth_Click()
cmd_qsearch.Enabled = True
End Sub
Private Sub cmb_dist_Click()
cmd_qsearch.Enabled = True
If cmb_dist.Text = "( ALL )" Then
Dim rs_street As ADODB.Recordset
Set rs_street = New ADODB.Recordset
rs_street.Open "Tbl_street", cnNet, adOpenKeyset, adLockOptimistic, adCmdTable
rs_street.MoveFirst
Do While Not rs_street.EOF
cmb_street.AddItem rs_street.Fields(2).Value
rs_street.MoveNext
Loop
Exit Sub
End If
Call Add_Street
End Sub
Private Sub cmb_id_Click()
cmd_qsearch.Enabled = True
End Sub
Private Sub cmb_id_GotFocus()
cmb_id.SelStart = 0
cmb_id.SelLength = Len(cmb_id.Text)
End Sub
Private Sub cmb_street_Click()
cmd_qsearch.Enabled = True
End Sub
Private Sub cmd_close_Click()
Unload Me
End Sub
Private Sub cmd_cont_Click()
Dim au As String
Dim item_name As String
grid1.row = row_auth
grid1.Col = 6
au = grid1.Text
grid1.Col = 1
item_name = grid1.Text
If row_auth = 0 Then
MsgBox "You must choose one of User in the list", vbInformation, "Contact Failed !"
Exit Sub
End If
If Tab_i = 1 Then ' Tab_i =
TableM = "tbl_message_selling"
End If
If Tab_i = 2 Then ' Tab_i =
TableM = "tbl_message_buying"
End If
If Tab_i = 3 Then ' Tab_i =
TableM = "tbl_message_rent"
End If
If Tab_i = 4 Then ' Tab_i =
TableM = "tbl_message_hire"
End If
Tcode = item_name
frmCompose.txtTo = au
Unload Me
frmCompose.Show
End Sub
Private Sub cmd_detail_Click()
Dim i As Byte
For i = 1 To 4
If tab1.Tabs(i).Selected Then
Tab_i = i
End If
Next i
Me.Hide
frm_adv_det.List_Call = True
frm_adv_det.Item_call = grid1.TextMatrix(grid1.RowSel, 1)
frm_adv_det.Show
End Sub
Private Sub cmd_find_Click()
Unload Me
frm_find_trans.Show
End Sub
Private Sub cmd_list_all_Click()
If tab1.Tabs(1).Selected Then
Rs_local.Close
Set Rs_local = New ADODB.Recordset
Rs_local.Open "Tbl_Selling", cnNet, adOpenKeyset, adLockOptimistic, adCmdTable
If grid1.rows - 1 = Rs_local.RecordCount Then
' MsgBox "You've already list all item", vbExclamation, "Listing Failed !"
Exit Sub
End If
grid1.Clear
Create_grid_header_SH
Call ADD_ITEM_SEL
End If
If tab1.Tabs(2).Selected Then
Rs_local.Close
Set Rs_local = New ADODB.Recordset
Rs_local.Open "Tbl_Buying", cnNet, adOpenKeyset, adLockOptimistic, adCmdTable
If grid1.rows - 1 = Rs_local.RecordCount Then
' MsgBox "You've already list all item", vbExclamation, "Listing Failed !"
Exit Sub
End If
grid1.Clear
Create_grid_header_BR
Call ADD_ITEM_SEL
End If
If tab1.Tabs(3).Selected Then
Rs_local.Close
Set Rs_local = New ADODB.Recordset
Rs_local.Open "Tbl_Rent", cnNet, adOpenKeyset, adLockOptimistic, adCmdTable
If grid1.rows - 1 = Rs_local.RecordCount Then
'MsgBox "You've already list all item", vbExclamation, "Listing Failed !"
Exit Sub
End If
grid1.Clear
Create_grid_header_BR
Call ADD_ITEM_SEL
End If
If tab1.Tabs(4).Selected Then
Rs_local.Close
Set Rs_local = New ADODB.Recordset
Rs_local.Open "Tbl_Hire", cnNet, adOpenKeyset, adLockOptimistic, adCmdTable
If grid1.rows - 1 = Rs_local.RecordCount Then
'MsgBox "You've already list all item", vbExclamation, "Listing Failed !"
Exit Sub
End If
grid1.Clear
Create_grid_header_SH
Call ADD_ITEM_SEL
End If
End Sub
Private Sub cmd_New_Click()
frm_adv_new.Show vbModal
End Sub
Private Sub cmd_qsearch_Click()
row = 0
grid1.Enabled = True
Dim found As Boolean
Dim completed As Boolean
Dim f_id As Boolean
Dim f_street As Boolean
Dim f_dist As Boolean
Dim f_auth As Boolean
Dim i As Integer
Dim per As Integer
If cmb_id.Text = "( ALL )" And cmb_street.Text = "( ALL )" And cmb_dist.Text = "( ALL )" And cmb_auth.Text = "( ALL )" Then
If grid1.rows Rs_local.RecordCount Then
Call ADD_ITEM_SEL
End If
Exit Sub
End If
grid1.Clear
If cmb_id.Text = "" And cmb_street.Text = "" And cmb_dist.Text = "" And cmb_auth.Text = "" Then
MsgBox "You must type in on value in one of Item ID, Street, District or Author ID", vbExclamation, "Quick Search Failed !"
cmd_qsearch.Enabled = False
Exit Sub
Else
If Rs_local.RecordCount >= 1 Then
Rs_local.MoveFirst
pic_progress.Visible = True
pic_progress.Refresh
Do While Not Rs_local.EOF
per = per + 1
UpdateStatus pic_progress, per / Rs_local.RecordCount, "Searching ...", True
found = False
If Rs_local.Fields(0) = cmb_id.Text Then 'Item ID match or not
f_id = True
Else
f_id = False
If cmb_id.Text = "( ALL )" Then
f_id = True
End If
End If
If tab1.Tabs(1).Selected Or tab1.Tabs(4).Selected Then
If Rs_local!Street = cmb_street.Text Then 'Match street for Sell and Hire
f_street = True
Else
f_street = False
If cmb_street.Text = "( ALL )" Then
f_street = True
End If
End If
If Rs_local!District.Value = cmb_dist.Text Then 'match distict
f_dist = True
Else
f_dist = False
If cmb_dist.Text = "( ALL )" Then
f_dist = True
End If
End If
If Rs_local!userid = cmb_auth.Text Then 'Match author
f_auth = True
Else
f_auth = False
If cmb_auth.Text = "( ALL )" Then
f_auth = True
End If
End If
Else
If Rs_local!Street = cmb_street.Text Then 'Match street for buy and Rent
f_street = True
Else
f_street = False
If cmb_street.Text = "( ALL )" Then
f_street = True
End If
End If
If Rs_local!District.Value = cmb_dist.Text Then 'match distict
f_dist = True
Else
f_dist = False
If cmb_dist.Text = "( ALL )" Then
f_dist = True
End If
End If
If Rs_local!userid = cmb_auth.Text Then 'Match author
f_auth = True
Else
f_auth = False
If cmb_auth.Text = "( ALL )" Then
f_auth = True
End If
End If
End If
If f_id = True And f_street = True And f_auth = True And f_dist = True Then
found = True
End If
If found = True Then
completed = True
row = row + 1
grid1.rows = row + 1
If tab1.Tabs(1).Selected Or tab1.Tabs(4).Selected Then
Call ADD_ITEM
Call Create_grid_header_SH
Else
Call ADD_ITEM_B
Call Create_grid_header_BR
End If
End If
Rs_local.MoveNext
Loop
pic_progress.Visible = False
'If completed = False Then
' MsgBox "Item not found !", vbExclamation, "Searching Comleted!"
' Call Create_grid_header
' grid1.rows = 1
' grid1.Enabled = False
'End If
End If
End If
End Sub
Private Sub Command1_Click()
grid1.Col = grid1.MouseCol
grid1.row = grid1.MouseRow
MsgBox grid1.Text
End Sub
Private Sub Form_Load()
user_name = User_ID
Call Rs_selling
Call statusbar
Call create_tabs
Call Create_grid_header_SH
Call Header_alig_cen
Call Column_width_SH
grid1.ScrollTrack = True
Timer1.Enabled = True
cmb_street.AddItem "( ALL )"
cmb_dist.AddItem "( ALL )"
cmb_dist.AddItem "Ba §×nh"
cmb_dist.AddItem "CÇu GiÊy"
cmb_dist.AddItem "§èng §a"
cmb_dist.AddItem "Hai Bµ Trng"
cmb_dist.AddItem "Hoµn KiÕm"
cmb_dist.AddItem "T©y Hå"
cmb_dist.AddItem "Thanh Xu©n"
cmb_dist.Text = cmb_dist.List(0)
cmb_dist_Click
cmb_street.Text = cmb_street.List(0)
End Sub
Private Sub statusbar()
'Adding Items to Status bar
Dim cpl As Panel
Set cpl = stat_bar.Panels.Add(1, , " Advertisment Page ")
cpl.AutoSize = sbrContents
Set cpl = stat_bar.Panels.Add(2, , " Current User : " & user_name & " ")
cpl.Bevel = sbrNoBevel
cpl.Width = 2900
cpl.AutoSize = sbrNoAutoSize
Set cpl = stat_bar.Panels.Add(3, , " Please Wait ! ")
'cpl.AutoSize = sbrSpring
cpl.Width = 4020
Set cpl = stat_bar.Panels.Add(4, , , sbrDate)
cpl.AutoSize = sbrContents
cpl.Alignment = sbrCenter
Set cpl = stat_bar.Panels.Add(5, , , sbrTime)
cpl.AutoSize = sbrContents
cpl.Alignment = sbrCenter
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
stat_bar.Panels(2).Bevel = sbrNoBevel
End Sub
Private Sub frm_option_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Me.MousePointer = 0
stat_bar.Panels(2).Bevel = sbrNoBevel
End Sub
Private Sub grid1_DblClick()
Dim i As Byte
For i = 1 To 4
If tab1.Tabs(i).Selected = True Then
Tab_i = i
End If
Next i
frm_adv_det.List_Call = True
frm_adv_det.Item_call = grid1.TextMatrix(grid1.RowSel, 1)
Unload Me
frm_adv_det.Show
End Sub
Private Sub grid1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
row_auth = grid1.MouseRow
If Multi_sel = True Then ' Disable Multi Select
grid1.HighLight = flexHighlightWithFocus
Multi_sel = False
End If
Row_sel = grid1.RowSel
If row_auth 0 Then
If Button = 2 Then
PopupMenu mnuact
End If
End If
End Sub
Private Sub grid1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Y > 4780 Then
grid1.ToolTipText = ""
frm_adv.MousePointer = 0
Exit Sub
End If
Dim name_u As String
If grid1.rows <= 1 Then
Exit Sub
End If
If grid1.MouseCol = 6 And grid1.MouseRow > 0 Then
If grid1.TextMatrix(grid1.MouseRow, 6) "" Then
frm_adv.MousePointer = 99
frm_adv.MouseIcon = LoadPicture(App.Path & "\image\link.ico")
name_u = grid1.TextMatrix(grid1.MouseRow, 6)
grid1.ToolTipText = " Contact to " & name_u & " "
Else
grid1.ToolTipText = ""
frm_adv.MousePointer = 0
Exit Sub
End If
Else
grid1.ToolTipText = ""
frm_adv.MousePointer = 0
End If
If grid1.MouseRow = 0 Then
grid1.ToolTipText = ""
frm_adv.MousePointer = 0
End If
End Sub
Private Sub grid1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Row_new_sel = grid1.RowSel
If Row_sel Row_new_sel Then
Multi_sel = True
grid1.HighLight = flexHighlightNever
End If
End Sub
Private Sub Image4_Click()
Unload Me
End Sub
Private Sub create_tabs()
tab1.TabFixedHeight = 600
tab1.TabFixedWidth = (tab1.Height - 90) / 4
tab1.Tabs(1).Caption = "Selling"
tab1.Tabs(1).ToolTipText = "Selling Items"
tab1.Tabs.Add 2, , "Buying"
tab1.Tabs.Add 3, , "For Rent"
tab1.Tabs.Add 4, , "Hire"
End Sub
Private Sub mnucont_Click()
cmd_cont_Click
End Sub
Private Sub mnudet_Click()
Dim i As Byte
For i = 1 To 4
If tab1.Tabs(i).Selected Then
Tab_i = i
End If
Next i
Me.Hide
frm_adv_det.Show
End Sub
Private Sub mnuDetail_Click()
cmd_detail_Click
End Sub
Private Sub mnuFInd_Click()
cmd_find_Click
End Sub
Private Sub mnunew_Click()
cmd_New_Click
End Sub
Private Sub stat_bar_Click()
If user_acc = True Then
Unload Me
frm_account.Acc_user_id = User_ID
frm_account.Show
End If
End Sub
Private Sub stat_bar_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If X stat_bar.Panels(2).Left Then
stat_bar.Panels(2).Bevel = sbrRaised
user_acc = True
stat_bar.Panels(2).ToolTipText = "Check for " & user_name & "'s account "
stat_bar.MousePointer = ccCustom
stat_bar.MouseIcon = LoadPicture(App.Path & "\image\link.ico")
Else
user_acc = False
stat_bar.MousePointer = ccArrow
stat_bar.Panels(2).Bevel = sbrNoBevel
End If
End Sub
Private Sub tab1_Click()
If tab1.Tabs(1).Selected Then
If Tab_index = 1 Then
Exit Sub
Else
Tab_index = 1
End If
Rs_local.Close
Set Rs_local = New ADODB.Recordset
Rs_local.Open "Tbl_Selling", cnNet, adOpenKeyset, adLockOptimistic, adCmdTable
grid1.Clear
Create_grid_header_SH
Call ADD_ITEM_SEL
End If
If tab1.Tabs(2).Selected Then
If Tab_index = 2 Then
Exit Sub
Else
Tab_index = 2
End If
Rs_local.Close
Set Rs_local = New ADODB.Recordset
Rs_local.Open "Tbl_Buying", cnNet, adOpenKeyset, adLockOptimistic, adCmdTable
grid1.Clear
Create_grid_header_BR
Call ADD_ITEM_SEL
End If
If tab1.Tabs(3).Selected Then
If Tab_index = 3 Then
Exit Sub
Else
Tab_index = 3
End If
Rs_local.Close
Set Rs_local = New ADODB.Recordset
Rs_local.Open "Tbl_Rent", cnNet, adOpenKeyset, adLockOptimistic, adCmdTable
grid1.Clear
Create_grid_header_BR
Call ADD_ITEM_SEL
End If
If tab1.Tabs(4).Selected Then
If Tab_index = 4 Then
Exit Sub
Else
Tab_index = 4
End If
Rs_local.Close
Set Rs_local = New ADODB.Recordset
Rs_local.Open "Tbl_Hire", cnNet, adOpenKeyset, adLockOptimistic, adCmdTable
grid1.Clear
Create_grid_header_SH
Call ADD_ITEM_SEL
End If
End Sub
Private Sub Timer1_Timer()
Call ADD_ITEM_SEL
Timer1.Enabled = False
End Sub
Private Sub Rs_selling()
' Create rs_local connection
Set Rs_local = New ADODB.Recordset
Rs_local.Open "Tbl_selling", cnNet, adOpenKeyset, adLockOptimistic, adCmdTable
'Rs_local.Open "auth", cnnet, adOpenKeyset, adLockOptimistic, adCmdTable
End Sub
======================================================
6. form user manager
Private Sub cmdNext_Click()
With rsAccount
.MoveNext
If .EOF Then .MoveLast
End With
With rsUserInfo
.MoveNext
If .EOF Then .MoveLast
End With
'cobPermission.Text = rsAccount!Permission
'cobAge.Text = rsUserInfoBofYear
Display
End Sub
Private Sub cmdPrevious_Click()
With rsAccount
.MovePrevious
If .BOF Then .MoveFirst
End With
With rsUserInfo
.MovePrevious
If .BOF Then .MoveFirst
End With
'cobPermission.Text = rsAccount!Permission
'cobAge.Text = rsUserInfoBofYear
Display
End Sub
Private Sub cmdReset_Click()
Dim ans As Integer
ans = MsgBox("Are you sure to Reset this Account's accession time?", vbYesNo, "Warning!")
If ans = vbNo Then
Exit Sub
Else
txtStockLeft.Text = "0000"
txtExprised.Text = "00.00"
End If
End Sub
Private Sub cmdAdd_Click()
Dim ctl As Control
For Each ctl In Controls
If TypeOf ctl Is TextBox Or TypeOf ctl Is ComboBox Then
ctl.Enabled = True
ctl.Text = ""
End If
If TypeOf ctl Is CommandButton Then
ctl.Enabled = False
End If
Next ctl
cmdSave.Enabled = True
cmdCancel.Enabled = True
cmdFind.Enabled = True
cmdHelp.Enabled = True
cmdClearPass.Enabled = True
txtExprised.Text = "12.00"
rsUserInfo.AddNew
rsAccount.AddNew
cobUserID.SetFocus
cobPermission.Text = "Customer"
optMale.Value = True
txtExprised.Text = "12.00"
txtStockLeft.Text = "0"
cmdAdd.Enabled = False
cmdSave.Enabled = True
cmdHelp.Enabled = True
cmdFind.Enabled = True
cmdExit.Enabled = False
cmdFirst.Enabled = False
cmdPrevious.Enabled = False
cmdNext.Enabled = False
cmdLast.Enabled = False
cmdReset.Enabled = False
cmdUpgrade.Enabled = True
cmdDel.Enabled = False
cmdCancel.Enabled = True
addFlag = True
End Sub
Private Sub cmdSave_Click()
On Error GoTo Err
'==============CHECK INPUT DATA==================
If Len(cobUserID) 16 Then
MsgBox "User ID must be more than 4 characters and less then 16 characters. Please Enter a valid Name in the UserID field!", vbOKOnly, "System Alert!"
cobUserID.SetFocus
Exit Sub
End If
If Len(txtPass) > 50 Or Len(txtConPass) > 50 Then
MsgBox "Password must less than 50 characters.", vbOKOnly, "System Alert!"
txtPass.SetFocus
Exit Sub
End If
If txtPass.Text txtConPass.Text Then
MsgBox "The Password you typed don't match. Please type and confirm the Password again.", vbOKOnly, "System Alert"
txtPass.SetFocus
Exit Sub
End If
If txtIDCode = "" Then
MsgBox "Please Enter your Identify Code.", vbOKOnly, "System Alert"
txtIDCode.SetFocus
Exit Sub
End If
'=====================================END CHECK===============
Save
frmUserMan.Refresh
Err:
If Err.Number = -2147217887 Then
rsUserInfo.CancelUpdate
rsAccount.CancelUpdate
cobUserID.SetFocus
End If
Display
End Sub
Private Sub cmdUpgrade_Click()
Dim X As Integer
Dim s As String
s = (InputBox("Enter New access time:", "House Transaction Center"))
If IsNumeric(s) = True Then
X = CInt(s)
Else
MsgBox "Please enter new valid time stock for this user", vbOKOnly, "Warning!"
cmdUpgrade.SetFocus
End If
txtExprised.Text = X
End Sub
Private Sub cobAge_GotFocus()
Dim i As Integer
For i = 1930 To 2100
cobAge.AddItem i
Next i
End Sub
Private Sub cobUserID_GotFocus()
AddUserID
End Sub
Private Sub Form_Activate()
If user_i "" Then
Do While Not rsUserInfo.EOF
If user_i = rsUserInfo!userid Then
Exit Do
End If
rsUserInfo.MoveNext
Loop
Do While Not rsAccount.EOF
If user_i = rsAccount!userid Then
Exit Do
End If
rsAccount.MoveNext
Loop
End If
Display
End Sub
Private Sub Form_Load()
'creat the connection to table Tbl_User_Infomation
Set rsUserInfo = New ADODB.Recordset
rsUserInfo.Open "Tbl_User_Infomation", cnNet, adOpenDynamic, adLockOptimistic, adCmdTable
'creat the connection to table Tbl_Account
Set rsAccount = New ADODB.Recordset
rsAccount.Open "Tbl_Account", cnNet, adOpenDynamic, adLockOptimistic, adCmdTable
cobPermission.Text = ""
cmdSave.Enabled = False
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Call ImplodeForm(Me, 2, 500, 1) 'Effects
End Sub
Public Sub MakeDir()
Dim fso As New FileSystemObject
Dim dir As Folder
On Error GoTo Err
fso.CreateFolder (netPathDir + "User\" + cobUserID.Text)
Exit Sub
Err:
MsgBox "This Folder is already exist", vbOKOnly
End Sub
Private Sub txtAddress_GotFocus()
txtAddress.SelStart = 0
txtAddress.SelLength = Len(txtAddress)
End Sub
Public Sub RemoveDir()
Dim fso As New FileSystemObject
Dim dir As Folder
On Error GoTo Err
Set dir = fso.GetFolder(netPathDir + "User\" + cobUserID)
dir.Delete
Exit Sub
'RmDir netPathDir + "User\" + cobUserID
Err:
MsgBox "Folder is not exist ! Nothing is deleted", vbOKOnly, "Warning"
End Sub
Public Sub Save()
With rsUserInfo
' .AddNew
!userid = cobUserID.Text
If txtUserName.Text "" Then
!UserName = txtUserName.Text
End If
If txtIDCode.Text "" Then
!idcard = txtIDCode.Text
End If
If txtAddress.Text "" Then
!caddress = txtAddress.Text
End If
If cobAge.Text "" Then
!bofyear = cobAge.Text
End If
If txtPhone.Text "" Then
!phone = txtPhone.Text
End If
If txtHandphone.Text "" Then
!mobile = txtHandphone.Text
End If
If txtEmail.Text "" Then
!email = txtEmail.Text
End If
!sex = optMale.Value
.Update
End With
With rsAccount
' .AddNew
!userid = cobUserID.Text
!Password = txtConPass.Text
!permission = cobPermission.Text
!accesstime = txtExprised.Text
!taccount = txtStockLeft.Text
rsAccount.Update
End With
cmdAdd.Enabled = True
cmdSave.Enabled = False
cmdHelp.Enabled = True
cmdFind.Enabled = True
cmdExit.Enabled = True
cmdFirst.Enabled = True
cmdPrevious.Enabled = True
cmdNext.Enabled = True
cmdLast.Enabled = True
cmdReset.Enabled = True
cmdUpgrade.Enabled = True
cmdDel.Enabled = True
If addFlag Then
Call MakeDir
End If
MsgBox "Record Update successful.", vbOKOnly, "Note"
End Sub
======================================================
7. Form user information
Private Sub chk_view_info_Click()
cmdSave.Enabled = True
End Sub
Private Sub cmd_acc_Click()
frm_account.Acc_user_id = Me.Us_ID
Unload Me
frm_account.Show
End Sub
Private Sub cmd_Exit_Click()
Unload Me
'mdi.Show
End Sub
Private Sub Create_rs_lan()
Set Rs_LAN = New ADODB.Recordset
Rs_LAN.Open "Tbl_User_Infomation", cnNet, adOpenKeyset, adLockOptimistic, adCmdTable
End Sub
Private Sub cmdSave_Click()
View_info = chk_view_info.Value
'MsgBox Rs_LAN!userid
If View_info = True Then
Rs_LAN.Fields(9).Value = True
Else
Rs_LAN.Fields(9).Value = False
End If
Rs_LAN.Update
cmdSave.Enabled = False
End Sub
Private Sub Form_Load()
Call Create_rs_lan
' Us_ID = User_ID
Me.Caption = "Information about " & Us_ID
End Sub
Public Sub Match_user_ID(UserName As String)
F = False
Do While Not Rs_LAN.EOF
If UserName = Rs_LAN!userid Then
Call Display
If UserName = User_ID Then
cmdSave.Enabled = True
chk_view_info.Enabled = True
cmd_acc.Enabled = True
Else
cmdSave.Enabled = Not True
chk_view_info.Enabled = Not True
cmd_acc.Enabled = Not True
End If
Exit Do
End If
Rs_LAN.MoveNext
Loop
If F = False Then
MsgBox "User " & Us_ID & " in not exist at the moment !", vbCritical, " User not exist !"
frm_adv_det.Adv_det_call = True
Unload Me
End If
End Sub
Private Sub Display()
F = True
txt_address.Locked = True
lbl_userID.Caption = Rs_LAN!userid 'User Id can't be Null
lbl_user_name.Caption = Rs_LAN!UserName 'User name can't be Null
If IsNull(Rs_LAN!bofyear) = False Then 'Year of birth can be NULL
lbl_year.Caption = Rs_LAN!bofyear
Else
lbl_year.Caption = ""
End If
If Rs_LAN!sex = True Then
lbl_sex.Caption = "Male" ' Sex can't be Null
Else
lbl_sex.Caption = "Female"
End If
If IsNull(Rs_LAN!caddress) = False Then 'Address can be NULL
txt_address.Text = Rs_LAN!caddress
Else
lbl_year.Caption = ""
End If
lbl_ID.Caption = Rs_LAN!idcard ' ID Card can't be Null
If IsNull(Rs_LAN!phone) = False Then ' Phone Number can be NULL
lbl_phone.Caption = Rs_LAN!phone
Else
lbl_year.Caption = ""
End If
If IsNull(Rs_LAN!mobile) = False Then 'Mobile phone can be NULL
lbl_mobile.Caption = Rs_LAN!mobile
Else
lbl_year.Caption = ""
End If
If IsNull(Rs_LAN!email) = False Then 'E-mail can be NULL
lbl_email.Caption = Rs_LAN!email
Else
lbl_year.Caption = ""
End If
If Rs_LAN!viewinfo = True Then
chk_view_info.Value = 1
View_info = True
Else
chk_view_info.Value = 0
View_info = False
Dim ctl As Control
For Each ctl In Controls
If TypeOf ctl Is label Then
ctl.Enabled = False
End If
Next ctl
'frm_user.Enabled = False
'frm_per.Enabled = False
End If
'txt_address.Locked = True
End Sub
Private Sub Not_view()
Me.Visible = False
MsgBox "You are not allowed to view " & Us_ID & " personal information !", vbCritical, "Not Authorized !"
Unload frm_user_detail
End Sub
======================================================
8. Form option
Option Explicit
Dim tblEdit As String
Dim rsEdit As ADODB.Recordset
Dim flagCancelEdit As Boolean, flagStreet As Boolean
Dim flagCancel As Boolean, flagAdd As Boolean
Dim flagRate As Boolean
Dim rowSel1 As Long, rowSel2 As Long 'cho fgridbackup
Dim RowSelRestore As Long
Private Sub chkPath_Click()
If chkPath.Value = 0 Then
chkPathE (False)
Else
chkPathE (True)
End If
End Sub
Private Sub cmdApply_Click()
Dim fso As New FileSystemObject
Dim fil As File, ts As TextStream
Dim TypePath As Byte
If tbsOptions.SelectedItem.Index = 1 Then
If fso.FileExists(PathLogFile) = False Then
fso.CreateTextFile (PathLogFile)
Else
Set fil = fso.GetFile(PathLogFile)
End If
Set ts = fil.OpenAsTextStream(ForWriting)
ts.WriteLine (txtNetpath.Text)
ts.WriteLine (txtLocalPath.Text)
ts.WriteLine (txtCRequest.Text)
ts.WriteLine (txtComputer.Text)
ts.Close
cmdApply.Enabled = False
Call InitialData
End If
netPathDir = Left(NetPath, Len(NetPath) - Len("Database\NhadatDatabase.mdb"))
If flagRate And tbsOptions.SelectedItem.Index = 2 Then
Call UpdateRate
cmdApply.Enabled = False
End If
End Sub
Private Sub cmdBackupBrow_Click()
On Error GoTo dlgerror
With dlgFileOpen
.CancelError = True
.ShowOpen
.Filter = "*.*"
txtBPath.Text = .FileName
End With
dlgerror:
End Sub
Private Sub cmdBackupSave_Click()
Call backup
Call DispDatagrid
Call chkPathE(False)
chkPath.Value = 0
fgridBackup.SetFocus
'fgridBackup.RowSel
End Sub
Private Sub cmdCancel_Click()
flagCancel = True
Unload Me
End Sub
Private Sub cmdDelBackup_Click()
Dim temp As Long
Dim rsBackup As ADODB.Recordset
Dim Response As String
If rowSel1 > rowSel2 Then
temp = rowSel1
rowSel1 = rowSel2
rowSel2 = temp
End If
If rowSel1 rowSel2 Then
Response = MsgBox("Are you sure Delete" & _
" " & rowSel2 - rowSel1 + 1 & " Backups ?", _
vbYesNo, "Warning !")
Else
Response = MsgBox("Are you sure Delete" & _
" this Backup ?", vbYesNo, "Warning !")
End If
'Huy Delete khi click vao No
If Response = vbNo Then
Exit Sub
End If
'==============Delete Recordsets=============
Set rsBackup = New ADODB.Recordset
rsBackup.Open "Tbl_Backup", cnNet, adOpenDynamic, _
adLockPessimistic, adCmdTable
With rsBackup
For temp = rowSel1 To rowSel2
.MoveFirst
Do While Not .EOF
If .Fields(0) = fgridBackup.TextMatrix(temp, 0) Then
Call DelFile(.Fields(0), .Fields(3))
.Delete
Exit Do
End If
.MoveNext
Loop
Next temp
End With
MsgBox "Files have been deleted.", vbOKOnly, "Note !"
Call DispDatagrid
End Sub
Private Sub cmdOk_Click()
Unload Me
End Sub
Private Sub cboEdit_GotFocus(Index As Integer)
Dim i As Byte
If Index 0 Then
For i = 0 To cboEdit(0).ListCount - 1
If cboEdit(0).Text = cboEdit(0).List(i) Then
Exit Sub
End If
Next i
MsgBox "You must select Item from Type Edit.", vbOKOnly, "Warning !!!"
cboEdit(0).SetFocus
End If
Select Case Index
Case 0
Case 1
Case 2
Case 3
End Select
End Sub
Private Sub cboEdit_LostFocus(Index As Integer)
'Dim Item As String
Select Case Index
Case 0
If cboEdit(0).Text "" Then
Call cmdEditE(True, False, False, False)
End If
'==========Case 1==========
Select Case cboEdit(0).ListIndex
Case 0
tblEdit = "Tbl_District"
cboEdit(1).Width = 2115
txtEditContent.Width = 2115
cboEdit(2).Visible = False
Call AddItemcboEdit(1, 1)
flagStreet = False
Case 1
tblEdit = "Tbl_District"
Call AddItemcboEdit(1, 2)
tblEdit = "Tbl_Street"
flagStreet = True
cboEdit(1).Width = 2115
txtEditContent.Width = 2115
cboEdit(2).Visible = True
cboEdit(2).SetFocus
Case 2
tblEdit = "Tbl_Type_House"
cboEdit(1).Width = 3000
txtEditContent.Width = 3000
cboEdit(2).Visible = False
flagStreet = False
Call AddItemcboEdit(1, 1)
Case Else
Exit Sub
End Select
'==========End Case 1==========
Case 1
If cboEdit(0).ListIndex = 1 And cboEdit(1).Text = "" Then
MsgBox "You must select District before Street selection !", vbOKOnly, "Warning !"
cboEdit(2).SetFocus
End If
'If cboEdit(0).ListIndex 1 And cboEdit(1).Text "" Then
Call cmdEditE(True, True, False, True)
txtEditContent.Text = cboEdit(1).Text
'ElseIf cboEdit(0).ListIndex = 1 Then
' txtEditContent.Text = cboEdit(1).Text
'End If
Case 2
If cboEdit(2).Text "" Then
If flagAdd Then
Call cmdEditE(True, False, True, False)
Else
Call cmdEditE(False, True, True, False)
End If
Call AddcboStreet
End If
End Select
End Sub
Private Sub cmdEdit_Click(Index As Integer)
Select Case Index
Case 0
If Not flagCancelEdit Then
cmdEdit(Index).Caption = "Cancel"
Call cmdEditE(True, False, True, False)
cboEdit(1).Enabled = False
flagCancelEdit = True
flagAdd = True
txtEditContent.SetFocus
txtEditContent.Locked = False
txtEditContent.Text = ""
Else
cmdEdit(Index).Caption = "Add New"
Call cmdEditE(True, True, False, True)
cboEdit(1).Enabled = True
flagCancelEdit = False
cboEdit(0).SetFocus
txtEditContent.Locked = True
txtEditContent.Text = ""
End If
Case 1
If Not flagCancelEdit Then
cmdEdit(Index).Caption = "Cancel"
flagCancelEdit = True
flagAdd = False
txtEditContent.Locked = False
Call cmdEditE(False, True, True, False)
Else
cmdEdit(Index).Caption = "Modify"
txtEditContent.Text = ""
flagCancelEdit = False
txtEditContent.Locked = True
Call cmdEditE(True, True, False, True)
End If
Case 2
txtEditContent.Locked = True
flagCancelEdit = False
cboEdit(1).Enabled = True
cmdEdit(0).Caption = "Add New"
cmdEdit(1).Caption = "Modify"
If flagAdd Then
Call UpdateEdit(0, tblEdit)
Else
Call UpdateEdit(1, tblEdit)
End If
txtEditContent.Text = ""
cboEdit(0).SetFocus
Call cmdEditE(True, True, False, True)
Case 3
DeleteEdit
txtEditContent.Text = ""
cboEdit(0).SetFocus
Call cmdEditE(False, False, False, False)
End Select
End Sub
Private Sub cmdResBackup_Click()
Dim fso As New FileSystemObject
Dim Dfile As File
Dim TypeData As String
Dim Index As String
With fgridBackup
.row = RowSelRestore
.Col = 0
Index = CStr(.Text)
.Col = 3
TypeData = .Text
End With
Select Case TypeData
Case "nhadatDatabase"
Set Dfile = fso.GetFile(netPathDir + "Backup\N" + Index + ".mdb")
Call Dfile.Copy(netPathDir + "Database\nhadatDatabase.mdb", True)
Case "ServerDatabase"
Set Dfile = fso.GetFile(netPathDir + "Backup\S" + Index + ".mdb")
Case "ALL"
Set Dfile = fso.GetFile(netPathDir + "Backup\N" + Index + ".mdb")
Call Dfile.Copy(netPathDir + "Database\nhadatDatabase.mdb", True)
Set Dfile = fso.GetFile(netPathDir + "Backup\S" + Index + ".mdb")
Call Dfile.Copy(netPathDir + "Database\ServerDatabase.mdb", True)
End Select
MsgBox "Databases have been Restored.", vbOKOnly, "Note !"
End Sub
Private Sub fgridBackup_Click()
RowSelRestore = fgridBackup.MouseRow
End Sub
Private Sub fgridBackup_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
rowSel1 = fgridBackup.MouseRow
End Sub
Private Sub fgridBackup_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
rowSel2 = fgridBackup.MouseRow
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Dim i As Integer
'handle ctrl+tab to move to the next tab
If Shift = vbCtrlMask And KeyCode = vbKeyTab Then
i = tbsOptions.SelectedItem.Index
If i = tbsOptions.Tabs.Count Then
'last tab so we need to wrap to tab 1
Set tbsOptions.SelectedItem = tbsOptions.Tabs(1)
Else
'increment the tab
Set tbsOptions.SelectedItem = tbsOptions.Tabs(i + 1)
End If
End If
End Sub
Private Sub Form_Load()
'center the form
Me.Move (Screen.Width - Me.Width) / 2, _
(Screen.Height - Me.Height) / 4
'tbsOptions.Tabs (1)
Call cmdEditE(False, False, False, False)
Call DispPath
Call DispRate
Call DispDatagrid
Call SizeGrid
txtEditContent.Locked = True
'==============Frame 3==============='
txtBPath.Enabled = False
cmdBackupBrow.Enabled = False
lblBackupPath.Enabled = False
fgridBackup.Enabled = True
netPathDir = Left(NetPath, Len(NetPath) - Len("Database\NhadatDatabase.mdb"))
End Sub
Private Sub tbsOptions_Click()
Dim i As Integer
'show and enable the selected tab's controls
'and hide and disable all others
For i = 0 To tbsOptions.Tabs.Count - 1
If i = tbsOptions.SelectedItem.Index - 1 Then
fraOptions(i).Left = 210
fraOptions(i).Enabled = True
Else
fraOptions(i).Left = -20000
fraOptions(i).Enabled = False
End If
Next
If tbsOptions.SelectedItem.Index = 1 Or tbsOptions.SelectedItem.Index = 2 Then
cmdApply.Enabled = True
Else
cmdApply.Enabled = False
End If
End Sub
Private Sub cmdSetupBrow_Click()
Dim TypePath As Byte
Select Case cboTypePath.Text
Case "Network"
TypePath = 0
Case "Local"
TypePath = 1
Case Else
MsgBox "You must select TypePath", vbOKOnly, "Stop !!"
cboTypePath.SetFocus
Exit Sub
End Select
On Error GoTo dlgerror
With dlgFileOpen
.CancelError = True
.ShowOpen
.Filter = "*.*"
If TypePath = 0 Then
.DialogTitle = "Select Network Path"
txtNetpath.Text = .FileName
Else
.DialogTitle = "Select Local Path"
txtLocalPath.Text = .FileName
End If
End With
dlgerror:
End Sub
Private Sub DispPath()
txtNetpath.Text = NetPath
txtLocalPath.Text = LocalPath
txtCRequest.Text = CheckTime
txtComputer.Text = ComName
End Sub
Private Sub cmdSetupTest_Click()
Dim cnNetTest As ADODB.Connection, cnLocalTest As ADODB.Connection
On Error GoTo cnerror
Set cnNetTest = New ADODB.Connection
cnNetTest.Provider = "Microsoft.Jet.oledb.3.51"
cnNetTest.Open txtNetpath.Text
'Connection Local Machine
Set cnLocalTest = New ADODB.Connection
cnLocalTest.Provider = "Microsoft.Jet.oledb.3.51"
cnLocalTest.Open txtLocalPath.Text
MsgBox "Connection successful !!!", vbOKOnly, "Test Connection "
Exit Sub
cnerror:
MsgBox "Connection has a problem." + Chr(13) + _
"Contact Administrator for Help.", vbOKOnly, "Warning !!!"
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Dim fso As New FileSystemObject
Dim fil As File, ts As TextStream
Dim TypePath As Byte
If Not flagCancel Then
If fso.FileExists(PathLogFile) = False Then
fso.CreateTextFile (PathLogFile)
Else
Set fil = fso.GetFile(PathLogFile)
End If
Set ts = fil.OpenAsTextStream(ForWriting)
ts.WriteLine (txtNetpath.Text)
ts.WriteLine (txtLocalPath.Text)
ts.WriteLine (txtCRequest.Text)
ts.WriteLine (txtComputer.Text)
ts.Close
Call InitialData
If flagRate Then
Call UpdateRate
End If
End If
End Sub
Private Sub cmdEditE(Optional ByVal f0 As Boolean _
, Optional ByVal f1 As Boolean, Optional ByVal f2 As _
Boolean, Optional ByVal f3 As Boolean)
cmdEdit(0).Enabled = f0
cmdEdit(1).Enabled = f1
cmdEdit(2).Enabled = f2
cmdEdit(3).Enabled = f3
End Sub
Private Sub AddItemcboEdit(ByVal IndexS As Integer, ByVal IndexD As Integer)
'On Error GoTo lbl
Set rsEdit = New ADODB.Recordset
rsEdit.Open tblEdit, cnNet, adOpenDynamic, adLockPessimistic, adCmdTable
rsEdit.MoveFirst
cboEdit(IndexD).Clear
Do While Not rsEdit.EOF
cboEdit(IndexD).AddItem rsEdit.Fields(IndexS)
rsEdit.MoveNext
Loop
cboEdit(IndexD).Refresh
rsEdit.Close
'lbl:
End Sub
Private Sub AddcboStreet()
Dim SQL As String
Set rsEdit = New ADODB.Recordset
SQL = "select * from Tbl_Street where District = '" & cboEdit(2).Text & "';"
rsEdit.Open SQL, cnNet, adOpenDynamic, adLockPessimistic, adCmdText
rsEdit.MoveFirst
cboEdit(1).Clear
Do While Not rsEdit.EOF
cboEdit(1).AddItem rsEdit.Fields(2)
rsEdit.MoveNext
Loop
cboEdit(1).Refresh
rsEdit.Close
End Sub
Private Sub UpdateEdit(ByVal Index As Byte, tbl As String)
Dim rsUpdate As ADODB.Recordset
Dim temp As Integer
'On Error Resume Next
Set rsUpdate = New ADODB.Recordset
rsUpdate.Open tbl, cnNet, adOpenDynamic, adLockPessimistic, adCmdTable
If flagStreet = True Then
temp = 2
Else
temp = 1
End If
Select Case Index
Case 0
rsUpdate.AddNew
If Not flagStreet Then
rsUpdate.Fields(1) = txtEditContent.Text
Else
rsUpdate.Fields(1) = cboEdit(2).Text
rsUpdate.Fields(2) = txtEditContent.Text
End If
rsUpdate.Update
flagStreet = False
Case 1
rsUpdate.MoveFirst
Do While Not rsUpdate.EOF
If rsUpdate.Fields(temp) = cboEdit(1).Text Then
If Not flagStreet Then
rsUpdate.Fields(1) = txtEditContent.Text
Else
rsUpdate.Fields(1) = cboEdit(2).Text
rsUpdate.Fields(2) = txtEditContent.Text
End If
rsUpdate.Update
flagStreet = False
Exit Sub
End If
rsUpdate.MoveNext
Loop
End Select
End Sub
Private Sub DeleteEdit()
Dim rsUpdate As ADODB.Recordset
Set rsUpdate = New ADODB.Recordset
rsUpdate.Open tblEdit, cnNet, adOpenDynamic, adLockPessimistic, adCmdTable
rsUpdate.MoveFirst
Do While Not rsUpdate.EOF
If rsUpdate.Fields(1) = cboEdit(1).Text Then
rsUpdate.Delete
Exit Sub
End If
rsUpdate.MoveNext
Loop
End Sub
Private Sub DispDatagrid()
Dim rsBackup As ADODB.Recordset
Dim R As Long, i As Integer
' On Error GoTo lbl
Set rsBackup = New ADODB.Recordset
rsBackup.Open "Tbl_Backup", cnNet, adOpenKeyset, _
adLockPessimistic, adCmdTable
With fgridBackup
'Text in header
.row = 0
.Col = 0
.Text = "Code"
.CellAlignment = 1
.Col = 1
.Text = "Backup"
.Col = 2
.Text = "Time"
.Col = 3
.Text = "Type Database"
.rows = rsBackup.RecordCount + 1
rsBackup.MoveFirst
R = 1
Do While Not rsBackup.EOF
For i = 0 To 3
If Not IsNull(rsBackup.Fields(i)) Then
.TextMatrix(R, i) = rsBackup.Fields(i)
Else
.TextMatrix(R, i) = ""
End If
Next i
rsBackup.MoveNext
R = R + 1
Loop
End With
'lbl:
End Sub
Private Sub SizeGrid()
With fgridBackup
.ColS = 4
.ColWidth(0) = 1000
.ColWidth(1) = 1200
.ColWidth(2) = 1200
.ColWidth(3) = 1550
.ColAlignment(0) = 1
End With
End Sub
Private Sub backup()
Dim rsBackup As ADODB.Recordset
Dim TypeData As String
Dim fso As New FileSystemObject
Dim Nfile As File, Sfile As File
Dim num As String
Dim Flag As Boolean 'Kiem tra xem typedata co dung theo yeu cau hay khong
Set rsBackup = New ADODB.Recordset
rsBackup.Open "Tbl_Backup", cnNet, adOpenDynamic, _
adLockPessimistic, adCmdTable
Set Nfile = fso.GetFile(netPathDir + "Database\nhadatdatabase.mdb")
Set Sfile = fso.GetFile(netPathDir + "Database\serverdatabase.mdb")
rsBackup.MoveLast
num = CStr(rsBackup.Fields(0) + 1)
If chkPath.Value = 0 Then
TypeData = "ALL"
Nfile.Copy (netPathDir + "Backup\N" + num + ".mdb")
Sfile.Copy (netPathDir + "Backup\S" + num + ".mdb")
Else
If txtBPath.Text = "" Then
MsgBox "Files can't not Save." + Chr(13) + _
"Select file carefully, please !", vbOKOnly, "Warning"
cmdBackupBrow.SetFocus
Exit Sub
End If
If InStr(1, txtBPath.Text, "ServerDatabase.mdb", vbTextCompare) 0 Then
TypeData = "ServerDatabase"
Sfile.Copy (netPathDir + "Backup\S" + num + ".mdb")
Flag = True
End If
If InStr(1, txtBPath.Text, "nhadatDatabase.mdb", vbTextCompare) 0 Then
TypeData = "nhadatDatabase"
Nfile.Copy (netPathDir + "Backup\N" + num + ".mdb")
Flag = True
End If
If Not Flag Then
MsgBox "You only can select nhadatDatabase or " & _
"ServerDatabase for backup !", vbOKOnly, "Warning !"
cmdBackupBrow.SetFocus
Exit Sub
End If
End If
With rsBackup
.AddNew
.Fields(1) = Date
.Fields(2) = Time
.Fields(3) = TypeData
.Update
End With
End Sub
Private Sub chkPathE(ByVal Flag As Boolean)
txtBPath.Enabled = Flag
cmdBackupBrow.Enabled = Flag
lblBackupPath.Enabled = Flag
fgridBackup.Enabled = Not Flag
End Sub
Private Sub DelFile(ByVal Index As Long, TypeData As String)
'==========Delete file in backup =============
Dim fso As New FileSystemObject
Dim Nfile As File, Sfile As File
On Error Resume Next
Select Case TypeData
Case "nhadatDatabase"
Set Nfile = fso.GetFile(netPathDir + "Backup\N" + CStr(Index) + ".mdb")
Nfile.Delete
Case "ServerDatabase"
Set Sfile = fso.GetFile(netPathDir + "Backup\S" + CStr(Index) + ".mdb")
Sfile.Delete
Case "ALL"
Set Nfile = fso.GetFile(netPathDir + "Backup\N" + CStr(Index) + ".mdb")
Nfile.Delete
Set Sfile = fso.GetFile(netPathDir + "Backup\S" + CStr(Index) + ".mdb")
Sfile.Delete
End Select
End Sub
Private Sub UpdateRate()
Dim rsrate As New ADODB.Recordset
rsrate.Open "Tbl_Transfer_Rate", cnNet, _
adOpenKeyset, adLockPessimistic, adCmdTable
With rsrate
.MoveFirst
.Fields(2) = CDbl(1 / txtUSD.Text)
.Update
.MoveNext
.Fields(2) = CDbl(txtTofGold.Text / txtUSD.Text)
.Update
End With
End Sub
Private Sub DispRate()
txtUSD.Text = Round(1 / VND)
txtTofGold.Text = Round(TofGold / VND)
End Sub
Private Sub txtTofGold_Change()
flagRate = True
End Sub
Private Sub txtUSD_Change()
flagRate = True
End Sub
Các file đính kèm theo tài liệu này:
- 27530.DOC