Còn đối với biểu mẫu, nó chỉ bắt đầu được sự kiện bàn. phím mỗi khi được kích hoạt và không có bất kỳ điều khiển khác có Focus[r]
(1)(2)NỘI DUNG
Tổng quan Visual Basic
Cách biên tập thực chương trình Giới thiệu Form Control
Hằng, biến, kiểu liệu Cấu trúc điều khiển
Tạo Object VB
Menu cách tạo Menu
Các hộp thoại dùng chung Tập tin
Đồ hoạ
(3)Tài liệu tham khảo
Giáo trình Visual Basic, Phạm Thuỳ Nhân
Nhà xuất Đồng Nai, 1999
Kỹ xảo lập trình VB6, Phạm Hữu Khang Nhà
xuất Lao Động Xã Hội
Giáo trình Visual Basic APTECH
Kỹ lập trình Visual Basic 6.0, Nguyễn
(4)Chương 1: Tổng quan Visual Basic
I. Giới thiệu
(5)I - Giới thiệu
VB6.0 phiên mạnh ngôn ngữ lập
trình Visual basic
Dễ dàng lập trình ứng mơi trường
windows
Với VB6.0, ta :
Khai thác mạnh điều khiển mở
(6) Làm việc với điều khiển mới: Monthview,
DataTimePiker, ToolBar, ImageCombo,
FlatScrollBar.
Làm việc với DHTML.
Làm việc với sở liệu.
Các bổ sung lập trình hướng đối tượng
(7)II - Phiên VB
(8)III - Cài đặt
Sử dụng file setup.
Nên cài đặt thêm trợ giúp MSDN Yêu cầu tối thiểu:
Microsoft Window 95 trở lên Microsoft
Window NT Workstation 4.0 trở lên.
Tốc độ CPU 66MHz trở lên.
Màn hình VGA hình có độ phân giải cao
được hổ trợ Microsoft Window
Yêu cầu 16 MB RAM cho Microsoft Window 95
(9)Chương II – Biên tập thực chương trình
I Khởi động hình VB
II Cách thiết kế Form
III Cách viết mã vào chương trình
(10)I - Khởi động hình VB
1 Khởi động VB 6.0
Start Programs Microsoft Visual Basic 6.0
Microsoft Visual Basic 6.0
(11)1- Click Stander
exe
(12)2 Tìm hiểu mơi trường tích hợp IDE – Integrated Development Environment
Thanh Standard:Thanh công cụ chuẩn
I - Khởi động hình VB
(13)I - Khởi động hình VB
Thanh Edit: sử dụng viết code
Thanh Form Editor: di chuyển, xếp điều khiển Thanh Form Editor: di chuyển, xếp điều khiển
(14)
I - Khởi động hình VB
Hộp cơng cụ Toolbox: chứa điều khiển dùng
(15) Project Explorer: Quản lý định hướng đề án
Cửa sổ Properties: xem, sửa đổi giá trị thuộc tính
của điều khiển
(16)I - Khởi động hình VB
(17)II – Cách thiết kế Biểu mẫu (form)
1 Mở dự án mới:
File New Project
2 Thêm biểu mẫu vào dự án:
Biểu mẫu dạng MDI:
Format Add MDI Form : Thêm form chính Format Add Form: Thêm form con
Biểu mẫu dạng thường:
Format Add Form
3 Thêm module vào dự án
(18)II – Cách thiết kế Biểu mẫu (form)
4 Thêm điều khiển vào biểu mẫu
Chọn điều khiển Toolbox Kéo vẽ vào Form
Thiết đặt thuộc tính cần thiết cho điều khiển
(19)III – Thiết kế mã chương trình
View code
Chọn tên điều khiển
(20)IV – Biên dịch
Biên dịch đề án thành tập tin thực thi:
Project Project Properties
Loại đề án
(21)IV – Biên dịch
(22)Chương III
Giới thiệu Form control
I Form, thuộc tính kiện bản
II Control, thuộc tính kiện bản
Label Textbox
Commanbutton
Checkbox Option button Combo box Listbox
(23)I – Form, thuộc tính kiện
Sự kiện:
Load(): Xảy form load Click(): Xảy form click
Activate(): Xảy form kích hoạt DblClick(): Xảy nhắp double lên form
Thuộc tính:
Caption: Tiêu đề form
BorderStyle: Thiết đặt đường viền cho form
(24)I – Form, thuộc tính kiện
Thuộc tính (tt):
Backcolor: màu
(25)II – Control, thuộc tính kiện
Điều khiển Label
Cho phép người dùng hiển thị ký tự biểu mẩu Nam : tên điều khiển
Caption : hiển thị chuổi ký tự
Font, Fore color, BackStyle, BackColor: font ký tự,
màu ký tự, nhãn suôt không ?, màu nền
Điều khiển khung Frame
Giúp bố trí giao diện sáng, rõ nét, làm
(26) Điều khiển Textbox
Giúp người dùng nhập thông tin vào, xuất thông tin,… Maxlength: số ký tự tối đa
Text: dùng để nhận xuất thông tin
Locked: cho phép thay đổi/khơng thuộc tính text PasswordChar: quy định dạng hiển thị ký tự Multiline: hiển thị dòng hay nhiều dòng
SelLength, Seltart, SelText: số ký tự chọn, vị trí ký tự
bắt đầu chọn, chuyển ký tự chọn
(27)II – Control, thuộc tính kiện
Điều khiển Command Button
Nút lệnh
Caption: hiển thị ký tự nút lệnh Default: nhập giá trị từ phím Enter Cancel: Nhận gía trị từ phím Esc
Enabled: cho phép nút có hiệu lực hay không ? Name: tên nút lệnh
(28) Điều khiển Listbox
Cho phép hiển thị đề mục để lựa chọn Name: tên listbox
List: liệu listbox
MultiSelect: Thuộc tính chọn : 1/nhiều
Thêm đề mục vào listbox: additem item [,index] Xoá đề mục: box.remove index
Xoá tất đề mục : box.clear Nhận giá trị đề mục : thuộc tính text
(29) Điều khiển combo box
Được xem tích hợp text box listbox Style: Dạng bombo box
Kiểu Giá trị Hằng
Drop-down combo box VbComboDropDown Simple combo box VbComboSimple
Drop-down list box VbComboDropList
(30) Điều khiển Checkbox
Cho biết mục có chọn hay khơng ?
Private Sub Check1_Click()
If Check1.Value = vbChecked Then Text1.Font.Bold = True
Else
Text1.Font.Bold = False End If
End Sub
(31) Điều khiển Option button
Tương tự Check box nhóm
có mẩu chọn
Điều khiển Hscrollbar
Có thể dùng làm thiết bị nhập, thiết bị định cho số
lượng, vận tốc
Large change : xác định khoảng thay đổi ấn chuột Small change : xác định khoảng thay đổi ấn chuột
cuối cuộn
Value: trả giá trị điều khiển [min, max]
(32)Private Sub HScroll1_Change()
Text1.FontSize = HScroll1.Value
Text1.Height = Text1.Height + HScroll1.Value Text1.Width = Text1.Width + HScroll1.Value End Sub
Điều khiển Vscrollbar
Tương tự Hscrollbar
(33)Chương IV : Hằng, biến, kiểu liệu
I Cách khai báo biến, sử dụng biến
II Tầm vực thời gian sống biến
III Cách định nghĩa sử dụng
(34)I- Biến cách sử dụng
Là vùng nhớ đặt tên, dùng để lưu trữ liệu
trung gian trình hoạt động
Khai báo biến
Cú pháp : [ Dim | Private | Static | Public ] VarName As DataType
VD: Dim i as integer
Khai báo tường minh
(35) Ví dụ:
Private iNumVal As Integer
Private iAvgVal As Integer, dInputval As Double Static sCalcAverage As Single
Dim strInputMsg As String
Lưu ý:
Để yêu cầu khai báo tường minh ta check vào mục Require Variable Declaration mục Option
Quy định cách đặt tên biến:
Tên phải bắt đầu chữ dấu gạch Tên khơng có dấu câu kí tự đặc biệt
(36) Tên phải (không trùng với tên nào) phạm vi hoạt động
Tên khơng dài 255 kí tự
Tên khơng phân biệt chữ hoa chữ thường Ví Dụ:
Cách đặt tên biến không đúng
1tuan
tien.cua.toi so luong
Cách đặt tên biến đúng
icount, number
(37) Lưu ý:
Bạn nên đặt tên biến kèm theo ý nghĩa loại biến ký tự đầu tên biến
icount ‘biến kiểu integer
(38)II - Tầm vực thời gian sống biến
Public: biến khai báo với từ khoá
public module Pas có tác dụng trong tồn chương trình
Private: biến khai báo với private
trong module pas có tác dung trong module.pas
(39) Biến toàn cục
khai báo với từ khố public có tác dụng
tồn CT
VD : public icount as integer
Biến cấp module
Được khai báo với từ khóa private, dim module Chỉ truy cập module
Vd: dim i as integer
private ngaythang as date
Tuy nhiên, ta khai báo biến kiểu pubic
module Khi truy cập module ngoài module
(40) Biến cục động
Được khai báo thủ tục có thời gian sống trùng
với thời gian sống thủ tục
VD:
Sub PrintStr()
Dim Str As String ' Str biến cục động.
End Sub
Biến cục tĩnh
Được khai báo thủ tục với từ khố static có thời
gian sống biến module
(41) Mục đích: sử dụng để ngăn ngừa thủ
tục khởi tạo lại giá trị, thường sử dụng trong kiện click chuột
(42)III - Hằng cách sử dụng
Hằng chứa giá trị tạm, không thay đổi
suốt trình hoạt động
Khai báo:
[<public| private>]const <tên hằng> [As <kiểu
liệu>] = <biểu thức>
VD:
Const Pi=3.1416
(43)IV – Các kiểu liệu bản
1 Kiểu số nguyên:
Gồm: Byte, Integer, Long
Phép toán: +, - ,*, / (chia lấy phần nguyên),
/ (chia lấy phần dư)
2 Kiểu Boolean: (True /False)
3 Kiểu số thực:
Gồm: Single, Double, Currency Hàm làm tròn Round :
(44)4 Kiểu Date:
Kiểu ngày, giờ
VD:#11/11/1900#
#10/3/2005 12.20 AM#
5 Kiểu xâu ký tự - String
Khai báo:
Độ dài cố định: Dim Name as String * 50 Không cố định: Dim Name as String
(45)IV – Các kiểu liệu bản
5 Kiểu xâu ký tự - String (tt)
Hàm thông dụng
Len(str) : Lấy chiều dài chuỗi str
Mid(str, start, [length]): Trích chuỗi từ chuỗi gốc Left(str, [length]): Trích chuỗi từ bên trái chuỗi str Right(str, [length]): …… phải … str
InStr([start, ] string1, string2[,compare]): Tìm chuỗi chuỗi gốc - trả vị trí tìm thấy
Start: Vị trí bắt đầu việc tìm kiếm String1: Chuỗi để so sánh
(46)IV – Các kiểu liệu bản
Compare:
0 (vbBinaryCompare): So sánh xác 1 (vbTextCompare): Tương đối
VD:
Dim SearchString, SearchChar, MyPos SearchString ="XXpXXpXXPXXP"
SearchChar = "P"
MyPos = Instr(4, SearchString, SearchChar, 1) MyPos = Instr(1, SearchString, SearchChar, 0) MyPos = Instr(SearchString, SearchChar)
(47)IV – Các kiểu liệu bản
5 Kiểu xâu ký tự - String (tt)
Str: Chuyển đổi song kiểu chuỗi Val: Chuyển đổi sang kiểu số
6 Kiểu Object
Chứa địa byte để trỏ đến đối tượng Cách dùng:
Dim Obj as Object
(48)IV – Các kiểu liệu bản
8 Kiểu Variant (mặc định)
Kiểu tổng quát, chứa kiểu khác (trừ kiểu
chuỗi có độ dài cố định)
Hàm kiểm tra kiểu: VarType TypeName
Hằng giá trị
vbEmpty
vbNULL
vbInteger
vbLong
vbSingle
(49)IV – Các kiểu liệu bản
vbCurrency 6
vbDate 7
vbString 8
vbObject 9
vbError 10
vbBoolean 11
vbVariant 12
vbByte 17
(50)IV – Các kiểu liệu bản
9 Kiểu mảng
Là dãy biến có tên, kiểu Mảng có chiều dài cố định:
Dim Mang(14) As Integer 14 Public Mang(20) As Double 20
Dim Mang ( 10 to 24) As Integer 10 24 Hàm Unbound: Trả biên
Hàm Lbound: Trả biên
(51)IV – Các kiểu liệu bản
9 Kiểu mảng (tt)
Mảng động:
Khai báo: Dim MangDong()
Cấp phát: ReDim [Preserve] MangDong(kích thước) Ví dụ:
ReDim MangDong(10)
(52)IV – Các kiểu liệu bản
9 Kiểu mảng (tt)
Một số tính khác
Sao chép mảng:
Sub ByteCopy (Old() as Byte, New() as Byte) New = Old
End sub
Trả mảng từ hàm
Public Function Ham(b as Byte) as Byte() Dim X(2) as Byte
(53)IV – Các kiểu liệu bản
Hàm thủ tục
Cú pháp thủ tục:
[Private| Public|Static] Sub <tên thủ tục>(tham số) <lệnh>
End Sub
Cú pháp hàm:
[Private| Public|Static] Function <tên hàm>(tham số) as <kiểu liệu>
(54)IV – Các kiểu liệu bản
Hàm thủ tục (tt)
Có thể sử dụng Exit Sub / Exit Function Truyền giá trị - ByVal
Sub Truyentri( Byval Ten as <kiểu liệu>) <câu lệnh>
End Sub
Truyền tham chiếu
Sub Truyenthamchieu(Ten as <kiểu liệu>) <câu lệnh>
(55)V - Cấu trúc điều khiển
(56)V - Cấu trúc điều khiển
1 Cấu trúc chọn
Các biểu thức so sánh
Ký hiệu Ý nghĩa
= Bằng
<> Khác
> Lớn hơn < Nhỏ hơn
(57)V - Cấu trúc điều khiển
1 Cấu trúc chọn (tt)
a If … Then Một dòng:
If <đk> Then <Cơng việc>
Nhiều dịng:
If <đk> Then
(58)V - Cấu trúc điều khiển
1 Cấu trúc chọn (tt)
b If … Then … Else
If <đk 1> Then
<khối lệnh 1> ElseIf <đk2> Then
<khối lệnh 2> Else
(59)V - Cấu trúc điều khiển
1. Cấu trúc chọn (tt)
c. Select Case
Select Case <biểu thức kiểm tra> Case <danh sách kết 1>
<khối lệnh 1>
Case <danh sách kết 1> <khối lệnh 1>
…
Case Else
(60)V - Cấu trúc điều khiển
1. Cấu trúc chọn (tt)
c. Select Case (tt)
Ví dụ:
Dim Number Number =
Select Case Number Case To 5
Debug.Print "Between and 5"
Case 6, 7,
Debug.Print "Between and 8"
Case To 10
Debug.Print "Greater than 8"
Case Else
Debug.Print "Not between and 10"
(61)V - Cấu trúc điều khiển
1. Cấu trúc chọn (tt)
c. Select Case (tt)
Lưu ý: Trong cấu trúc Case không sử dụng tên biến Không dùng Case Index >100 mà
(62)V - Cấu trúc điều khiển
2. Cấu trúc lặp
a. Do … Loop : Lặp không xác định Kiểu 1: Thực điều kiện đúng
Do While <điều kiện> <khối lệnh>
Loop
Kiểu 2: Thực điều kiện đúng
Do
<khối lệnh>
(63)V - Cấu trúc điều khiển
2. Cấu trúc lặp (tt)
a. Do … Loop : (tt)
Kiểu 3: Thực điều kiện sai
Do Until <điều kiện> <khối lệnh>
Loop
Kiểu 4: Thực điều kiện sai
Do
<khối lệnh>
(64)V - Cấu trúc điều khiển
2. Cấu trúc lặp (tt)
b. For … Next : Lặp với số lần xác định
For <biến đếm> =<điểm đầu> To <điểm cuối> [Step
<bước nhảy>] <khối lệnh>
Next
Ví dụ:
For I = To 10
For J = To 10
For K = To 10
Next Next
(65)V - Cấu trúc điều khiển
2. Cấu trúc lặp (tt)
c. For Each … Next : Lặp với số số phần tử của tập đối tượng/ mảng
For Each <phần tử> In <nhóm>
<khối lệnh> Next
(66)V - Cấu trúc điều khiển
2. Cấu trúc lặp (tt)
c. For Each … Next : (tt) Ví dụ:
Dim mang(10) As Integer Dim i
mang(0) = mang(1) = mang(2) = mang(3) = mang(4) =
For Each i In mang MsgBox i
(67)V - Cấu trúc điều khiển
2. Cấu trúc lặp (tt)
d. While …Wend: Lặp không xác định, không sử dụng lệnh Exit
While <đk>
<câu lệnh>
(68)V - Cấu trúc điều khiển
3. Câu lệnh thoát – Exit
Lệnh Ý nghĩa
Exit do Lệnh thoát cho Do …
Exit For Lệnh thoát cho For …
Exit sub Lệnh thoát cho Sub
(69)V - Cấu trúc điều khiển
3. Câu lệnh – Exit (ví dụ)
Sub RandomLoop Dim I, MyNum Do For I = To 1000
MyNum = Int(Rnd * 100) Select Case MyNum
Case 17: MsgBox "Case 17" Exit For
Case 29: MsgBox "Case 29" Exit Do
Case 54: MsgBox "Case 54" Exit Sub
End Select Next Loop
(70)V - Cấu trúc điều khiển
4. Câu lệnh Go to: Bãy lỗi On Error Goto Loi
(71)VI- Tạo đối tượng VB
Khai báo biến đối tượng
(72)VI- Tạo đối tượng VB
1 Tạo biến đối tượng
Cú pháp:
<[Dim]/[Public]/[Private]> <tên biến> As <đối tượng>
Ví dụ:
Dim frmbieumau As Form Dim txtInfor As TextBox
(73)VI- Tạo đối tượng VB
2 Từ khoá thường dùng
Từ khoá SET
Tham chiếu đến đối tượng chuyên biệt Ví dụ:
Set frmBien = Form1
(74)VI- Tạo đối tượng VB
2 Từ khoá thường dùng
Từ khoá IS
Cho phép kiểm tra biến đối tượng có tham chiếu đến đối tượng khơng
Ví dụ:
(75)VI- Tạo đối tượng VB
2 Từ khoá thường dùng
Từ khoá Nothing
Giải phóng vùng nhớ dùng cho đối tượng Ví dụ
Dim Afont as Font ………
(76)VI- Tạo đối tượng VB
2 Từ khoá thường dùng
Từ khoá New
Tạo đối tượng từ đối tượng gốc (là lớp)
(77)VI- Tạo đối tượng VB
2 Từ khoá thường dùng
Các kiểu đối tượng tổng quát: Control, Object,
Variant
Dùng để tham chiếu đến đối tương thuộc nhiều kiển khác
(78)VII- Menu cách tạo Menu
Giới thiệu
(79)VII- Menu cách tạo Menu
1 Giới thiệu
Có loại menu bản
(80)VII- Menu cách tạo Menu
2 Cách tạo menu
a Tạo menu dạng thả xuống
(81)VII- Menu cách tạo Menu
2 Cách tạo menu
a Tạo menu dạng thả xuống
Các thuộc tính
Caption : chuỗi hiển thị menu Name : tên thành phần
Shortcut: tạo phím tắt cho thành phần
WindowList: Hiển thị tiêu đề form form
mẹ (MDI)
Checked: Thuộc tính dạng check
(82)VII- Menu cách tạo Menu
2 Cách tạo menu
a Tạo menu dạng thả xuống
Các thuộc tính
Tách nhóm menu: Caption =‘-’
Tạo phím chọn nhanh: thêm ký tự & trược ký tự cần tạo
(83)VII- Menu cách tạo Menu
2 Cách tạo menu
a Tạo menu dạng bật
Tạo trược menu theo dạng thả xuống Tắt thuộc tính Visible menu vừa tạo Thiết đặt kiện MouseUp
Ví dụ:
Private Sub MDIForm_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbRightButton Then
PopupMenu mfile, vbPopupMenuLeftAlign End If
(84)VII- Menu cách tạo Menu
2 Cách tạo menu
a Tạo menu dạng bật ra
Các thuộc tính hiển thị:
(85)VIII- Hộp thoại dùng chung
Hộp thông điệp (Message Box)
Hộp nhập (Input box)
Các hộp thoại thông dụng (Common Dialog)
(86)VIII- Hộp thoại dùng chung
1 Hộp thông điệp – Message box
Xuất thông tin, tương tác với người dùng
MsgBox(prompt[, buttons] [, title] [, helpfile,
context])
Ví dụ:
(87)Hằng số Giá trị Diễn giải
vbOkOnly Chỉ hiển thị nút OK
vbOKCancel Hiển thị nút Ok Cancel
vbAbortRetryIgnore Hiển thị nút Abort, Retry, Ignore vbYesNoCancel Hiển thị nút Yes, No, Cancel
vbYesNo Hiên thị nút Yes No
(88)Hằng số Diễn giải
vbCritical Dùng cho thông báo lỗi thất bại thi hành cơng việc
vbQuestion Dùng cho câu hỏi yêu cầu người dùng lựa chọn
vbExclamation Dùng cho thơng báo chương trình
(89)Hằng số Giá trị Nút
vbOk OK
vkCancel Cancel
vbAbort Abort
vbRetry Retry
vbIgnore Ignore
vbYes Yes
(90)VIII- Hộp thoại dùng chung
2 Hộp nhập – Input Box
Dùng nhận thông tin
InputBox(prompt[, title] [, default] [, xpos] [,
ypos] [, helpfile, context])
VD:
Public Sub main()
Dim ReturnString As String
(91)VIII- Hộp thoại dùng chung
3 Các hợp thoại thông dụng
Mở tập tin Lưu tập tin Chọn màu Chọn Font In ấn
Trợ giúp
(92)Hộp thoại mở lưu tập tin
Chức năng: Mở lưu tập tin Ví dụ : Về hộp thoại Open
Private Sub Form_Load() On Error GoTo ErrHander
CommonDialog1.Filter = "All Files (*.*)|*.*|Text Files(*.txt)|*.txt| Batch Files (*.bat)|*.bat"
CommonDialog1.FilterIndex = CommonDialog1.ShowOpen Exit Sub
ErrHander: Exit Sub
CommonDialog1.ShowOpen
End Sub
(93)Hộp thoại mở lưu tập tin
Thuộc tính
Filter: Dạng tập tin mở/lưu
Filter index: Mục (dạng file) chọn mặc định
(94)Hộp thoại chọn màu
Chức năng
Cho phép chọn màu ShowColor
Ví dụ
Private sub getcolor(){
commondialog1.showcolor
(95)Hộp thoại Font
Chức
Cho phép người dùng chọn font chữ Showfont
Thuộc tính flags: cho phép chọn loại font hiển thị
Ví dụ
Private sub getfont()
Commondialog1.showfont
lname.fontname=commondialog1.fontname End sub
Private Sub Command1_Click() CommonDialog1.Flags = &H3 CommonDialog1.ShowFont
(96)Thuộc tính Giải thích
Color Lưu giữ giá trị màu chọn
FontBold True người dùng chọn chế độ đậm (Bold) False ngựơc lại
FontItalic True in nghiên False ngựơc lại
FontStrikeThru True chọn chế độ gạch ngang ký tự FontUnderLine True chọn chế độ gạch
FontName Tuỳ ý
Max Kích cỡ lớn Font hiển thị Min Kích cỡ nhỏ Font hiển thị FontSize Kích cỡ Font chọn
(97)Hằng Giá trị Hiệu quả
CdlCFPrinterFonts &H2 Chỉ hiển thị font máy in CdlCFScreenFonts &H1 Chỉ hiển thị font hình
CdlCFBoth &H3 Chỉ hiển thị font hình font máy in
CdlCFScalableOnly &H20000 Hiển thị font tỷ lệ font TrueType
(98)Hộp thoại Print
Chức năng
Thực việc in ấn ShowPrint
Một số thuộc tính thơng dụng: Copies,
FromPage, ToPage
Ví dụ
(99)Thuộc tính Giải thích
Copies Số in
FromPage Số thứ tự trang bắt đầu Max Số in tối đa cho phép Min Số in tối thiểu cho phép
PrinterDefault Nếu = True thay đổi gán lại thành thay đổi hệ thống có ảnh hưởng đến ứng dụng khác
ToPage Số thứ tự trang in cuối
(100)X Xử lý chuột bàn phím
1 Sự kiện chuột
Biểu mẫu điều khiển bắt đầu kiện
chuột có trỏ chuột ngang qua.
Có kiện chuột chủ yếu , là:
MouseDown: Xảy người sử dụng ấn chuột MouseUp : Xảy người sử dụng thả
một nút chuột
(101) Các tham số :
Button: cho biết nút chuột
Shift: Cho biết Shift , Ctrl hay Alt ấn X, Y : cho biết toạ độ trỏ chuột
Sử dụng kiện MouseDown
Ví dụ mơ ta kiện ấn chuột
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Line (10, 10)-(X, Y) ‘vẽ đường thẳng (10,10) đến (X,Y) End Sub
(102) Sự kiện MouseUp:
Ví dụ mơ ta kiện thả chuột
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = Then Print "Ban vua tha chuot trai“ If Button = Then Print "Ban vua tha chuot phai“ If Button = Then Print "Ban vua tha chuot giua“ End Sub
(103) Sử dụng kiện MouseMove
Thường dùng với phương thức Line để vẽ hình
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X
As Single, Y As Single)
Circle (X, Y), 50 End Sub
Hiệu chỉnh trỏ chuột
Ta dùng thuộc tính MousePointer để hiển thị biểu tượng,
con trỏ hình hay trỏ chuột hiệu chỉnh Dưới số giá trị thuộc tính MousePointer
CcDefault CcArrow CcCross ……
(104)2 Sự kiện bàn phím
Bàn phím có kiện:
KeyPress: phím có mã ASCII ấn KeyDown: phím ấn
KeyUp: phím thả
Chỉ có điều khiển có Focus bắt đầu
kiện bàn phím
Cịn biểu mẫu, bắt đầu kiện bàn
phím kích hoạt khơng có điều khiển khác có Focus
(105)Private Sub Text1_KeyPress(KeyAscii As Integer) MsgBox KeyAscii
End Sub
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
MsgBox "Keycode: " & KeyCode & "Shift: " & Shift
End Sub
Shift Ý nghĩa
1 Phím Shift
2 Phím Ctrl
4 Phím Alt
KeyCode = 13 Phím Enter
KeyCode = 27 Phím Asc
(106)LẬP TRÌNH CƠ SỞ DỮ LIỆU
LẬP TRÌNH VỚI ADO
(107)ADO (ActiveX Data Object)
ADO gì?
Mơ hình ADO
Tham chiếu ADO VB
(108)Tổng quan phương thức truy cập dữ liệu Client Application ADO OLE DB ODBC Relational Data SQL Server Jet Oracle
Non – Relational Data Email
Text
(109)1 ADO ?
ADO giao diện lập trình truy xuất sở liệu
được phát triễn Microsoft, ADO nằm bên OLE DB, sử dụng phương thức OLE DB cung cấp để truy xuất liệu.
OLE DB giao diện lập trình sở liệu
mức hệ thống.
Một số phiên OLE DB:
Microsoft OLE DB Provider for ODBC
Microsoft OLE DB Provider for SQL Server Microsoft OLE DB Provider for Microsoft Jet Microsoft OLE DB Provider for Oracle
……
(110)Mơ hình đối tượng
ADO
(111)Đối tượng ADO
Connection, command, Recordset: đối tượng chủ yếu
của mơ hình đối tượng
Connection: Dùng kết nối sở liệu, làm nhiệm vụ kiểm
soát giao dịch
Connection gắn liền với đối tượng Recordset
Command
Command : Thực lệnh
Các hành động: Update, Insert, Delete câu lệnh truy
vấn
Recordset: Chứa tập hợp kết trả từ liệu
nguồn
Errors: Chứa thông tin liên quan đến lỗi gây
những đối tượng mơ hình ADO
(112) Tham chiếu ADO vào Visual Basic
Chọn Project / Reference/ Chọn Microsoft ActiveX
Data Objects 2.7 Library ( Sử dụng cho trường hợp SQL Server)
Chọn Project / Components/Chọn Microsoft ADO
Data Control 6.0 (OLE DB )
(113)Đối tượng Connection
Thuộc tính:
CommandTimeout: Thời gian chờ để nhận kết thực thi
câu lệnh Execute
ConnectionString: Chỉ định chuỗi kết nối CSDL
Các thông số ConnectionString:
Provider: SQLOLEDB dùng cho SQL Server Data Source: Tên Server
Initial Catalog: Tên CSDL
UserID, Password: Tài khoản mật đăng nhập vao CSDL Provider=SQLOLEDB.1;Persist Security Info=False;User
ID=sa;Initial Catalog=Northwind;Data Source=NVLOT
ConnectionTimeout: Thời gian chờ để nhận kết kết nối
Mặc định 15 giây
Cursorlocation: Cho biết đối tượng Recordset tạo phía
(114)Đối tượng Connection
DefaultDatabase: Tên CSDL SQL server cần kết nối Provider: Chỉ định Data provider sử dụng State: Trả trạng thái nối kết
Phương thức:
BeginTrans: Khởi tạo giao dịch
Cancel: Ngừng thực thi câu lệnh Open Execute Close: Đóng đối tượng Connection ngắt nối kết
CommitTrans: Lưu lại tất thay đổi thực
hiện trình thực giao dịch
Execute: thực thi câu truy vấn, câu SQL, thủ tục lưu
trữ nội
Open: Thiết lập kết nối với SQL Server qua
ConnectionString
(115)Đối tượng Connection
Dim adoconnection As New ADODB.Connection Dim adocommand As New ADODB.Command With adoconnection
.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=tes;Data Source=(local)" Open
.BeginTrans End With
With adocommand
.ActiveConnection = adoconnection CommandType = adCmdText
.CommandText = "Insert sinhvien(ma,ten) values(4," & “Cong" & ") " Execute
End With
(116)Đối tượng Recordset
Phương thức:
Addnew: Thêm vào Recordset mẫu tin Cancel: Hủy bỏ thực thi phương thức Open
CancelBatch: Hủy bỏ cập nhật xảy
Recordset
Clone: Tạo Recordset
Close: Đóng Recordset đóng kết nối với CSDL Delete: Xóa mẫu tin
GetRows: Nhận nhiều mẫu tin đưa vào mảng
GetString: Chuyển liệu Recordset thành chuỗi Move: Di chuyển tro dòng mẫu tin
(117)Đối tượng Recordset
MoveNext: Di chuyển trỏ dòng sang mẫu tin MovePrevious: Di chuyển trỏ dịng mẫu tin trước NextRecordset: Trả Recordset kết tiếp
Open: Mở Recordset dựa ActiveConncection
Source
Requery: Thực thi lại câu Query để tươi Resync: Làm tươi lại liệu Recordset Update: Lưu lại thay đổi Recordset
UpdateBatch: Lưu lại thay đổi trỏ
(118)Đối tượng Recordset
Dim adoRS As New ADODB.Recordset With adoRS
.ActiveConnection = "Provider=SQLOLEDB.1;Persist Security
Info=False;User ID=sa;Initial Catalog=Northwind;Data Source=(local)" Source = “Select EmployeeID, Lastname, FirstName From Employees" Open
End With
While adoRS.Fields.Count >
If (Not adoRS.BOF) And (Not adoRS.EOF) Then Debug.Print adoRS.Fields("FirstName")
Debug.Print adoRS.Fields("LastName") End If
(119)Đối tương Command
Phương thức:
Cancel: Hủy bỏ thực thi câu lệnh Execute
Execute: thực thi câu lệnh thuộc tính ComandText
Thuộc tính:
ActiveConnection:Chuỗi nối kết đến CSDL CommandText: Câu lệnh cần thực
CommandTimeout: Số giây mà đối tượng Command chờ
kết trả
CommandType: Loai câu lệnh Command Name: Tên đối tượng Command
State: Trạng thái đối tượng Command Đóng, mở,
(120)Trình bày liệu DataGrid
Project Components Microsoft DataGrid Control
6.0
Project Components Microsoft ADO Data Control
6.0
ADO (ADODC1) DataGrid
(121)Adodc1.ConnectionString =
"Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial
Catalog=Northwind;Data Source=(local)" Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "select * from Employees“ Set adoRS.DataSource = Adodc1
(122)(123)Dim sql, strcon As String
strcon = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=tes;Data Source=(local)"
sql = "Insert into sinhvien(mssv,hoten,phai) values('" & txtmssv.Text & "','" & txthoten.Text & "','"
If Nam.Value = True Then sql = sql & "Nam')"
Else
sql = sql & "Nu')" End If
With adocommand
.ActiveConnection = strcon CommandText = sql
.Execute End With
Adodc1.Refresh DBGrid.Refresh
(124)Dim sql, strcon As String
strcon = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=tes;Data Source=(local)"
sql = "Update sinhvien set hoten='" & txthoten.Text & "' where mssv='" & txtmssv.Text & "'"
With adocommand
.ActiveConnection = strcon CommandText = sql
.Execute End With
Adodc1.Refresh DBGrid.Refresh
(125)Tom tắt kết nối ADO
Có thể sử dụng cách lệnh sau để kết nối
thực thi với sở liệu SQL Server / Access
Khai báo biến
Dim Conn, Rst, gsCon
Khởi tạo gsCon
gsCon=“chuỗi Provider”
Khởi tọa kết nối
(126) Khởi tạo kết nối bảng
Set Rst=CreateObject(“ADODB.Recordset”) Hoặc R as New ADODB.Recordset
Tạo kết nối
Conn.Open gsConn
Thực thi phát biểu Insert/Update/Delete
Conn.Execute “Delete from… ”
Tạo kết nối với bảng csdl ứng với kết nối Conn
Rst.Open “Select * from ….” , Conn
Thêm liệu vào bảng
Rst.AddNew
(127) Lấy liệu
Biến=Rst(“Tên cột”)
Biến =Rst(“số thứ tự côt”)
Di chuyển bảng
Rst.MoveFirst Rst.MoveLast Rst.MoveNext
Rst.MovePrevious
Kiểm tra
Rst.EOF, Rst.BOF
(128)Crystal Report
Chức năng:
Cho phép in mẫu báo cáo hình, máy in,
excel, word…
(129)Crystal Report
(130)Crystal Report
Nguồn
liệu Microsoft
SQL Server
Thông tin đăng nhập Microsoft SQL
(131)(132)(133)(134)Crystal Report
Sau thiết kế song <tên Report>.<rpt>
Sử dụng điều khiển Crviewer Control
Project Components Crystal Report Viewer
Control
Crystal Report 8.5 ActiveX Designers Design and
(135)(136)Private Sub Form_Load()
CRViewer1.EnableExportButton = True
Dim appReport As New CRAXDDRT.Application Dim csReport As CRAXDDRT.Report
Set csReport = appReport.OpenReport(App.Path & "\Report2.rpt")
csReport.Database.LogOnServer "pdssql.dll", “(local)", "tes", "sa", ""
CRViewer2.ReportSource = csReport CRViewer2.ViewReport
End Sub
Mã lệnh hiển thị hộp thoại
(137)Xây dựng, đăng ký sử dụng tập tin DLL DLL – Dynamic Link Library thự viện liên kết động chứa phương thức thuộc tính dùng lại
Xây dựng tập tin dll
File New Project ActiveX DLL Đặt tên cho Project
Mục Instancing:
Private: Chỉ phép tạo đối tượng dự án chứa đối
tượng
PublicNotCreatable: Cho phép ứng dụng khác sử dụng
đối tượng, không cho phép ứng dụng khác tạo chúng
MultiUse:Tạo tuỳ ý đối tượng
Global MultiUse:Tương tự MultiUse, trở thành phần
(138)Tên lớp Tên Project
(139)Xây dựng, đăng ký sử dụng tập tin DLL
Khai báo phương thức thuộc tính cho lớp Lưu tập tin lại
Biên dịch:
Project Properties Component chọn Binary Compatibility
File Make <Tên file>.DLL Lưu vào thư mục System32
Đăng ký tập tin DLL
(140)Xây dựng, đăng ký sử dụng tập tin DLL
Sử dụng tập tin DLL
Tạo Project mới
Project References Chọn Project chứa tập
tin DLL
Khai báo đối tượng sử dụng
Private Sub Command1_Click() Dim s
Set s = CreateObject("BG.TEST") MsgBox s.Giaithua(6)