Tải bản đầy đủ (.ppt) (140 trang)

Visual Basic

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (538.21 KB, 140 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1></div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

NỘI DUNG



<b>Tổng quan về Visual Basic</b>



<b>Cách biên tập và thực hiện chương trình</b>


<b>Giới thiệu về Form và các Control</b>



<b>Hằng, biến, kiểu dữ liệu</b>


<b>Cấu trúc điều khiển</b>



<b>Tạo Object trong VB</b>



<b>Menu và cách tạo Menu</b>



<b>Các hộp thoại dùng chung</b>


<b>Tập tin </b>



<b>Đồ hoạ</b>



</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

Tài liệu tham khảo



<i>Giáo trình Visual Basic, Phạm Thuỳ Nhân. </i>



Nhà xuất bản Đồng Nai, 1999



<i>Kỹ xảo lập trình VB6, Phạm Hữu Khang. Nhà </i>



xuất bản Lao Động Xã Hội



<i>Giáo trình Visual Basic của APTECH</i>




<i>Kỹ năng lập trình Visual Basic 6.0, Nguyễn </i>



</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

Chương 1: Tổng quan về Visual Basic



<b>I.</b>

<b>Giới thiệu</b>



</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

I - Giới thiệu



VB6.0 là phiên bản mạnh của ngơn ngữ lập



trình Visual basic



Dễ dàng lập trình ứng trên môi trường



windows



Với VB6.0, ta có thể :



Khai thác thế mạnh của các điều khiển mở



</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

Làm việc với các điều khiển mới: Monthview,



DataTimePiker,

ToolBar,

ImageCombo,



FlatScrollBar.



Làm việc với DHTML.



Làm việc với cơ sở dữ liệu.




Các bổ sung về lập trình hướng đối tượng



</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

II - Phiên bản VB



</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

III - Cài đặt



Sử dụng file setup.



Nên cài đặt thêm bộ trợ giúp MSDN


Yêu cầu tối thiểu:



Microsoft Window 95 trở lên hoặc là Microsoft



Window NT Workstation 4.0 trở lên.



Tốc độ CPU 66MHz trở lên.



Màn hình VGA hoặc màn hình có độ phân giải cao



được hổ trợ bởi Microsoft Window



Yêu cầu 16 MB RAM cho Microsoft Window 95 hoặc



</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

Chương II – Biên tập và thực hiện


chương trình



I.

Khởi động và màn hình VB



II.

Cách thiết kế Form




III.

Cách viết mã vào chương trình



</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

I - Khởi động và màn hình VB



1. Khởi động VB 6.0



Start  Programs Microsoft Visual Basic 6.0 



Microsoft Visual Basic 6.0



</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>

1- Click
Stander


exe


</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=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 và màn hình VB



</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>

I - Khởi động và màn hình VB



Thanh Edit: sử dụng trong viết code



Thanh Form Editor: di chuyển, sắp xếp các điều khiển trên

Thanh Form Editor: di chuyển, sắp xếp các điều khiển trên






</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>

I - Khởi động và màn hình VB



Hộp công cụ Toolbox: chứa các điều khiển dùng



</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>

Project Explorer: Quản lý và định hướng đề án



Cửa sổ Properties: xem, sửa đổi giá trị các thuộc tính



của điều khiển



</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>

I - Khởi động và màn hình VB



</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17>

II – Cách thiết kế Biểu mẫu (form)



1.

Mở một 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




</div>
<span class='text_page_counter'>(18)</span><div class='page_container' data-page=18>

II – Cách thiết kế Biểu mẫu (form)



4.

Thêm các điều khiển vào biểu mẫu



Chọn điều khiển trên thanh Toolbox


Kéo vẽ vào Form



Thiết đặt các thuộc tính cần thiết cho điều khiển



</div>
<span class='text_page_counter'>(19)</span><div class='page_container' data-page=19>

III – Thiết kế mã chương trình



View  code



Chọn tên điều khiển



</div>
<span class='text_page_counter'>(20)</span><div class='page_container' data-page=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


</div>
<span class='text_page_counter'>(21)</span><div class='page_container' data-page=21>

IV – Biên dịch



</div>
<span class='text_page_counter'>(22)</span><div class='page_container' data-page=22>

Chương III



Giới thiệu Form và các control




I.

Form, các thuộc tính và sự kiện cơ bản



II.

Control, các thuộc tính và sự kiện cơ bản



Label


Textbox



Commanbutton



Checkbox và Option button


Combo box và Listbox



</div>
<span class='text_page_counter'>(23)</span><div class='page_container' data-page=23>

I – Form, các thuộc tính và sự kiện



Sự kiện:



Load(): Xảy ra khi form được load


Click(): Xảy ra khi form được click



Activate(): Xảy ra khi form được kích hoạt


DblClick(): Xảy ra khi nhắp double lên form



Thuộc tính:



Caption: Tiêu đề form



BorderStyle: Thiết đặt đường viền cho form



</div>
<span class='text_page_counter'>(24)</span><div class='page_container' data-page=24>

I – Form, các thuộc tính và sự kiện




Thuộc tính (tt):



Backcolor: màu nền



</div>
<span class='text_page_counter'>(25)</span><div class='page_container' data-page=25>

II – Control, các thuộc tính và sự kiện



Điều khiển Label



Cho phép người dùng hiển thị ký tự trên biểu mẩu


<b>Nam : tên điều khiển</b>



<b>Caption : hiển thị chuổi ký tự</b>



Font, Fore color, BackStyle, BackColor: font ký tự,



màu ký tự, nhãn trong suôt không ?, màu nền



Điều khiển khung Frame



Giúp bố trí giao diện trong sáng, rõ nét, làm nổi



</div>
<span class='text_page_counter'>(26)</span><div class='page_container' data-page=26>

Điều khiển Textbox



Giúp người dùng nhập thông tin vào, xuất thông tin,…


<b>Maxlength: số ký tự tối đa</b>



<b>Text: dùng để nhận và xuất thơng tin</b>



<b>Locked: cho phép thay đổi/khơng thuộc tính text</b>


<b>PasswordChar: quy định dạng hiển thị của ký tự</b>



<b>Multiline: hiển thị trên một dòng hay nhiều dòng</b>



<b>SelLength, Seltart, SelText: số ký tự chọn, vị trí ký tự </b>



bắt đầu chọn, chuyển ký tự chọn



</div>
<span class='text_page_counter'>(27)</span><div class='page_container' data-page=27>

II – Control, các thuộc tính và sự kiện



Điều khiển Command Button



Nút lệnh



<i>Caption: hiển thị ký tự trên nút lệnh</i>


<i>Default: nhập giá trị từ phím Enter</i>


<i>Cancel: Nhận gía trị từ phím Esc</i>



<i>Enabled: cho phép nút có hiệu lực hay khơng ?</i>


Name: tên nút lệnh



</div>
<span class='text_page_counter'>(28)</span><div class='page_container' data-page=28>

Điều khiển Listbox



Cho phép hiển thị các đề mục để lựa chọn


Name: tên listbox



List: dữ liệu trong 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 cả các đề mục : box.clear


Nhận giá trị đề mục : thuộc tính text



</div>
<span class='text_page_counter'>(29)</span><div class='page_container' data-page=29>

Điều khiển combo box



Được xem là tích hợp giữa text box và listbox


Style: Dạng bombo box



Kiểu

Giá trị

Hằng



Drop-down combo box 0 VbComboDropDown


Simple combo box 1 VbComboSimple



Drop-down list box 2 VbComboDropList



</div>
<span class='text_page_counter'>(30)</span><div class='page_container' data-page=30>

Điều khiển Checkbox



Cho biết một mục 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



</div>
<span class='text_page_counter'>(31)</span><div class='page_container' data-page=31>

Điều khiển Option button



Tương tự như Check box nhưng ở trong một nhóm chỉ



có một mẩu được chọn



<b>Điều khiển Hscrollbar </b>



Có thể dùng làm thiết bị nhập, thiết bị chỉ định cho số



lượng, vận tốc



<b>Large change : xác định khoảng thay đổi khi ấn chuột</b>


<b>Small change : xác định khoảng thay đổi khi ấn chuột ở </b>



cuối thanh cuộn



<b>Value: trả về giá trị của điều khiển trong [min, max]</b>



</div>
<span class='text_page_counter'>(32)</span><div class='page_container' data-page=32>

Private Sub HScroll1_Change()



Text1.FontSize = HScroll1.Value



Text1.Height = Text1.Height + HScroll1.Value


Text1.Width = Text1.Width + HScroll1.Value


End Sub



<b>Điều khiển Vscrollbar </b>




Tương tự Hscrollbar



</div>
<span class='text_page_counter'>(33)</span><div class='page_container' data-page=33>

Chương IV : Hằng, biến, kiểu dữ liệu



I.

Cách khai báo biến, sử dụng biến



II.

Tầm vực và thời gian sống của biến



III.

Cách định nghĩa hằng và sử dụng



</div>
<span class='text_page_counter'>(34)</span><div class='page_container' data-page=34>

I- Biến và cách sử dụng



Là một vùng nhớ được đặt tên, dùng để lưu trữ dữ liệu



trung gian trong quá trình hoạt động



<b>Khai báo biến</b>



 <i>Cú pháp : [ Dim | Private | Static | Public ] VarName As </i>
<i>DataType </i>


 VD: Dim i as integer


<b>Khai báo tường minh</b>



</div>
<span class='text_page_counter'>(35)</span><div class='page_container' data-page=35>

Ví dụ:



 Private iNumVal As Integer



 Private iAvgVal As Integer, dInputval As Double
 Static sCalcAverage As Single


 Dim strInputMsg As String


Lưu ý:



 <i>Để được yêu cầu khai báo tường minh ta check vào mục </i>
<i>Require Variable Declaration trong mục Option</i>


<b>Quy định cách đặt tên biến:</b>



 Tên phải bắt đầu bằng một chữ cái hoặc dấu gạch dưới
 Tên khơng được có dấu câu và các kí tự đặc biệt


</div>
<span class='text_page_counter'>(36)</span><div class='page_container' data-page=36>

 Tên phải duy nhất (không trùng với tên nào) trong phạm vi hoạt
động của nó.


 Tên khơng dài hơn 255 kí tự


 Tên khơng phân biệt chữ hoa và chữ thường
 Ví Dụ:


 <i>Cách đặt tên biến không đúng</i>


1tuan



tien.cua.toi


so luong




 <i>Cách đặt tên biến đúng</i>


icount, number



</div>
<span class='text_page_counter'>(37)</span><div class='page_container' data-page=37>

Lưu ý:



 Bạn nên đặt tên biến kèm theo ý nghĩa của loại biến ở ký tự
đầu của tên biến


 icount ‘biến kiểu integer


</div>
<span class='text_page_counter'>(38)</span><div class='page_container' data-page=38>

II - Tầm vực và thời gian sống của biến



Public: nếu biến được khai báo với từ khoá



public trong module . Pas thì sẽ có tác dụng


trong tồn chương trình



Private: nếu biến được khai báo với private



trong module .pas thì nó chỉ có tác dung


trong module.pas



</div>
<span class='text_page_counter'>(39)</span><div class='page_container' data-page=39>

<b>Biến toàn cục</b>



<i> được khai báo với từ khố public có tác dụng trong </i>



toàn CT



VD : public icount as integer




<b>Biến cấp module</b>



Được khai báo với từ khóa private, dim trong module


Chỉ được truy cập trong module



Vd: dim i as integer



private ngaythang as date



Tuy nhiên, ta có thể khai báo biến kiểu pubic trong



module. Khi đó nó sẽ được truy cập trong module và cả


ngồi module



</div>
<span class='text_page_counter'>(40)</span><div class='page_container' data-page=40>

<b>Biến cục bộ động</b>



Được khai báo trong thủ tục và có thời gian sống trùng



với thời gian sống của thủ tục



VD:



Sub PrintStr()



Dim Str As String ' Str là một biến cục bộ động.


...



End Sub




<b>Biến cục bộ tĩnh</b>



<i>Được khai báo trong thủ tục với từ khoá static và có thời </i>



gian sống như biến module



</div>
<span class='text_page_counter'>(41)</span><div class='page_container' data-page=41>

Mục đích: được sử dụng để ngăn ngừa các thủ



tục khởi tạo lại giá trị, thường được sử dụng


trong các sự kiện click chuột



</div>
<span class='text_page_counter'>(42)</span><div class='page_container' data-page=42>

III - Hằng và cách sử dụng



Hằng chứa giá trị tạm, khơng thay đổi trong



suốt q trình hoạt động



Khai báo:



[<public| private>]const <tên hằng> [As <kiểu dữ



liệu>] = <biểu thức>



VD:



 Const Pi=3.1416


</div>
<span class='text_page_counter'>(43)</span><div class='page_container' data-page=43>

IV – Các kiểu dữ liệu cơ 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 :



</div>
<span class='text_page_counter'>(44)</span><div class='page_container' data-page=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


</div>
<span class='text_page_counter'>(45)</span><div class='page_container' data-page=45>

IV – Các kiểu dữ liệu cơ bản




5.

Kiểu xâu ký tự - String (tt)



Hàm thông dụng



 <i>Len(str) : Lấy chiều dài chuỗi str</i>


 <i>Mid(str, start, [length]): Trích chuỗi con từ chuỗi gốc</i>
 <i>Left(str, [length]): Trích chuỗi con từ bên trái chuỗi str</i>
 <i>Right(str, [length]): ……. phải … str </i>


 InStr([start, ] string1, string2[,compare]): Tìm chuỗi con
trong chuỗi gốc - trả về vị trí tìm thấy


 Start: Vị trí bắt đầu việc tìm kiếm
 String1: Chuỗi để so sánh


</div>
<span class='text_page_counter'>(46)</span><div class='page_container' data-page=46>

IV – Các kiểu dữ liệu cơ bản



Compare:



0 (vbBinaryCompare): So sánh chính xác


1 (vbTextCompare): Tương đối



VD:



Dim SearchString, SearchChar, MyPos


SearchString ="XXpXXpXXPXXP"



SearchChar = "P"




<b>MyPos = Instr(4, SearchString, SearchChar, 1) </b>


<b>MyPos = Instr(1, SearchString, SearchChar, 0) </b>


<b>MyPos = Instr(SearchString, SearchChar) </b>



</div>
<span class='text_page_counter'>(47)</span><div class='page_container' data-page=47>

IV – Các kiểu dữ liệu cơ 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 chỉ 4 byte để trỏ đến đối tượng


Cách dùng:



 Dim Obj as Object


</div>
<span class='text_page_counter'>(48)</span><div class='page_container' data-page=48>

IV – Các kiểu dữ liệu cơ bản



8.

Kiểu Variant (mặc định)



 Kiểu tổng quát, có thể chứa mọi kiểu khác (trừ kiểu


chuỗi có độ dài cố định)


 Hàm kiểm tra kiểu: VarType hoặc TypeName


Hằng giá trị



 vbEmpty 0


 vbNULL 1


 vbInteger 2


 vbLong 3


 vbSingle 4


</div>
<span class='text_page_counter'>(49)</span><div class='page_container' data-page=49>

IV – Các kiểu dữ liệu cơ bản



vbCurrency

6



vbDate

7



vbString

8



vbObject

9



vbError

10



vbBoolean

11



vbVariant

12



vbByte

17



</div>
<span class='text_page_counter'>(50)</span><div class='page_container' data-page=50>

IV – Các kiểu dữ liệu cơ bản




9.

Kiểu mảng



Là dãy các biến có cùng tên, cùng kiểu


Mảng có chiều dài cố định:



 Dim Mang(14) As Integer  0 ..14
 Public Mang(20) As Double  0..20


 Dim Mang ( 10 to 24) As Integer  10 .. 24
 Hàm Unbound: Trả về biên trên


 Hàm Lbound: Trả về biên dưới


</div>
<span class='text_page_counter'>(51)</span><div class='page_container' data-page=51>

IV – Các kiểu dữ liệu cơ 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)


