7. Đóng góp của đề tài
3.1. Xây dựng phần mềm tra cứu kiến thức hoá học
3.1.1. Xây dựng bảng CSDL
Bảng 3.1. Cấu trúc bảng dữ liệu cho TableData
Field Name Data Type Chú thích
STT AutoNumber Số thứ tự tự động
Ten Text Chuỗi kí tự
Chứa dữ liệu về tên tiếng Anh của nguyên tố.
Tenvn Text Chuỗi kí tự
Chứa dữ liệu về tên tiếng Việt của nguyên tố.
Khhh Text Chuỗi kí tự
Chứa dữ liệu về kí hiệu hoá học của nguyên tố.
Nhom Text Chuỗi kí tự
Chứa dữ liệu về số nhóm của nguyên tố. Data OLE Object Kiểu dữ liệu nhúng chứa dữ liệu ở dạng Word
Chứa thông tin về nguyên tố
Anh1 OLE Object Kiểu dữ liệu nhúng chứa dữ liệu ở dạng Paint Chứa file ảnh về nguyên tố.
Anh2 OLE Object Kiểu dữ liệu nhúng chứa dữ liệu ở dạng Paint Chứa file ảnh về nguyên tố.
Anh3 OLE Object Kiểu dữ liệu nhúng chứa dữ liệu ở dạng Paint Chứa file ảnh về nguyên tố.
Anh4 OLE Object Kiểu dữ liệu nhúng chứa dữ liệu ở dạng Paint Chứa file ảnh về nguyên tố.
Bảng 3.2. Cấu trúc bảng dữ liệu cho TableHopchat
Field Name Data Type Chú thích
ID AutoNumber Số thứ tự tự động
ctpt Text Chuỗi kí tự
chất
Data OLE Object Kiểu dữ liệu nhúng chứa dữ liệu ở dạng Word Chứa thông tin về hợp chất.
Bảng 3.3. Cấu trúc bảng dữ liệu cho TableBaitap
Field Name Data Type Chú thích
STT AutoNumber Số thứ tự tự động
dang Text Chuỗi kí tự
Chứa dữ liệu về tên dạng bài tập.
baitap OLE Object Kiểu dữ liệu nhúng chứa dữ liệu ở dạng Word Chứa dữ liệu về các bài tập.
Da Text Chứa các đáp án của dạng bài tập
Bảng 3.4. Cấu trúc bảng dữ liệu cho TableDongvi
Field Name Data Type Chú thích
TT AutoNumber Số thứ tự tự động
khhh Text Chuỗi kí tự
Chứa dữ liệu về kí hiệu hoá học của nguyên tố.
Dv Text Chuỗi kí tự
Chứa dữ liệu về số khối của nguyên tố.
Sl Text Chuỗi kí tự
Chứa dữ liệu về hàm lượng của đồng vị
Bảng 3.5. Cấu trúc bảng dữ liệu cho TableThinghiem
Field Name Data Type Chú thích
tentn Text Chuỗi kí tự
Chứa dữ liệu về tên của thí nghiệm.
tn hyperlink Siêu liên kết
Chứa đường dẫn tới file phim thí nghiệm.
Bảng 3.6. Cấu trúc bảng dữ liệu cho TableNhietdong
Field Name Data Type
CT text Chuỗi kí tự
Chứa dữ liệu về kí hiệu hoá học của các chất.
TT Text Chuỗi kí tự
Chứa dữ liệu về trạng thái của các chất.
H text Chuỗi kí tự
Chứa dữ liệu về giá trị ΔH0S của các chất.
S Text Chuỗi kí tự
Chứa dữ liệu về giá trị ΔS0 của các chất.
Bảng 3.7. Cấu trúc bảng dữ liệu cho TableKa
Field Name Data Type Chú thích
ID AutoNumber Số thứ tự tự động
CT text Chuỗi kí tự
Chứa dữ liệu về kí hiệu hoá học của các chất.
Ka Text Chuỗi kí tự
Chứa dữ liệu về hằng số Ka của các chất.
Bảng 3.8. Cấu trúc bảng dữ liệu cho TableThetieuchuan
Field Name Data Type Chú thích
ID AutoNumber Số thứ tự tự động
pt text Chuỗi kí tự
Chứa dữ liệu về cặp oxi hoá-khử.
E Text Chuỗi kí tự
Chứa dữ liệu về giá trị thế điện cực tiêu chuẩn.
Bảng 3.9. Cấu trúc bảng dữ liệu cho TableTichsotan
Field Name Data Type
ID AutoNumber Số thứ tự tự động
CT text Chuỗi kí tự
Chứa dữ liệu về kí hiệu hoá học của các chất.
T Text Chuỗi kí tự
Bảng 3.10. Cấu trúc bảng dữ liệu cho TableUser
Field Name Data Type Chú thích
Username Text Chuỗi kí tự
Chứa dữ liệu về tên người sử dụng.
password text Chuỗi kí tự
Chứa dữ liệu về mật khẩu người sử dụng.
3.1.2. Xây dựng các Query
3.1.2.1. QryBaitap
+ Cửa sổ thiết kế truy vấn: Bảng dữ liệu nguồn là TableBaitap. + Criteria: [forms]![baitap].[text4]
Hình 3.1. Cửa sổ Query Design của QryBaitap
+ Chức năng: Dùng để lấy dữ liệu của record trong TableBaitap có số thứ tự (STT) bằng giá trị của textbox4 trong formBaitap. Lúc đó ta kích chuột vào nguyên tố nào thì toàn bộ dữ liệu của nguyên tố đó sẽ được truy vấn ra và hiển thị ở ReportBaitap và FormBaitap_con, các nguyên tố khác thì không.
3.1.2.2. QryData
+ Cửa sổ thiết kế truy vấn: Bảng dữ liệu nguồn là TableData. + Criteria: [forms]![donchat].[text4]
Hình 3.2. Cửa sổ Query Design của QryData
+ Chức năng: Dùng để lấy dữ liệu của record trong TableData có số thứ tự (STT) bằng giá trị của textbox4 trong formDonchat. Lúc đó ta kích chuột vào nguyên tố nào thì toàn bộ dữ liệu của nguyên tố đó sẽ được truy vấn ra và hiện thị ở ReportDonchat và FormDonchat_con, các nguyên tố khác thì không.
3.1.2.3. QryDonchat
+ Cửa sổ thiết kế truy vấn: Bảng dữ liệu nguồn là TableData. + Criteria: [forms]![main].[goi]
Hình 3.3. Cửa sổ Query Design của QryDonchat
+ Chức năng: Dùng để lấy dữ liệu của record trong TableData có số thứ tự (STT) bằng giá trị của TextboxGoi trong formMain. Khi ta chỉ chuột vào nguyên tố nào ở formMain thì giá trị của Gọi sẽ là số thứ tự của nguyên tố đó.
Lúc đó thì toàn bộ dữ liệu của nguyên tố sẽ được truy vấn ra và hiện thị ở ReportDonchat1 và các form bao gồm Formcon, Formcona, Formconb và formdongvi, các nguyên tố khác thì không.
3.1.2.4. QryHopchat
+ Cửa sổ thiết kế truy vấn: Bảng dữ liệu nguồn là TableHopchat. + Criteria: [forms]![hopchat].[text4]
Hình 3.4. Cửa sổ Query Design của Qryhopchat
+ Chức năng: Dùng để lấy dữ liệu của record trong TableHopchat có số thứ tự (ID) bằng giá trị của textbox4 trong formHopchat. Lúc đó ta kích chuột vào hợp chất nào thì toàn bộ dữ liệu của hợp chất đó sẽ được truy vấn ra và hiện thị ở ReportHopchat và FormHopchat_con, các nguyên tố khác thì không.
3.1.3. Xây dựng các report
3.1.3.1. ReportBaitap
+ Giao diện thiết kế report: Dữ liệu nguồn là qryBaitap. + Các trường có trong report: - STT (số thứ tự của bài tập).
- Dang (dạng bài tập).
Hình 3.5. Cửa sổ Report Design của Reportbaitap
+ Chức năng: Dùng để xem và in dữ liệu về dạng bài tập đang xem ở formBaitap ra máy in.
3.1.3.2. ReportDonchat
+ Giao diện thiết kế report: Dữ liệu nguồn là qryData.
+ Các trường có trong report: - STT (số thứ tự của nguyên tố). - tenvn (tên tiếng Việt của nguyên tố). - ten (tên tiếng Anh của nguyên tố). - khhh (kí hiệu hoá học của nguyên tố). - anh1, anh2, anh3 (ảnh của nguyên tố). - data (dữ liệu của nguyên tố).
+ Chức năng: Dùng để xem và in dữ liệu về các dữ liệu của đơn chất đang xem ở formDonchat hoặc sau khi click vào ô nguyên tố ra máy in.
3.1.3.3. ReportHopchat
+ Giao diện thiết kế report: Dữ liệu nguồn là qryHopchat.
+ Các trường có trong report: - ID (số thứ tự của hợp chất trong tablehopchat).
- ctpt (công thức phân tử của hợp chất). - data (dữ liệu của hợp chất).
Hình 3.7. Cửa sổ Report Design của Reporthopchat
+ Chức năng: Dùng để xem và xuất các dữ liệu của hợp chất đang xem ở formhopchat ra máy in.
3.1.4. Xây dựng các macro
3.1.4.1. Autoexec
+ Màn hình thiết kế tập lệnh: - Action: Openform. - Form Name: bd. - View: Form.
Hình 3.8. Cửa sổ Macro Design của MacroAutoexec
+ Chức năng: - Tự động chạy macro khi mở CSDL. - Tiến hành mở FormBd.
3.1.3.2. Opendonchat
+ Màn hình thiết kế tập lệnh: - Action: OpenReport.
- Report Name: Reportdonchat. - View: Report.
Hình 3.9. Cửa sổ Macro Design của MacroOpendonchat
+ Chức năng: Tiến hành mở reportdonchat1 ở chế độ xem để in.
3.1.5. Xây dựng các form3.1.5.1. FormBd 3.1.5.1. FormBd
+ Giao diện thiết kế form:
- Các label: Tạo các chữ cần hiển thị dưới dạng text trong đó label “Trường Đại học Vinh – Khoa Hoá học” có On Click là [Event
Procedure] để khi click chuột vào label này sẽ vào giao diện chính của chương trình(formMain).
- Hai textBox có chức năng hiện thị ngày, giờ của máy tính tại thời điểm làm việc với các Control Source là “=Date()” và “=Time()”.
Hình 3.10. Giao diện thiết kế formBd
+ Chức năng: Chỉ là form chào hỏi của chương trình trước khi kết nối đến formMain.
3.1.5.2. FormMain
+ Giao diện thiết kế form:
- Các command: Các command trong form được chia làm hai loại:
• Command nguyên tố: có On Click là Opendonchat để khi click chuột vào command này thì sẽ chạy macroOpendonchat.
• Command lệnh: có On Click là [Event Procedure] dùng để thực thi các thao tác lệnh tương ứng.
- Bốn form con:
•formcon: hiện thị ảnh của nguyên tố đang xem.
•Formcona: hiện thị ảnh và các thông tin về nguyên tố đang xem.
•Formconb: hiện thị ảnh về vạch phổ của nguyên tố đang xem.
•Formdongvi: hiện thị dữ liệu về hàm lượng và số khối của các đồng vị của nguyên tố đang xem.
- Thuộc tính của các form con:
•formcon, formcona và formconb: Record source: Data Link Master Fields: Goi Link child field: STT
•formdongvi: Record source: dongvi Link Master Fields: Goi Link child field: ID
Hình 3.11. Giao diện thiết kế formMain
+ Chức năng: Là giao diện chính của chương trình, có chức năng hiện thị một số thông tin của nguyên tố trong bảng tuần hoàn và chứa các command lệnh đến các form khác của chương trình.
+ Giao diện thiết kế form:
- Các command: có On Click là [Event Procedure] để khi click chuột vào command này thì sẽ chạy lệnh in ấn và đóng form.
- Hai form con:
• donchat_con: hiện thị các kí hiệu hoá học của các nguyên tố trong TableDonchat.
• Donchat_con_data: hiện thị các thông tin về nguyên tố đang xem.
- Thuộc tính của các form con:
• Donchat_con : Record source: Data
• Donchat_con_data: Record source: Data Link Master Fields: text4 Link child field: khhh
Hình 3.12. Giao diện thiết kế formDonchat
+ Chức năng: - Xem các thông tin về nguyên tố mà mình chọn. - Xuất các thông tin đang hiện thị ra máy in.
3.1.5.4. FormHopchat
- Các command: có On Click là [Event Procedure] để khi click chuột vào command này thì sẽ chạy lệnh in ấn và đóng form tương tự như ở formdonchat.
- Hai form con:
• hopchat_con: hiện thị các công thức phân tử của hợp chất trong TableHopchat.
• hopchat_con_data: hiện thị các thông tin về hợp chất đang xem.
- Thuộc tính của các form con:
• Hopchat_con : Record source: hopchat
• Hopchat_con_data: Record source: hopchat Link Master Fields: text4 Link child field: ID
Hình 3.13. Giao diện thiết kế formHopchat
+ Chức năng: - Xem các thông tin về hợp chất mà mình chọn. - Xuất các thông tin đang hiện thị ra máy in.
3.1.5.5. FormBaitap
- Các command: có On Click là [Event Procedure] để khi click chuột vào command này thì sẽ chạy lệnh in ấn, xem đáp án và đóng form.
- Hai form con:
• baitap_con: hiện thị các dạng bài tập có trong TableBaitap.
• baitap_con_data: hiện thị nội dung các bài tập theo các dạng đang xem.
- Thuộc tính của các form con:
• Baitap_con: Record source: baitap
• Bàitap_con_data: Record source: baitap Link Master Fields: text4 Link child field: STT
Hình 3.14. Giao diện thiết kế formBaitap
+ Chức năng: - Xem các nội dung về dạng bài tập mà mình chọn. - Xem đáp án của các bài tập phần mình chọn. - Xuất các thông tin đang hiện thị ra máy in.
3.1.5.6. FormThinghiem
- Form con: thinghiem_con: hiện thị số thứ tự, tên, đường link và định dạng của phim thí nghiệm để mở các thí nghiệm có trong TableThinghiem.
- Combo box có tên định dạng để lựa chọn định dạng của phim thí nghiệm cần xem có trong tableThinghiem.
- Thuộc tính của form con:
thinghiem_con: Record source: thinghiem Link Master Fields: dinhdang Link child field: dinhdang
Hình 3.15. Giao diện thiết kế formThinghiem
+ Chức năng: Xem các thí nghiệm dưới dạng video khi click vào xem thí nghiệm tương ứng.
3.1.5.7. FormTichsotan
+ Giao diện thiết kế form: - Hai Form con:
• tichsotan_con: hiện thị số thứ tự và kí hiệu hoá học của các phân tử có trong TableTichsotan.
• tichsotan_con1: hiện thị giá trị tích số tan của phân tử được chọn ở formtichsotan_con.
- Thuộc tính của các form con:
• tichsotan_con1: Record source: tichsotan Link Master Fields: text4 Link child field: ID
Hình 3.16. Giao diện thiết kế formTichsotan
+ Chức năng: Xem tích số tan của các chất trong nước ở 250C.
3.1.5.8. Formthetieuchuan
+ Giao diện thiết kế form: - Hai Form con:
• thetieuchuan_con: hiện thị số thứ tự và các cặp oxi hoá-khử có trong Tablethetieuchuan.
• thetieuchuan_con1: hiện thị giá trị thế tiêu chuẩn của cặp oxi hoá-khử được chọn ở formthetieuchuan_con.
- Thuộc tính của các form con:
• thetieuchua_con: Record source: thetieuchua
• thetieuchua_con1: Record source: thetieuchua Link Master Fields: text4 Link child field: ID
Hình 3.17. Giao diện thiết kế formThetieuchuan
+ Chức năng: Xem thế tiêu chuẩn của các cặp oxi hoá-khử.
3.1.5.9. Formnhietdong
+ Giao diện thiết kế form: - Hai Form con:
• nhietdong_con: hiện thị số thứ tự và các chất có trong Tablenhietdong.
• nhietdong_con1: hiện thị giá trị của ΔH0 và S0 của các chất được chọn ở formnhietdong_con.
- Thuộc tính của các form con:
• nhietdong_con: Record source: nhietdong
• nhietdong_con1: Record source: nhietdong Link Master Fields: text4 Link child field: ID
+ Chức năng: Xem giá trị của ΔH0 và ΔS0 của các chất → ΔG0
3.1.5.10. FormKa
+ Giao diện thiết kế form: - Hai Form con:
• Ka_con: hiện thị số thứ tự và các chất và ion có trong TableKa.
• Ka_con1: hiện thị giá trị của hằng số phân ly axit Ka của chất và ion được chọn ở formKa_con.
- Thuộc tính của các form con:
• Ka_con: Record source: Ka
• Ka_con1: Record source: Ka
Link Master Fields: text4 Link child field: ID
Hình 3.19. Giao diện thiết kế formKa
+ Chức năng: Xem giá trị hằng số phân ly axit Ka của các chất và ion.
3.1.5.11. FormLogin
+ Giao diện thiết kế form:
- Hai textbox: để nhập UserName và Password
- Các command: có On Click là [Event Procedure] để khi click chuột vào command này thì sẽ chạy lệnh mở formLuachon để lựa chọn nội dung cần chỉnh sửa hoặc trở lại formMain.
- Form có Record source: user
Hình 3.20. Giao diện thiết kế formLogin
+ Chức năng: Thông qua form này để người sử dụng có thể vào formluachon để chỉnh sửa nội dung nhưng để vào được cần có username và password mới vào được. Username và password này do người sử dụng chương trình tự đặt nhằm quản lý chương trình, tránh việc người khác vào làm mất hay thay đổi thông tin, dữ liệu của chương trình.
3.1.5.12. FormLuachon
+ Giao diện thiết kế form:
- Label: Tạo chữ cần hiển thị dưới dạng text.
- Các command: có On Click là [Event Procedure] để khi click chuột vào command này thì sẽ chạy lệnh mở các form tương ứng để chỉnh sửa nội dung hoặc trở lại formMain.
+ Chức năng: Thông qua form tiến hành chọn các nội dung cần chỉnh sửa.
3.1.5.13. FormRe_pass
+ Tương tự như formLogin nhưng chức năng của nó là để người sử dụng chương trình thay đổi username và password đăng nhập vào formluachon khi cần.
+ Các thuộc tính trong form :
- Record Source của form: User
- Record Source của textboxUsername : username - Record Source của textboxPassword : Password
Hình 3.22. Giao diện thiết kế formRe_pass 3.1.5.14. FormRegitdit
Tương tự như formLogin nhưng chức năng của nó là để người quản trị chương trình hoặc những người được phân quyền đăng nhập vào để thay đổi các thuộc tính của chương trình.
3.1.6. Tạo code, hyperlink và OLE Object
3.1.6.1. Tạo code
Ngoài các code đã đề cập ở mục 2.3, để chương trình chạy được cần có thêm một số đoạn code khác.
+ code mở, đóng form khi click vào command:
Private Sub baitap_Click() ‘click vào commandBaitap’ DoCmd.Close ‘đóng form hiện thời’ DoCmd.OpenForm "baitap" ‘mở formBaitap’ End Sub
+ code gán biến cho textbox khi di chuyển chuột:
Private Sub Ctl1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
‘di chuyển chuột tới commandCtl1’ goi.Value = "1" ‘textboxGoi được gán giá trị là 1’ End Sub
3.1.6.2. Tạo hyperlink
Trong chương trình tồn tại hai dạng hyperlink, hyperlink động và hyperlink tĩnh.
Đối với hyperlink động thì có thể thay thế như dạng text và thường được lưu trữ trong các table. Trong chương trình, sử dụng hyperlink động đối với trường hợp các đoạn phim thí nghiệm. Với cách này người sử dụng