Vb常用语句
- 格式:doc
- 大小:41.50 KB
- 文档页数:3
True的结果为-1,False的结果为0Clipboard.SetText Text1.SelText (复制你所选中的文字)Text1.SelText = Clipboard.GetText (粘贴你所选中的文字)Text1.Font = "隶书" (设置字体类型)Text1.FontSize = 20 (设置字体大小)Text1.FontBold = True (设置字体粗细)Text1.FontItalic= True (设置斜体)Text1.ForeColor = &HFF& (设置字体颜色)Command1.Width (设置控件宽度)Command1.Height (设置控件高度)Text文本框:Text1.Locked=False (文本框可用)Text1.Locked=Ture (文本框不可用)MultiLine (设置自动换行)MaxLength (设置字体数量)CommandX:Enabled 选择(Turs)(控件有用)选择(false)(控件无用)Visible 选择(Turs)(文本框可见)选择(False)(文本框不可见)Check1:Value 选择(0)(默认不选中)选择(1)(默认选中)选择(2)(默认不可用)显示文本的时候(&" "&) (表示显示中间的文字)List:List1.ListCount (显示列表框中有几项)List1.ListIndex=?(选择List中的第?项)Style 选择(0)(不可选择)默认选择(1)(类似于复选框,可选择)Form2.Show (显示Form2窗口)Form2.Hide (隐藏Form2窗口)Combo:Combo1.Text (选中Combo1中的文字)Style (0或1)(选择样式不同)Index (控件组的选择)Combo1.Listindex=0 (选中第一项)RecordSource (选择数据源)Enabled true (表示窗体或控件可用)False (表示窗体或控件不可用)Picture (为窗体指定一副背景图片)Backcolor (设置窗体或控件的背景颜色)Click (表示单击事件)DblClick (表示双击事件)" _" (空格加下划线表示续行)&O (加前缀表示8进制)&H (加前缀表示16进制)queding.Caption = "退出(&T)" (设置快捷键为Alt+T)Style (0)(默认)(1)(可以为控件添加背景图片)Visible False (运行之后控件不可见)Default Ture (按下回车键就激发该命令的Click事件)Cancel Ture (按下Ese键就激发该命令的Click事件)vbCrLf (回车换行)CommonDialog1.ShowOpen (打开文件夹)OpenFileName = CommonDialog1.FileName (提取文件夹名称)Const (定义常量)Integer (整数型变量)Long (长整型变量)FreeFile (空闲的文件号)Columns("A:A").ColumnWidth = 17.25 ' (设置Excel列宽)。
1.選取list控件的多個選項Dim k As IntegerDim msql As StringSQL = "select sn from gm1_carton_log where batch_no='" & Trim(Text1.Text) & "' and wo_no in "For k = 0 To List2.ListCount - 1msql = msql & "'" & Trim(List2.List(k)) & "',"Next kmsql = Left(msql, Len(msql) - 1)SQL = SQL & "(" & msql & ")"2.自動執行程式Timeleft=autocloseAutoclose=5Private Sub Timer1_Timer()TimeLeft = TimeLeft - 1lblTimeRemaining.Caption = TimeLeftIf TimeLeft = 0 ThenTimer1.Enabled = FalseCall OKButton_ClickEnd IfEnd Subbox控件的用法With Combo1SQL = ""SQL = "select distinct(b.invoice_no) from gm1_ship_invoicea,gm1_ship_ms b where a.invoice_no=b.invoice_no and b.ship_fg='OPEN' "Set rs = DB.Execute(SQL)If Not rs.EOF Thenrs.MoveFirstDo While Not rs.EOFCombo1.AddItem Trim(rs!invoice_no)rs.MoveNextLoopEnd IfEnd With2.MsflexGrid的用法Private Sub Initgrddata()With grddata.Cols = 6.Row = 0.Col = 0: .Text = "No.".Col = 1: .Text = "Model.".Col = 2: .Text = "WO_NO.".Col = 3: .Text = "Carton_No.".Col = 4: .Text = "Description.".Col = 5: .Text = "CDT.".ColWidth(0) = 500.ColWidth(1) = 1500.ColWidth(2) = 1500.ColWidth(3) = 1500.ColWidth(4) = 1500.ColWidth(5) = 1500End WithEnd SubIf rs.RecordCount > 0 ThentxtCount.Text = rs.RecordCountgrddata.Rows = 1While Not rs.EOFgrddata.AddItem grddata.Rows & _Chr(9) & rs!model & _Chr(9) & rs!wo_no & _Chr(9) & rs!carton_no & _Chr(9) & rs!Description & _Chr(9) & rs!cdtrs.MoveNextWendEnd If1.連結數據庫db.CursorLocation = adUseClientdb.Open "Provider=MSDAORA.1;Password=jackjai;User ID=gemtek_line1;Data Source=gemtek_sfcs;Persist Security Info=True"Option ExplicitPublic SQL As StringPublic db As New ADODB.ConnectionPublic rs As New ADODB.Recordset2.定義文本框Private Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii >= 97 And KeyAscii <= 122 ThenKeyAscii = KeyAscii - 32End IfIf KeyAscii = 13 ThenIf Len(Text1.Text) = 12 ThenSQL = ""SQL = "select * from mac_133 where mac='" & Trim(Text1.Text) & "'"Set rs = DB.Execute(SQL)If rs.RecordCount > 0 Thenpflag = Trim(rs!flag)ptime = Trim(rs!cdt)pmac = Trim(rs!Mac)Me.Top = (Screen.Height - Me.Height) / 2Me.Left = (Screen.Width - Me.Width) / 2Me.Picture = LoadPicture(App.Path & "\LOAD.WMF")3.sql語句的應用SQL = ""SQL = "select * from GM1_TESTV ALUES_LOG whereGM1_TESTV ALUES_LOG.wo_no='" & Trim(Text1.Text) & "'"Set RS = DB.Execute(SQL)If RS.RecordCount > 0 ThenDataGrid1.SetFocusSet DataGrid1.DataSource = RSINSERT 語劇db.BeginTransSQL = "insert into mac_temp (mac,in_time) values('" &Trim(TxtDCode) & "',sysdate) "'MsgBox (sql)db.Execute (SQL)mm = mm + 1' lbltotal = "Total:" & mmmitTrans'檢查插入MAC成功lblOK.Caption = "OK"lblOK.ForeColor = vbBluelblErrMsg.ForeColor = vbBluelblErrMsg.Caption = "CHECK MAC-" & Trim(TxtDCode) & "成功!!" TxtDCode.Text = ""TxtDCode.SetFocussavedata4.定義模組(username)End Function5.定義模組2(語言切換)MdlLanMgr.bas :Attribute VB_Name = "ModuleLanMgr"Option ExplicitPrivate Declare Function GetPrivateProfileString& Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String)Private LanguageFileName As String'选择语言Public Sub SelectLanguage(LanName As String)On Error Resume NextSelect Case LanName '根据用户选择的语言的名称,分别读取不同的语言文件Case "English":LanguageFileName = AddSplash(App.Path) & "n"Case "Chinese(Simplify)":LanguageFileName = AddSplash(App.Path) & "n"Case "Chinese(Traditional)":LanguageFileName = AddSplash(App.Path) & "n"Case Else:LanguageFileName = ""End SelectEnd Sub'翻译文字Public Function TranslateStr(sSection As String, sKey As String, sDefVal As String) As StringDim sValue As String * 128Dim N As LongOn Error Resume NextTranslateStr = sDefValIf Not FileExists(LanguageFileName) ThenExit FunctionEnd IfN = GetPrivateProfileString(sSection, sKey, sDefVal, sValue, 127, LanguageFileName)If N > 0 ThenTranslateStr = Left(sValue, N)End IfEnd Function'自动转换Form上的一些基本控件(也可自行扩展,目前支持CommandButton,Label,OptionButton,CheckButton)Public Sub TranslateForm(Frm As Form)Dim I As LongOn Error Resume NextFrm.Caption = TranslateStr(, "Caption", Frm.Caption)For I = 0 To Frm.Controls.Count - 1If (TypeOf Frm.Controls(I) Is CommandButton) Or (TypeOfFrm.Controls(I) Is Label) _Or (TypeOf Frm.Controls(I) Is OptionButton) Or (TypeOfFrm.Controls(I) Is CheckBox) ThenFrm.Controls(I).Caption = TranslateStr(,Frm.Controls(I).Name, Frm.Controls(I).Caption)End IfNext IEnd Sub6.導入Excel(FillDataArray)Public Function FillDataArray(asArray(), adoRS As ADODB.Recordset) As Long '将数据送Excel 函数Dim nRow As IntegerDim nCol As IntegerOn Error GoTo FillErrorReDim asArray(100000, adoRS.Fields.Count)nRow = 0For nCol = 0 To adoRS.Fields.Count - 1asArray(nRow, nCol) = adoRS.Fields(nCol).NameNext nColnRow = 1Do While Not adoRS.EOFFor nCol = 0 To adoRS.Fields.Count - 1asArray(nRow, nCol) = adoRS.Fields(nCol).ValueNext nColadoRS.MoveNextnRow = nRow + 1LoopnRow = nRow + 1FillDataArray = nRowExit FunctionFillError:MsgBox Error$Exit FunctionResumeEnd Function7錯誤信息Private Function SfcErrCode(m_err As Integer)Rem 顯示錯誤訊息,代碼,訊息,站別Dim Line1, Line2, Line3 As StringDim err_msg As StringSelect Case m_errCase Is = 1000Line2 = "Mac - " & Trim(TxtDCode) & " , MAC Not Found!!"Line3 = "或者此Mac未過CNC,請查明原因!!"Case Is = 1100Line2 = "Mac - " & Trim(TxtDCode) & " , MAC Duplicate!!"Line3 = "刷入時間: " & Trim(rs!in_time)Line4 = "此Mac 已刷過此程式,請查明是否重覆刷過資料!!"Case Is = 1200Line2 = "插入MAC-& Trim(RS!in_time) &成功!!"End SelectlblErrMsg.ForeColor = vbRed' NG_BeeplblErrMsg.Visible = TruelblOK.Visible = TrueLine1 = "錯誤代碼= " & m_errerr_msg = Line1 & vbCrLf & Line2 & vbCrLf & Line3 & vbCrLf & Line4 lblErrMsg.Caption = err_msgEnd Function7.加入圖形Private Sub MDIForm_Load()' Call gDisableMenuIf App.PrevInstance ThenMsgBox "This Program already executed.", vbOKOnlyEndEnd IfMe.Top = (Screen.Height - Me.Height) / 2 ' Me is for the FormMe.Left = (Screen.Width - Me.Width) / 2 ' Screen gives your Screen DetailsMe.Picture = LoadPicture(App.Path & "\load.wmf")Me.WindowState = 2End Sub打印文件Data_file = App.Path & "\temp.txt"Label_file = App.Path & "\label.btw"log_file = App.Path & "\log.txt"*text中只能輸入數字*Sub text1_keypress(keyascii as integer)If keyascii<48 or keyascii>57 thenKekyascii=0End ifEnd sub自動選擇文字Private Sub Text1_GotFocus()Text1.SelStart = 0Text1.SelLength = Len(Text1)End Sub一個程序只運行一次Dim title As StringIf App.PrevInstance Thentitle = App.titleCall MsgBox("程序已經執行,且只能執行一個", vbInformation) App.title = ""AppActivate titleUnload frmLoginEnd If點幾右健彈出對話框Private Sub Form〞MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button = vbRightButton ThenPopMenu.Visible = TruePopupMenu PopMenuEnd IfEnd Sub杅睿髒杅苺桄If i% And 1 Then' 杅Else'髒杅End If衱ㄩ髒杅苺桄ㄩbool_IsEven = int_Number MOD 2 = 0bool_IsEven = int_Number AND 1 = 0瓚剿珨跺爛爺岆瘁峈 爛Private Sub Command1_Click()Print 2000,Print IsLeapYearA(2000),Print IsLeapYearB(2000)Print 1999,Print IsLeapYearA(1999),Print IsLeapYearB(1999)Print 1998,Print IsLeapYearA(1998),Print IsLeapYearB(1998)Print 1997,Print IsLeapYearA(1997),Print IsLeapYearB(1997)Print 1996,Print IsLeapYearA(1996),Print IsLeapYearB(1996)End SubFunction IsLeapYearA(ByVal yr As Integer) As BooleanIf ((yr Mod 4) = 0) ThenIsLeapYearA = ((yr Mod 100) > 0) Or ((yr Mod 400) = 0)End IfEnd FunctionPublic Function IsLeapYearB(ByVal yr As Integer) As Boolean IsLeapYearB = Day(DateSerial(yr, 2, 29)) = 29End Function。
一.函数1.Abs函数语法Abs(number)必要的number 参数是任何有效的数值表达式,如果number 包含Null,则返回Null,如果number 是未初始化的变量,则返回0。
说明一个数的绝对值是将正负号去掉以后的值。
例如,ABS(-1) 和ABS(1) 都返回1。
返回参数的绝对值,其类型和参数相同。
2.Array函数返回一个包含数组的Variant。
语法Array(arglist)所需的arglist 参数是一个用逗号隔开的值表,这些值用于给Variant 所包含的数组的各元素赋值。
如果不提供参数,则创建一个长度为0的数组。
说明用来表示数组元素的符号由变量名、圆括号以及括号中的所需元素的索引号组成。
在下面的示例中,第一条语句创建一个Variant 的变量A。
第二条语句将一个数组赋给变量A。
最后一条语句将该数组的第二个元素的值赋给另一个变量。
Dim A As VariantA = Array(10,20,30)B = A(2)使用Array 函数创建的数组的下界受Option Base 语句指定的下界的决定, 除非Array 是由类型库(例如VBA.Array )名称限定。
如果是由类型库名称限定,则Array 不受Option Base 的影响。
注意没有作为数组声明的Variant 也可以表示数组。
除了长度固定的字符串以及用户定义类型之外,Variant 变量可以表示任何类型的数组。
尽管一个包含数组的V ariant 和一个元素为Variant 类型的数组在概念上有所不同,但对数组元素的访问方式是相同的。
3.Asc函数返回一个Integer,代表字符串中首字母的字符代码。
语法Asc(string)必要的string 参数可以是任何有效的字符串表达式。
如果string 中没有包含任何字符,则会产生运行时错误。
说明在非DBCS 系统下,返回值范围为0 –255 。
在DBCS 系统下,则为-32768 –32767。
VB循环语句有:1、do while...loop:当条件为True时循环,,在进入循环之前检查条件。
2、do...loop while:当条件为True循环,在循环至少运行一次后检查条件。
3、do until...loop:当条件为false循环,在进入循环之前检查条件。
4、do.. loop until:当条件为false循环,在循环至少运行一次后检查条件。
5、While...Wend: 当条件为Ture时循环。
6、for....next:指定循环次数,使用计数器重复运行语句。
7、for Each...next:对于集合中的每项或数组中的元素,重复执行每个语句。
8、for Each...in:从一个集合中取出每一个元素。
一、赋值语句:把一个表达式的值交给一个变量保管例: a = 12*5 a 的值变为 60b = "芜湖" + "一中" b 的值变为 "芜湖一中"c = text1.text c 的值变为 text1 中的内容二、选择语句行IF: If 条件 Then 语句1 当条件被满足时,执行语句1块IF: If 条件 Then语句1Else语句2End If当条件被满足时,执行语句1 ,不能被满足时,执行语句2三、循环语句Do …… Loop 语句先测试型: Do While 条件要循环执行的语句Loop后测试型: Do要循环执行的语句Loop While 条件For …… Next 语句For 循环变量=初值 To 终值要循环执行的语句Next 循环步长(循环步长=1时,可以不写)。
vb中实现分支结构的语句在 VB 中,可以通过以下方式实现分支结构的语句:1. If...Then...Else 语句:```vbIf condition Then' 条件为真时执行的代码Else' 条件为假时执行的代码End If```2. Select Case 语句:```vbSelect Case expressionCase value1' 表达式等于 value1 时执行的代码Case value2' 表达式等于 value2 时执行的代码Case Else' 表达式不等于任何一个值时执行的代码End Select```3. Do...Loop 语句:```vbDo While condition' 条件为真时执行的代码Loop``````vbDo Until condition' 条件为假时执行的代码Loop``````vbDo' 无限循环,需要在循环体内部使用 Exit Do 来退出循环Loop```4. For...Next 语句:```vbFor counter = start To end Step stepValue' 在每次循环时 counter 递增/递减 stepValue 值,并执行循环体内的代码Next``````vbFor Each item In collection' 遍历集合中的每个元素,并执行循环体内的代码Next ```。
Vb常用语句解析下面10条语句是最常用的语句,将指针移到上面按ctrl键单击可查看用法:包括功能、语法、参数、举例等。
1、Let(赋值语句即=)3、Dim语句7、If...Then...Else 语句21、Select case6、For...Next 语句19、While...Wend 语句15、Randomize 语句16、Rem 语句17、Static 语句18、Unload 语句1、Let(赋值语句即=)功能:将表达式的值赋给变量或属性。
语法[Let] varname=expressionLet语句的语法包含下面部分:2、call语句将控制权转移到一个Sub过程,Function过程,或动态连接库 (DLL)过程。
语法[Call] name [argumentlist]Call语句的语法具有以下几个部分:说明调用一个过程时,并不一定要使用Call关键字。
如果使用Call关键字来调用一个需要参数的过程,argumentlist 就必须要加上括号。
如果省略了Call关键字,那么也必须要省略argumentlis 外面的括号。
如果使用Call 语法来调用内建函数或用户定义函数,则函数的返回值将被丢弃。
若要将整个数组传给一个过程,使用数组名,然后在数组名后加上空括号。
3、Dim语句声明变量并分配存储空间。
语法Dim[WithEvents] varname[([subscripts])] [As[New] type] [, [WithEvents] varname[([subscripts])] [As [New] type]] . . .Dim语句的语法包含下面部分:说明在模块级别中用Dim声明的变量,对该模块中的所有过程都是可用的。
在过程级别中声明的变量,只在过程内是可用的。
可以使用Dim语句在模块级或过程级中声明变量的数据类型。
例如,下面的语句声明了Integer 类型的变量。
Dim NumberOfEmployees As Integer也可以使用Dim语句来声明变量的对象类型。
Vb常用语句
语句
1.赋值语句
⏹变量的赋值
格式:
[Let] <变量> =<表达式>
☐功能:先计算赋值号右边表达式的值,然后将值赋值给变量。
注意:
☐“=”意义是“赋值”而不是“等于”,x = y和y = x不等价。
☐
☐“=”左边只能是变量,不能是数值或表达式,下面语句是错误的:
☐ 4 = x+y
☐ a + b/2 = 6
☐一次只能给一个变量赋值,如果要给多个变量赋相同的值,只能使用多个赋值语句。
☐例如:sum = 0 : i = 0不能写成:sum = i = 0
⏹对象属性的动态设置、对象属性值的返回
☐对象属性的动态设置
☐格式:对象名.属性名= <属性值>
☐例如:
Command1.Caption = "计算"
Text2.Text=Str(c)
☐注意:Name属性只能在属性窗口赋值
☐对象属性值的返回
☐例如:
R = Val(Text1.Text)
(2)Print语句
[<对象名>.]Print[<表达式表>][,|;]
功能:在指定的对象上输出<表达式表>中各元素的值。
例
Private Sub Command1_Click()
a = 123:
b = 456:
c = 789
Form1.Print a; b; c '输出在窗体Form1上
Print "中华", "天下", a + b + c ‘输出在窗体Form1上
Picture1.Print "中华", "天下", a + b + c '输出在图片框Picture1上
Debug.Print "中华", "天下", a + b + c '输出在立即窗口上
Printer.Print "中华", "天下", a + b + c '在打印机上输出
End Sub
注意:
只能在窗体、图片框、打印机、立即窗口上输出内容
Print的相关函数
①Tab()函数
Tab(N)
功能:把光标移到由N确定的位置。
②Spc()函数
Spc(N)
功能:光标移到N个空格之后的位置。
③Cls方法
[<对象名>.]Cls
功能:清除由Print方法显示的信息。
④Format$函数
Format$(表达式,格式字符串)
功能:将数值、字符串或日期等数据按照指定的格式生成字符串
3.注释语句
Vb中添加注释语句的方法为在字符“’”(即单引号)后加注释内容或采用Rem 注释内容的形式
参照print语句中的例子
4..结束语句
语法格式:end
功能:强制程序结束运行
练习:
1.用vb语言编程序,分别为每个基本数据类型声明一个变量,给变量赋一个合适的值,使用print语句输出变量值
2.上机编写如下代码
Private Sub Form_Click()
Print “北京”,“奥运”
Print“北京”;“奥运”
表达式列表各输出项之间有分隔符。
运行上面的程序说出逗号分隔符和分号分隔符的不同采用逗号分隔符各输出项
采用分号分隔符各输出项
3.编写一个程序,用end语句结束这个程序,体会一下end语句的用法。
综合练习:
新建一工程,在窗体中有两个命令按钮,通过代码使一按钮显示“输出”,另一按钮显示“结束”。
定义一变量a,类型为数值型且赋值123。
定义一变量s, 类型为字符型且赋值为I am a student.要求当点击输出按钮时,用print语句输出“I am a student 学号位123”。
点击结束按钮时,结束本程序。
选择:
1、在VB应用程序中,修改控制代码,使Command1按钮显示“end”,正确的设置是()。
A. Command1.Text=“end”
B. Command1.Caption=“end”
C. =end
D. Command1.Caption=end
2、在VB程序中,当变量H的值等于8时,执行“IF H>8 then R=10 else R=20”语句后,R 值为()。
A.5 B.10 C.20 D.10或20
3.下列句子中,()不是赋值语句。
A.A=”123” +”456”B.Label1.Captin=”你好!”
C.r=Val(Text1.Text) D.x+1=y
4. 下列程序运行后,变量s= ()。
Dim a,b,c,s As Integer
a=9
b=41
c=2*(a+b)
s=a*c
A.100 B.50 C.900 D.300
4.VB的注释语句是以()开始的?
(A)Rem或' (B)Rem或; (C)Note或* (D)Note或!
5.针对下面的赋值语句,哪个叙述是正确的?
HA123=&HA456
(A)“=”左右两边的都是变量(B)“=”左边的是变量,右边是常量(C)“=”左边的是常量,右边是变量(D)“=”左右两边的都是常量
6.下列哪个是结束程序的语句
(A)End (B)Stop (C)Exit (D)Pause。