</div>
<span class='text_page_counter'>(52)</span><div class='page_container' data-page=52>

IV – Các kiểu dữ liệu cơ bản



9.

Kiểu mảng (tt)




Một số tính năng khác



Sao chép mảng:



Sub ByteCopy (Old() as Byte, New() as Byte)


New = Old



End sub



Trả về một mảng từ hàm



Public Function Ham(b as Byte) as Byte()


Dim X(2) as Byte



</div>
<span class='text_page_counter'>(53)</span><div class='page_container' data-page=53>

IV – Các kiểu dữ liệu cơ bản



Hàm và 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 dữ liệu>



</div>
<span class='text_page_counter'>(54)</span><div class='page_container' data-page=54>

IV – Các kiểu dữ liệu cơ bản



Hàm và thủ tục (tt)



Có thể sử dụng Exit Sub / Exit Function


<i><b>Truyền giá trị - ByVal</b></i>



Sub Truyentri(

<i><b>Byval</b></i>

Ten as <kiểu dữ liệu>)


<câu lệnh>



End Sub



Truyền tham chiếu



Sub Truyenthamchieu(Ten as <kiểu dữ liệu>)


<câu lệnh>



</div>
<span class='text_page_counter'>(55)</span><div class='page_container' data-page=55>

V - Cấu trúc điều khiển



