1.Visual Basic 6.0 概說

Microsoft 於1991年推出的進入Windows世界的圖形化程式設計介面

整合式的視窗程式設計工作環境。目前的最新更新為SP6

Microsoft 於2010年推出Visual Basic 2010版,也順勢推出.NET Framework 4 .net程式框架圖

連接外站:維基百科臺灣微軟Visual  Studio

2.資料型態

使用字元集(Character Set)

保留字

運算式

運算式=運算元+運算子+運算元

運算碼(運算子)Operator(依運算優先順序,依序分為算術運算子、關係運算子與邏輯運算子等三種)

( ) ^ - *  / \ mod + - 關係 邏輯
刮號 指數 負號 乘除 整數除 餘數除 加減

大於>、等於=、小於<、不等於< >、<=、>=


like (字串比較)is(物件比較)、[註]符號

not,and,or,xor等

運算元Operand:待運算的資料(常數、變數、函式)

[註]例:x=x+1,x稱為運算元,+稱為運算子。在VB中運算式的左邊只有一個運算元

[註]進行整數除或餘數除等運算,必須左右的運算元都是整數方可運算,若非整數則必須以四捨六入的方式將運算元進位或捨棄為整數。

[註]字串比較子like,可以利用特殊字元進行比較

常用特殊符號

符號 範例 用途
x=x+2 表示「指定」。將符號右邊運算式的運算結果指定給符號左邊的變數
,與;

print x,y

print "x+y=";x+y

於同一行顯示

各顯示資料間不留空白(連續顯示)

? x+y 同print指令
z=y:y=x:x=z 合併多行敘述
_

x+=2 _

+5

敘述分行。若將一行程式碼敘述分行,則在要分行的位置輸入一個半形空白,再輸入_(底線符號)

z=y:y=x:x=z

'變數x與y的內容交換

註解程式
+,&

"Mary is "+"10 years old"

"Today is "& #2011/01/01#

字串型別串接(+)例:"123456"="123"+"456"

各種資料型別串接(&)"今天是"& date()

資料種類

資料型別

資料型別定義字元與所佔記憶體空間

資料型別 英文名稱 型別字元 儲存記憶體空間
整數 Integer

%

2 byte
長整數

Long

&
4 byte
單精度浮點數 Single ! 4 byte
倍精度浮點數 Double # 8 byte
字串 String $ 固定長度DIM A as String *10
可變長度+10 byte DIM A as String
"這是字串範例",Unicode
日期 Date   8 byte
#2011/01/01 12:00:00 AM#
布林 Boolean   True,False
字元 Char   2 byte
貨幣 Currency @ 8 byte

不定型別

可變(自由)型別

Variant  

字串字串長+22 byte

數值16 byte

物件 Object    
結構 Type   使用者自訂

注意VB對於不同資料型別的運算與進位的特殊運算方式

變數的命名規則(識別項):

變數類別 VB6 VB 2005/2008
變數名稱的字數 不得超過255字元 1024字元
變數名稱的第一個字元 必須是英文字或是中文字,其餘部分可以是英文字母、中文字、數字、或底線(_),其餘符號不能使用 可以以中文、英文、底線字元開頭,但不能以數字開頭
保留字 不可以單獨作為變數名稱 同左

建議變數命名方式:

學習Visual Basic的三大重點:

VB6 IDE操作介面包含有:

3.輸入與輸出

輸出部分

msgbox參數列表

標籤物件label

執行按鈕Command button

 

輸入部分

控制項輸入

文字方塊TEXTBox

選擇鈕optionbutton

框架Frame

核取方塊CheckBox

清單方塊ListBox

綜合清單方塊ComboBox

4.物件導向寫法

設定物件屬性

應用於程式執行階段

控制項.屬性=值。例如:Label1.caption="Visual Basic 6",form1.font.size=6

Font屬性:label1.font.size=12,label1.font.name="新細明體",Label1.font.bold=true

Picture屬性:set form1.picture=loadpicture("c:\pics\image1.jpg"),set form1.picture=image1.picture

VB 2005屬性視窗VB 6 屬性視窗

5.物件(Object)、事件(Event)、事件驅動(Event Driven)

控制項與物件

Visual Basic 2005 Express 的控制項事件視窗

Visual Basic 6 的控制項事件視窗

常見事件

事件驅動命名規則:物件_事件,comand1_click

Private Sub Form_load( )/初值設定內容/End Sub  程式的初值設定

Form_Click( )  表單按一下執行事件

Form_DblClick( )  表單快按二下執行事件

Form_KeyPress  有按鍵盤時執行事件

Form_MouseDown(Button As Integer……)  按滑鼠按鍵時執行事件

Form_MouseUp(Button As Integer……)  放鬆滑鼠按鍵時執行事件

事件驅動

便是當物件感知某特定事件發生後,所要採行的回應動作,使用者所撰寫的程式碼

6.語法

GoTo [Label]

sub comamnd1_click()
	L10:A=100
	    B=A*3
	Goto L10
end sub

IF ... Then GoTo [label]

sub comamnd1_click()
    I=1
L10:Print I
    I=I+1
    If I<=5 Then GoTo L10
end sub

If-(條件式) Then (敘述)

當條件式符合成立時,便執行then後的敘述。程式範例如下所示

If I < 10 Then Print I:I=I+1:Goto L10
If I < 10 Then
   I=I+1
   Print I
End If	
If I < 10 Then
	I=I+1
else
	Print I
End If
If I < 10 Then
	If I mod 2 =0 Then
		even=even+1
	End If	