</div>
<span class='text_page_counter'>(56)</span><div class='page_container' data-page=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



</div>
<span class='text_page_counter'>(57)</span><div class='page_container' data-page=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



</div>
<span class='text_page_counter'>(58)</span><div class='page_container' data-page=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



</div>
<span class='text_page_counter'>(59)</span><div class='page_container' data-page=59>

V - Cấu trúc điều khiển



<b>1.</b>

<b>Cấu trúc chọn (tt)</b>



<b>c.</b> <b>Select Case</b>


Select Case <biểu thức kiểm tra>
Case <danh sách kết quả 1>


<khối lệnh 1>


Case <danh sách kết quả 1>
<khối lệnh 1>


….


Case Else


</div>
<span class='text_page_counter'>(60)</span><div class='page_container' data-page=60>

V - Cấu trúc điều khiển



<b>1.</b>

<b>Cấu trúc chọn (tt)</b>



<b>c.</b> <b>Select Case (tt)</b>


Ví dụ:


Dim Number
Number = 8



<b>Select Case Number </b>
<b>Case 1 To 5</b>


Debug.Print "Between 1 and 5"


<b>Case 6, 7, 8 </b>


Debug.Print "Between 6 and 8"


<b>Case 9 To 10</b>


Debug.Print "Greater than 8"


<b>Case Else </b>


Debug.Print "Not between 1 and 10"


</div>
<span class='text_page_counter'>(61)</span><div class='page_container' data-page=61>

V - Cấu trúc điều khiển



<b>1.</b>

<b>Cấu trúc chọn (tt)</b>



<b>c.</b>

<b>Select Case (tt)</b>



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à



</div>
<span class='text_page_counter'>(62)</span><div class='page_container' data-page=62>

V - Cấu trúc điều khiển



<b>2.</b>

<b>Cấu trúc lặp</b>




<b>a.</b>

<b>Do … Loop : Lặp không xác định</b>


<b>Kiểu 1: Thực hiện trong điều kiện đúng</b>



Do While <điều kiện>


<khối lệnh>



Loop



<b>Kiểu 2: Thực hiện trong điều kiện đúng</b>



Do



<khối lệnh>



</div>
<span class='text_page_counter'>(63)</span><div class='page_container' data-page=63>

V - Cấu trúc điều khiển



<b>2.</b>

<b>Cấu trúc lặp (tt)</b>



<b>a.</b>

<b>Do … Loop : (tt)</b>



<b>Kiểu 3: Thực hiện trong điều kiện sai</b>



Do Until <điều kiện>


<khối lệnh>



Loop



<b>Kiểu 4: Thực hiện trong điều kiện sai</b>




Do



<khối lệnh>



</div>
<span class='text_page_counter'>(64)</span><div class='page_container' data-page=64>

V - Cấu trúc điều khiển



<b>2.</b>

<b>Cấu trúc lặp (tt)</b>



<b>b.</b> <b>For … Next : Lặp với số lần xác định</b>


<b>For <biến đếm> =<điểm đầu> To <điểm cuối> [Step </b>


<bước nhảy>]
<khối lệnh>


<b>Next</b>


Ví dụ:


For I = 1 To 10


For J = 1 To 10


For K = 1 To 10
. . .


Next
Next


</div>
<span class='text_page_counter'>(65)</span><div class='page_container' data-page=65>

V - Cấu trúc điều khiển




<b>2.</b>

<b>Cấu trúc lặp (tt)</b>



<b>c.</b>

<b>For Each … Next : Lặp với số số phần tử </b>


<b>của tập các đối tượng/ mảng</b>



<b>For Each <phần tử> In <nhóm></b>



<khối lệnh>


Next



</div>
<span class='text_page_counter'>(66)</span><div class='page_container' data-page=66>

V - Cấu trúc điều khiển



<b>2.</b>

<b>Cấu trúc lặp (tt)</b>



<b>c.</b> <b>For Each … Next : (tt)</b>
<b>Ví dụ:</b>


Dim mang(10) As Integer
Dim i


mang(0) = 1
mang(1) = 2
mang(2) = 3
mang(3) = 4
mang(4) = 5


For Each i In mang
MsgBox i