Else
	If I mod 3 = 0 Then
		Triple=Triple+1
	End If	
End If
If I mod 2 =0 Then
	even=even+1
Elseif I mod 3 =0 then
	triple=triple+1
Elseif I mod 7 =0 then
	sevens=sevens+1
Else
	notanything=notanthing+1
End If

Select ... Case

select case value
    case 100
	  print "very good!"
	case 90
	  print "Not bad!"
	case 80
	  print "Normal"
	case else
	  print "You need work hard"
end select	  
L10:ages=val(inputbox("請輸入年齡"))
select case ages
    case 0 to 20
	  print "青少年"
	case 21 to 30
	  print "青年"
	case 30 to 50
	  print "中年"
	case else
	  print "請輸入適當年齡"
	  goto L10
end select	  

For...Next

for i=1 to 10
	sum=sum+i
next
for i=5 to 100 step 5
	sum=sum+i
next

For...Each

 

While ... Wend

n=1
while a^n < 1024
    n=n+1
wend
print n

Do (while/until)... Loop 或Do... Loop (while/until)

a=124:b=256
do
  if a>b then
    remind=a mod b
    a=remind
  else
  	remind = b mod a
	b=remind
  end if
loop until (a=0 or b=0)
if a=0 then print b else print a
a=124:b=256
do
  if a>b then
    remind=a mod b
    a=remind
  else
  	remind = b mod a
	b=remind
  end if
loop while (a<>0 and b<>0)
if a=0 then print b else print a

Exit Do

dim sum,i as integer
do
  sum=sum+i
  i=i+1
  if i= 10 then exit do
loop

陣列Array

'第一種宣告方法
dim x(2) as integer
for i=0 to 2
	x(i)=2*i^2+i+1
next
'第二種宣告方法
dim x(-2 to 10) as integer
for i=-2 to 10
	x(i)=i^2+1
next
'取出陣列註標
dim x(-2 to 10) as integer
print lbound(x) '取出lower bound
print ubound(x)  '取出upper bound
'可變陣列註標
dim a(5) '陣列a屬於固定個數的陣列
dim b()  '一開始宣告陣列b的個數為0,日後可以改變該陣列的元素個數
redim c(10)  '陣列c屬於可變個數的陣列
redim preserve c(7) '陣列宣告改變後,其中c(0)至c(7)的元素被保留
'二維陣列
dim a(5,4) '陣列a屬於30個元素的陣列
dim b(4,2,5)  '陣列b屬於多維陣列
x=array("普通科","綜合高中","資料處理科","商業經營科")
'array()函數
x=array("普通科","綜合高中","資料處理科","商業經營科") 'x屬於variant變數
for i=lbound(x) to ubound(x)
  print x(i)
next

7.副程式與函數

副程式與函數則是用來封裝敘述區塊的程式單元,被封裝在副程式及函數內的敘述區塊,並不屬於任何敘述,是個別獨立的。但是這些獨立的程式單元卻可以讓其他程式單元使用。所以經常重複利用到的程式單元,便可以寫成副程式或函數。以便節省系統開發的時間,以及系統除錯所需的時間。使系統具有模組化特性。在VB中副程式可以分為SUB副程式,Function副程式,Properity副程式,Event副程式

副程式

在程式中呼叫副程式的方式

副程式與參數傳遞

將待處理的資料,依據一定的規則傳送至副程式進行進一步的處理,便稱為參數傳遞。基本的表示法例如:

SUB 副程式名(參數,參數,...)
    處理敘述
 END SUB

若以程式敘述表示,則如下所示:

SUB ADDSEQ(X,Y,Z)
   SUM= X+Y+Z
  PRINT SUM
END SUB

CALL ADDSEQ(1,2,3)

實際參數與形式參數

參數的傳遞,在呼叫程式稱為實際參數,而在被呼叫的副程式稱為形式參數。 以上者為例:1,2,3稱為實際參數,而x,y,z稱為形式參數

實際參數可以為值或是變數。其呼叫後處理的方式有所差異。若是以值呼叫,則該值會傳遞給副程式進行處理(傳值呼叫);而若是以變數呼叫,則該變數會替代副程式中的形式參數(傳址呼叫)。例如:

call addseq(1,2,3)

a=2:b=3:c=4
call addseq(a,b,c)

傳址改傳值:call addvalue(x:=(A),y:=(B),z:=(C))  ,在實際參數列,將變數加上括號

傳址改傳值:addval(ByVal x),在副程式中定義,在形式參數前加上ByVal關鍵字

吾人可以總結:

內建函數

常用函數說明

函數

說明

函數

說明

Asc(字串)

ASCII

Len(字串)

傳回字串長度

Left(字串,n)

傳回左邊n個字元

Right(字串,n)

傳回右邊n個字元

Mid(字串,m,n)

傳回第m開始n個字元

Trim(字串)

除去字串左右空白

Ltrim(字串)

除去字串左邊空白

Rtrim(字串)

除去字串右邊空白

Date

求系統的現在日期

Time

求系統的現在時間

Now

求系統的現在日期及時間

Abs(數值)

傳回數值的絕對值

Int(數值)

<=數值的最大整數值

Fix(數值)

無條件去除小數

Rnd

取亂數值(0<=Rnd<1)

 

 

自訂函數

function f(x)
   f=x^2+2x=1
end function

遞迴

函數連續呼叫本身

Function FION(X)
If X = 1 Then
   FION = 1
Else
  FION = X ^ 2 + FION(X - 1)
End If
End

Function Private Sub Form_Activate()
  Print FION(5)
End Sub

 

7.資料庫存取

 

8.ADO.NET