</div>
<span class='text_page_counter'>(67)</span><div class='page_container' data-page=67>

V - Cấu trúc điều khiển



<b>2.</b>

<b>Cấu trúc lặp (tt)</b>



<b>d.</b>

<b>While …Wend: Lặp không xác định, không </b>


<b>sử dụng lệnh Exit </b>



<b>While <đk></b>



<câu lệnh>



</div>
<span class='text_page_counter'>(68)</span><div class='page_container' data-page=68>

V - Cấu trúc điều khiển



<b>3.</b>

<b>Câu lệnh thoát – Exit</b>



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



</div>
<span class='text_page_counter'>(69)</span><div class='page_container' data-page=69>

V - Cấu trúc điều khiển



<b>3.</b> <b>Câu lệnh thốt – Exit (ví dụ)</b>


Sub RandomLoop
Dim I, MyNum Do
For I = 1 To 1000



MyNum = Int(Rnd * 100)
Select Case MyNum


Case 17: MsgBox "Case 17"
<b>Exit For </b>


Case 29: MsgBox "Case 29"
<b>Exit Do</b>


Case 54: MsgBox "Case 54"
<b>Exit Sub </b>


End Select
Next Loop


</div>
<span class='text_page_counter'>(70)</span><div class='page_container' data-page=70>

V - Cấu trúc điều khiển



<b>4.</b>

<b>Câu lệnh Go to: Bãy lỗi</b>


<i><b>On Error Goto Loi</b></i>



</div>
<span class='text_page_counter'>(71)</span><div class='page_container' data-page=71>

VI- Tạo đối tượng trong VB



Khai báo biến đối tượng



</div>
<span class='text_page_counter'>(72)</span><div class='page_container' data-page=72>

VI- Tạo đối tượng trong 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


</div>
<span class='text_page_counter'>(73)</span><div class='page_container' data-page=73>

VI- Tạo đối tượng trong 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


</div>
<span class='text_page_counter'>(74)</span><div class='page_container' data-page=74>

VI- Tạo đối tượng trong 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ụ:



</div>
<span class='text_page_counter'>(75)</span><div class='page_container' data-page=75>

VI- Tạo đối tượng trong VB



2.

Từ khoá thường dùng



Từ khố Nothing



 Giải phóng vùng nhớ đã dùng cho đối tượng
 Ví dụ


Dim Afont as Font
……….


</div>
<span class='text_page_counter'>(76)</span><div class='page_container' data-page=76>

VI- Tạo đối tượng trong VB



2.

Từ khoá thường dùng



Từ khoá New



 Tạo đối tượng mới từ đối tượng gốc (là lớp)


</div>
<span class='text_page_counter'>(77)</span><div class='page_container' data-page=77>

VI- Tạo đối tượng trong 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 các đối tương thuộc nhiều
kiển khác nhau



</div>
<span class='text_page_counter'>(78)</span><div class='page_container' data-page=78>

VII- Menu và cách tạo Menu



Giới thiệu



</div>
<span class='text_page_counter'>(79)</span><div class='page_container' data-page=79>

VII- Menu và cách tạo Menu



1.

Giới thiệu



Có 2 loại menu cơ bản



</div>
<span class='text_page_counter'>(80)</span><div class='page_container' data-page=80>

VII- Menu và cách tạo Menu



2.

Cách tạo menu



a.

Tạo menu dạng thả xuống



</div>
<span class='text_page_counter'>(81)</span><div class='page_container' data-page=81>

VII- Menu và 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 cơ bản


 <b>Caption : là chuỗi hiển thị trên menu</b>
 <b>Name : tên của thành phần</b>


 <b>Shortcut: tạo phím tắt cho thành phần</b>



 <b>WindowList: Hiển thị tiêu đề của form con trong form </b>


mẹ (MDI)


 Checked: Thuộc tính dạng check


</div>
<span class='text_page_counter'>(82)</span><div class='page_container' data-page=82>

VII- Menu và 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 cơ bản


 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


</div>
<span class='text_page_counter'>(83)</span><div class='page_container' data-page=83>

VII- Menu và cách tạo Menu



2.

Cách tạo menu



a. Tạo menu dạng bật ra


 Tạo trược menu theo dạng thả xuống
 Tắt thuộc tính Visible của menu vừa tạo
 Thiết đặt sự 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


</div>
<span class='text_page_counter'>(84)</span><div class='page_container' data-page=84>

VII- Menu và 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ị:


</div>
<span class='text_page_counter'>(85)</span><div class='page_container' data-page=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)



</div>
<span class='text_page_counter'>(86)</span><div class='page_container' data-page=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




<i><b>MsgBox(prompt[, buttons] [, title] [, helpfile, </b></i>



<i><b>context]) </b></i>



Ví dụ:



</div>
<span class='text_page_counter'>(87)</span><div class='page_container' data-page=87>

Hằng số Giá trị Diễn giải


vbOkOnly 0 Chỉ hiển thị nút OK


vbOKCancel 1 Hiển thị 2 nút Ok và Cancel


vbAbortRetryIgnore 2 Hiển thị nút Abort, Retry, Ignore
vbYesNoCancel 3 Hiển thị các nút Yes, No, Cancel


vbYesNo 4 Hiên thị 2 nút Yes và No


</div>
<span class='text_page_counter'>(88)</span><div class='page_container' data-page=88>

<b>Hằng số</b> <b>Diễn giải</b>


vbCritical Dùng cho những thông báo lỗi thất bại khi thi
hành cơng việc nào đó


vbQuestion Dùng cho những câu hỏi yêu cầu người dùng
lựa chọn


vbExclamation Dùng cho các thơng báo của chương trình


</div>
<span class='text_page_counter'>(89)</span><div class='page_container' data-page=89>

Hằng số Giá trị Nút


vbOk 1 OK



vkCancel 2 Cancel


vbAbort 3 Abort


vbRetry 4 Retry


vbIgnore 5 Ignore


vbYes 6 Yes


</div>
<span class='text_page_counter'>(90)</span><div class='page_container' data-page=90>

VIII- Hộp thoại dùng chung



2.

Hộp nhập – Input Box



Dùng nhận thông tin



<i><b>InputBox(prompt[, title] [, default] [, xpos] [, </b></i>



<i><b>ypos] [, helpfile, context])</b></i>



<b>VD:</b>



Public Sub main()


Dim ReturnString As String


</div>
<span class='text_page_counter'>(91)</span><div class='page_container' data-page=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



</div>
<span class='text_page_counter'>(92)</span><div class='page_container' data-page=92>

Hộp thoại mở và lưu tập tin



 Chức năng: Mở và 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 = 1
CommonDialog1.ShowOpen
Exit Sub


ErrHander: Exit Sub


CommonDialog1.ShowOpen


End Sub



</div>
<span class='text_page_counter'>(93)</span><div class='page_container' data-page=93>

Hộp thoại mở và 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) được chọn mặc định


</div>
<span class='text_page_counter'>(94)</span><div class='page_container' data-page=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



</div>
<span class='text_page_counter'>(95)</span><div class='page_container' data-page=95>

Hộp thoại Font



 Chức năng


 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


</div>
<span class='text_page_counter'>(96)</span><div class='page_container' data-page=96>

Thuộc tính Giải thích


Color Lưu giữ giá trị màu được chọn


FontBold True nếu người dùng chọn chế độ đậm
(Bold) và False nếu ngựơc lại


FontItalic True nếu in nghiên và False là ngựơc lại


FontStrikeThru True nếu chọn chế độ gạch ngang các ký tự
FontUnderLine True nếu chọn chế độ gạch dưới


FontName Tuỳ ý


Max Kích cỡ lớn nhất của Font được hiển thị
Min Kích cỡ nhỏ nhất của Font được hiển thị
FontSize Kích cỡ của Font được chọn



</div>
<span class='text_page_counter'>(97)</span><div class='page_container' data-page=97>

<b>Hằng</b> <b>Giá trị</b> <b>Hiệu quả</b>


CdlCFPrinterFonts &H2 Chỉ hiển thị font máy in
CdlCFScreenFonts &H1 Chỉ hiển thị font màn hình


CdlCFBoth &H3 Chỉ hiển thị font màn hình và
font máy in


CdlCFScalableOnly &H20000 Hiển thị font tỷ lệ như font
TrueType


</div>
<span class='text_page_counter'>(98)</span><div class='page_container' data-page=98>

Hộp thoại Print



Chức năng



Thực hiện việc in ấn


ShowPrint



Một số thuộc tính thơng dụng: Copies,



FromPage, ToPage



Ví dụ



</div>
<span class='text_page_counter'>(99)</span><div class='page_container' data-page=99>

<b>Thuộc tính</b>

<b>Giải thích</b>



Copies Số bản in


FromPage Số thứ tự của trang bắt đầu


Max Số bản in tối đa cho phép
Min Số bản in tối thiểu cho phép


PrinterDefault Nếu = True thì mọi thay đổi thì được gán
lại thành thay đổi hệ thống và có ảnh
hưởng đến các ứng dụng khác


ToPage Số thứ tự của trang in cuối cùng


</div>
<span class='text_page_counter'>(100)</span><div class='page_container' data-page=100>

X. Xử lý chuột và bàn phím



<b>1. Sự kiện chuột</b>



Biểu mẫu hoặc điều khiển có thể bắt đầu sự kiện



chuột khi có con trỏ chuột đi ngang qua.



Có 3 sự kiện chuột chủ yếu , đó là:



MouseDown: Xảy ra khi người sử dụng ấn chuột


MouseUp : Xảy ra khi người sử dụng thả



một nút chuột bất kỳ



</div>
<span class='text_page_counter'>(101)</span><div class='page_container' data-page=101>

<i>Các tham số :</i>



Button: cho biết nút chuột



Shift:

Cho biết Shift , Ctrl hay Alt được ấn


X, Y :

cho biết toạ độ con trỏ chuột




<b>Sử dụng sự kiện MouseDown</b>



 <b>Ví dụ mơ ta sự kiện ấn chuột</b>


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


</div>
<span class='text_page_counter'>(102)</span><div class='page_container' data-page=102>

<b>Sự kiện MouseUp: </b>



 <b>Ví dụ mơ ta sự kiện thả chuột</b>


Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X
As Single, Y As Single)


If Button = 1 Then Print "Ban vua tha chuot trai“
If Button = 2 Then Print "Ban vua tha chuot phai“
If Button = 4 Then Print "Ban vua tha chuot giua“
End Sub


</div>
<span class='text_page_counter'>(103)</span><div class='page_container' data-page=103>

 <b>Sử dụng sự kiện MouseMove</b>


 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


 <b>Hiệu chỉnh con trỏ chuột</b>


 Ta có thể dùng thuộc tính MousePointer để hiển thị một biểu tượng,


con trỏ màn hình hay con trỏ chuột đã được hiệu chỉnh. Dưới đây là
một số giá trị của thuộc tính MousePointer


 CcDefault
 CcArrow
 CcCross
 ……..


</div>
<span class='text_page_counter'>(104)</span><div class='page_container' data-page=104>

<b>2. Sự kiện bàn phím </b>



Bàn phím cũng có 3 sự kiện:



 KeyPress: khi một phím có mã ASCII bất kỳ được ấn
 KeyDown: khi một phím bất kỳ được ấn


 KeyUp: khi một phím bất kỳ được thả


Chỉ có những điều khiển đang có Focus mới bắt đầu sự



kiện bàn phím.



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.



</div>
<span class='text_page_counter'>(105)</span><div class='page_container' data-page=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


<b>Shift</b> <b>Ý nghĩa</b>


1 Phím Shift


2 Phím Ctrl


4 Phím Alt


<b>KeyCode = 13</b>  <b>Phím Enter</b>


<b>KeyCode = 27</b>  <b>Phím Asc</b>


</div>
<span class='text_page_counter'>(106)</span><div class='page_container' data-page=106>

LẬP TRÌNH CƠ SỞ DỮ LIỆU




LẬP TRÌNH VỚI ADO



</div>
<span class='text_page_counter'>(107)</span><div class='page_container' data-page=107>

ADO (ActiveX Data Object)



ADO là gì?



Mơ hình ADO



Tham chiếu ADO trong VB



</div>
<span class='text_page_counter'>(108)</span><div class='page_container' data-page=108>

Tổng quan về phương thức truy cập


dữ liệu


<b>Client Application</b>
<b>ADO</b>
<b>OLE DB</b>
<b>ODBC</b>
Relational Data
SQL Server
Jet
Oracle


Non – Relational
Data
Email


Text


</div>
<span class='text_page_counter'>(109)</span><div class='page_container' data-page=109>

<b>1. ADO là gì ?</b>



ADO là giao diện lập trình truy xuất cơ sở dữ liệu




được phát triễn bởi Microsoft, ADO nằm bên trên


OLE DB, sử dụng những phương thức do OLE DB


cung cấp để truy xuất dữ liệu.



OLE DB là một giao diện lập trình cơ sở dữ liệu ở



mức hệ thống.



 Một số phiên bả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


 …….


</div>
<span class='text_page_counter'>(110)</span><div class='page_container' data-page=110>

Mơ hình
đối
tượng


ADO


</div>
<span class='text_page_counter'>(111)</span><div class='page_container' data-page=111>

<b>Đối tượng của ADO</b>



 Connection, command, Recordset: là 3 đối tượng chủ yếu


của mô hình đối tượng này



 <b>Connection: Dùng kết nối cơ sở dữ liệu, làm nhiệm vụ kiểm </b>


soát giao dịch.


 Connection có thể gắn liền với đối tượng Recordset hoặc


Command


 <b>Command : Thực hiện lệnh. </b>


 <b>Các hành động: Update, Insert, Delete và các câu lệnh truy </b>


<b>vấn</b>


 <b>Recordset: Chứa một tập hợp kết quả được trả về từ dữ liệu </b>


nguồn


 <b>Errors: Chứa thông tin liên quan đến lỗi gây bởi một trong </b>


những đối tượng trên mơ hình ADO


</div>
<span class='text_page_counter'>(112)</span><div class='page_container' data-page=112>

<b>Tham chiếu ADO vào Visual Basic</b>



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 )



</div>
<span class='text_page_counter'>(113)</span><div class='page_container' data-page=113>

Đối tượng Connection



Thuộc tính:



 CommandTimeout: Thời gian chờ để nhận kết quả thực thi


câu lệnh Execute


 ConnectionString: Chỉ định chuỗi kết nối CSDL


 Các thông số của ConnectionString:


 Provider: SQLOLEDB  dùng cho SQL Server
 Data Source: Tên của Server


 Initial Catalog: Tên của CSDL


 UserID, Password: Tài khoản và mật khẩu đă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 quả kết nối.


Mặc định là 15 giây



 Cursorlocation: Cho biết đối tượng Recordset được tạo phía


</div>
<span class='text_page_counter'>(114)</span><div class='page_container' data-page=114>

Đối tượng Connection



 DefaultDatabase: Tên CSDL SQL server cần kết nối
 Provider: Chỉ định Data provider nào được sử dụng
 State: Trả về trạng thái nối kết


Phương thức:



 BeginTrans: Khởi tạo một giao dịch


 Cancel: Ngừng thực thi câu lệnh Open hoặc Execute
 Close: Đóng đối tượng Connection và ngắt nối kết


 CommitTrans: Lưu lại tất cả những thay đổi được thực


hiện trong quá trình thực hiện giao dịch


 Execute: thực thi một 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


</div>
<span class='text_page_counter'>(115)</span><div class='page_container' data-page=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


</div>
<span class='text_page_counter'>(116)</span><div class='page_container' data-page=116>

Đối tượng Recordset



Phương thức:



 Addnew: Thêm vào Recordset một mẫu tin mới
 Cancel: Hủy bỏ thực thi phương thức Open


 CancelBatch: Hủy bỏ những cập nhật sắp xảy ra trong một


Recordset



 Clone: Tạo một bản sao của Recordset


 Close: Đóng Recordset và đóng kết nối với CSDL
 Delete: Xóa mẫu tin hiện tại


 GetRows: Nhận về nhiều mẫu tin đưa vào một mảng


 GetString: Chuyển dữ liệu trong một Recordset thành chuỗi
 Move: Di chuyển con tro dòng đi bao nhiêu mẫu tin


</div>
<span class='text_page_counter'>(117)</span><div class='page_container' data-page=117>

Đối tượng Recordset



 MoveNext: Di chuyển con trỏ dòng sang mẫu tin tiếp theo
 MovePrevious: Di chuyển con trỏ dòng về mẫu tin trước đó
 NextRecordset: Trả về Recordset kết tiếp


 Open: Mở một Recordset dựa trên ActiveConncection và


Source


 Requery: Thực thi lại câu Query để là tươi
 Resync: Làm tươi lại dữ liệu trong Recordset
 Update: Lưu lại các thay đổi trên Recordset


 UpdateBatch: Lưu lại những thay đổi trong một con trỏ


</div>
<span class='text_page_counter'>(118)</span><div class='page_container' data-page=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 > 0


If (Not adoRS.BOF) And (Not adoRS.EOF) Then
Debug.Print adoRS.Fields("FirstName")


Debug.Print adoRS.Fields("LastName")
End If


</div>
<span class='text_page_counter'>(119)</span><div class='page_container' data-page=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 trong 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 hiện



 CommandTimeout: Số giây mà đối tượng Command chờ


kết quả trả về


 CommandType: Loai câu lệnh Command
 Name: Tên đối tượng Command


 State: Trạng thái của đối tượng Command  Đóng, mở,


</div>
<span class='text_page_counter'>(120)</span><div class='page_container' data-page=120>

Trình bày dữ liệu trên DataGrid



Project  Components  Microsoft DataGrid Control



6.0



Project  Components  Microsoft ADO Data Control



6.0



<b>ADO</b>
<b>(ADODC1)</b>
<b>DataGrid</b>


</div>
<span class='text_page_counter'>(121)</span><div class='page_container' data-page=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



</div>
<span class='text_page_counter'>(122)</span><div class='page_container' data-page=122></div>
<span class='text_page_counter'>(123)</span><div class='page_container' data-page=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


</div>
<span class='text_page_counter'>(124)</span><div class='page_container' data-page=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


</div>
<span class='text_page_counter'>(125)</span><div class='page_container' data-page=125>

Tom tắt kết nối ADO



Có thể sử dụng cách lệnh sau để kết nối và



thực thi với cơ sở dữ 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



</div>
<span class='text_page_counter'>(126)</span><div class='page_container' data-page=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 dữ liệu vào bảng


 Rst.AddNew


</div>
<span class='text_page_counter'>(127)</span><div class='page_container' data-page=127>

Lấy dữ liệu




 Biến=Rst(“Tên cột”)


 Biến =Rst(“số thứ tự côt”)


Di chuyển trên bảng



 Rst.MoveFirst
 Rst.MoveLast
 Rst.MoveNext


 Rst.MovePrevious


Kiểm tra



 Rst.EOF, Rst.BOF


</div>
<span class='text_page_counter'>(128)</span><div class='page_container' data-page=128>

Crystal Report



Chức năng:



Cho phép in mẫu báo cáo ra màn hình, máy in,



excel, word…



</div>
<span class='text_page_counter'>(129)</span><div class='page_container' data-page=129>

Crystal Report



</div>
<span class='text_page_counter'>(130)</span><div class='page_container' data-page=130>

Crystal Report



Nguồn dữ



liệu <sub>Microsoft </sub>


SQL
Server


Thông tin
đăng nhập
Microsoft SQL


</div>
<span class='text_page_counter'>(131)</span><div class='page_container' data-page=131></div>
<span class='text_page_counter'>(132)</span><div class='page_container' data-page=132></div>
<span class='text_page_counter'>(133)</span><div class='page_container' data-page=133></div>
<span class='text_page_counter'>(134)</span><div class='page_container' data-page=134>

Crystal Report



Sau khi 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



</div>
<span class='text_page_counter'>(135)</span><div class='page_container' data-page=135></div>
<span class='text_page_counter'>(136)</span><div class='page_container' data-page=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


</div>
<span class='text_page_counter'>(137)</span><div class='page_container' data-page=137>

<b>Xây dựng, đăng ký và sử dụng tập tin DLL</b>


DLL – Dynamic Link Library là thự viện liên kết


động chứa các phương thức và thuộc tính có thể


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ỉ được phép tạo đối tượng trong dự án chứa đối


tượng


 PublicNotCreatable: Cho phép các ứng dụng khác sử dụng



đối tượng, nhưng không cho phép các ứ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 một phần


</div>
<span class='text_page_counter'>(138)</span><div class='page_container' data-page=138>

Tên lớp
Tên Project


</div>
<span class='text_page_counter'>(139)</span><div class='page_container' data-page=139>

<b>Xây dựng, đăng ký và sử dụng tập tin DLL</b>



Khai báo các phương thức và 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


 <i>File  Make <Tên file>.DLL  Lưu vào thư mục </i>
System32


Đăng ký tập tin DLL



</div>
<span class='text_page_counter'>(140)</span><div class='page_container' data-page=140>

<b>Xây dựng, đăng ký và sử dụng tập tin DLL</b>



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 và sử dụng



Private Sub Command1_Click()
Dim s


Set s = CreateObject("BG.TEST")
MsgBox s.Giaithua(6)


</div>

<!--links-->

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×