本文目录一览:
告诉我一些简单的vb编程代码
给几个写的模块给你看看
Public Function LoadData(strSQL As String)
Dim rst As DAO.Recordset
Dim ctl As Control
Dim fld As Object
Set rst = CurrentDb.OpenRecordset(strSQL, , dbReadOnly)
If Not rst.EOF Then
For Each ctl In ctlFormName
If Not (TypeOf ctl Is Label Or TypeOf ctl Is CommandButton) Then
For Each fld In rst.Fields
If fld.Name = ctl.Name Then
ctl = rst(fld.Name)
Exit For
End If
Next
End If
Next
End If
rst.Close
Set rst = Nothing
End Function
Public Function AddData(TableName As String)
Dim rst As DAO.Recordset
Dim ctl As Control
Dim fld As Object
Set rst = CurrentDb.OpenRecordset(TableName, , dbReadOnly)
For Each ctl In ctlFormName
If Not (TypeOf ctl Is Label Or TypeOf ctl Is CommandButton) Then
For Each fld In rst.Fields
If fld.Name = ctl.Name Then
ctl = fld.DefaultValue
Exit For
End If
Next
End If
Next
rst.Close
Set rst = Nothing
End Function
Public Function SaveData(strSQL As String)
' On Error GoTo Err_SaveData
Dim rst As DAO.Recordset
Dim ctl As Control
Dim fld As Object
If MsgBox("您确认要保存吗?", vbOKCancel + vbInformation, "提示!!!") = vbOK Then
If AddTag = True Then
Set rst = CurrentDb.OpenRecordset(strSQL, , dbReadOnly)
rst.AddNew
Else
Set rst = CurrentDb.OpenRecordset(strSQL)
rst.Edit
End If
For Each ctl In ctlFormName
'Debug.Print ctl.Name
If Not (TypeOf ctl Is Label Or TypeOf ctl Is CommandButton) Then
For Each fld In rst.Fields
'Debug.Print fld.Name
If fld.Name = ctl.Name Then
rst(fld.Name) = ctl
Exit For
End If
Next
End If
Next
rst.Update
rst.Close
Set rst = Nothing
MsgBox "数据保存成功!", vbInformation, "提示!!!"
End If
Exit_SaveData:
Set rst = Nothing
Exit Function
Err_SaveData:
If Err = 3022 Then
MsgBox "同一节点下不能存在相同的子节点,请修改后再点保存!", vbCritical, "警告!!!"
Else
MsgBox Err.Source " #" Err vbCrLf vbCrLf Err.Description, vbCritical
On Error Resume Next
End If
Resume Exit_SaveData
End Function
Public Function DelSource(Form As Form)
Dim ctl As Control
Form.RecordSource = ""
For Each ctl In Form
If Not (TypeOf ctl Is Label) Then
ctl.ControlSource = ""
End If
Next
End Function
Public Function DelData(strSQL As String)
Dim rst As New ADODB.Recordset
Dim i As Long
If MsgBox("你确定要删除当前记录吗?", vbOKCancel + vbQuestion, "删除!!!") = vbOK Then
' Debug.Print strSQL
rst.Open strSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
If rst.RecordCount 0 Then
For i = 1 To rst.RecordCount
rst.Delete
rst.Update
rst.MoveNext
Next
End If
rst.Close
Set rst = Nothing
End If
End Function
VB语言 基本语句(会数学的也可以)
If...Then判断语句
If..Then判断语句属于一种单行假设判断语句,它会按照用户所给定的比较或逻辑表达式。
进行判断。当判断结果为“True”也就是真时,则执行Then后的程序代码块,否则跳过该块的执行步骤。
使用语法的 *** 如下:
If 判断式 Then 执行语句
或
If 判断式 Then
执行语句1
执行语句2
End If
其实上述的两种语法并不相同的,主要差异在于之一种写法是使用在处理程序部分的源代码较短,
无需分段的时候:
If a b Then Print "a b"
而当处理程序部分需要分段时,则必须使用第二种写法将执行语句包括在"If...Then...End If"范围中:
If a b Then
c = a + b
Print "a + b = " c
End If
而If...Then...Else...End If语句则可以将不符合条件式的情况,交给Else后所接的程序代码来处理:
例如:
If a b Then
c = a + b
Else
c = a - b
End If
Print c
在上面程序片段中,变量C的数值会由条件式”ab“成立与否而有不同的输出结果。
至于ElseIf的语法也是和If搭配来使用,它主要是用来进行多重逻辑判断。
If...ElseIf...Else...End If使用语法的 *** 如下:
If 判断式1 Then //当判断式1成立时,执行以下语句
程序语句 甲
ElseIf 判断式2 Then //当判断式1不成立,但判断式2成立时执行以下语句
程序语句乙
ElseIf 判断式3 //当判断式1和2都不程序,但判断式3成立时执行以下语句
程序语句 丙
Else //当上面所有判断式都不成立时,执行下面的语句
程序语句 丁
End If
★Select Case判断语句
Select Case流程控制语句可以根据判断式的返回值来执行不同程序代码片段。
Select Case语法如下:
Select Case 参数
Case 条件1 //当判断式满足条件1时就执行以下的语句
程序语句1
程序语句2
Case 条件2 //当判断式满足条件2时就执行以下的语句
程序语句1
程序语句2
Case Else //当判断式无满足任何条件时就执行Case Else标签后的语句
程序语句1
End Select
由于Select Case仅能传入一个参数,也就是说它无法执行“比较”与“判断”的操作,并且Case
仅能是数值而不能是表达式。
以下这个是个错误程序的片段:
Select Case A B //错误!!!仅能传送一个参数
或是
Select Case A
Case A C //错误!!!Case只能接受数值
★循环语句
当程序需要执行重复性工作时,可以使用循环控制语句连续执行某段程序代码,直到满足特定条件为
止。
VB提供了Fot...Next、While...Wend与Do...Liio三种循环控制语法。
For...Next循环语句
For...Next属于先测试循环控制语句,属于基本的循环控制语法。它按照用户所赋予的初值、终值
与步长表达式来重复执行某一特定程序区段。在每次执行前,系统会先检查目前初值状态是否符合
终值条件,如果不符合终值条件的话则执行增量运算后,再执行循环语句:反之如符合终值条件,则
跳出循环。
For 循环语法如下:
For 初值 to 终值 Step 步长
程序语句
Next
简单的VB代码
本题最后一行是说文本文件的9行数据为:
3
4
6
8
1
2
5
9
3
根据程序代码执行的流程,对变量x,y,z跟踪如下;
首先:y = 0,x = CDbl(sr.ReadLine)
这里读取文件的之一行,保存到变量x,所以:x = 3
执行循环
Do While x 5
If x = 4 Then
sr.Close()
sr = IO.File.OpenText("data1.txt")
End If
z = x + y
x = CDbl(sr.ReadLine)
y = CDbl(sr.ReadLine)
Loop
因为x = 3,满足x 5,但是不满足x = 4,所以:
z = x + y ==z=3
x = CDbl(sr.ReadLine) ==x=4 '读第2行
y = CDbl(sr.ReadLine) ==y=6 '读第3行
执行循环
Do While x 5
If x = 4 Then
sr.Close()
sr = IO.File.OpenText("data1.txt")
End If
z = x + y
x = CDbl(sr.ReadLine)
y = CDbl(sr.ReadLine)
Loop
因为x = 4,满足x 5,也满足x = 4,所以:
执行
sr.Close()
sr = IO.File.OpenText("data1.txt")
即:先关闭文件,再次打开文件;
执行,将重新从文件第1行开始读取
z = x + y ==z=10
x = CDbl(sr.ReadLine) ==x=3 '读第1行
y = CDbl(sr.ReadLine) ==y=4 '读第2行
执行循环
Do While x 5
If x = 4 Then
sr.Close()
sr = IO.File.OpenText("data1.txt")
End If
z = x + y
x = CDbl(sr.ReadLine)
y = CDbl(sr.ReadLine)
Loop
因为x = 3,满足x 5,但是不满足x = 4,所以:
执行
z = x + y ==z=7
x = CDbl(sr.ReadLine) ==x=6 '读第3行
y = CDbl(sr.ReadLine) ==y=8 '读第4行
执行循环
Do While x 5
If x = 4 Then
sr.Close()
sr = IO.File.OpenText("data1.txt")
End If
z = x + y
x = CDbl(sr.ReadLine)
y = CDbl(sr.ReadLine)
Loop
因为x = 6,不满足x 5,循环结束
所以最后z的内容是 7 ,所以文本框显示7
VB编程,超简单的。求编写代码
之一题:
Private Sub Form_Click()
Dim x As Double, Y As Double
x = InputBox("请输入当前顾客购买鸡蛋的重量(以公斤为单位)")
If x 3 Then
Y = 7.6 * x
Else
Y = 7.6 * x * 0.8
End If
Print Format(Y, "0.00")
End Sub
第二题:
Private Sub Form_Click()
Dim x As Double, Y As Double
x = InputBox("请输入顾客所乘的公里数")
If x / Fix(x) = 1 Then
x = x
Else
x = Fix(x) + 1
End If
If x 15 Then
Y = 7 + 13 * 1.5 + (x - 15) * 2.1
ElseIf x 2 Then
Y = 7 + (x - 2) * 1.5
Else
Y = 7
End If
Print Y
End Sub
vb编程的代码和函数
我自己整理了一些,不多,你看看吧。如果要有列子的再找我。 (一)类型转换类函数
1. CType(X)
[格式]:
P=CBool(X) ' 将X转换为“布尔”(Boolean)类型
P=CByte(X) ' 将X转换为“字节”(Byte)类型
P=CCur(X) ' 将X转换为“金额”(Currency)类型
P=CDate(X) ' 将X转换为“日期”(Date)类型
P=CDbl(X) ' 将X转换为“双精度”(Double)类型
P=CInt(X) ' 将X转换为“整型”(Integer)类型
P=CLng(X) ' 将X转换为“长整型”(Long)类型
P=CSng(X) ' 将X转换为“单精度”(Single)类型
P=CStr(X) ' 将X转换为“字符串”(String)类型
P=Cvar(X) ' 将X转换为“变体型”(Variant)类型
P=CVErr(X) ' 将X转换为Error值[ 范例 ]:
(1). CStr(13)+CStr(23)' 数值转换成字符串后,用"+"号连接, 结果:1323
(2). CInt("12")+12' 字符串转换成整型后与12相加, 结果:24
(3). P=CInt(True)' 输出结果为-1
' 布尔值与数值的转换时要注意,布尔值只有True和False,其中True在内存中为-1,False存为0
(4). CBool(-0.001)' 输出结果为True
' 将数值转换为布尔型时,等于0的数值将得到False,不等于0的数值得到True.
2. Int(X),Fix(X):取X的整数值
[格式]:
P=Int(X) ' 取=X的更大整数值
P=Fix(X) ' 取X的整数部分,直接去掉小数[范例]:
(1) Int(-54.6) ' 结果为-55,取=-54.6的更大整数
(2) Fix(54.6) ' 结果为54,取整数并直接去掉小数
(二)常用数学函数
[格式]:
1. Abs(N) 取绝对值
例:Abs(-3.5) 结果:3.52. Cos(N) 余弦函数
例:Cos(0) 结果:13. Exp(N) e为底的指数函数
例:Exp(3) 结果:20.0684. Log(N) 以e为底的自然对数
例:Log(10) 结果:2.35. Rnd[(N)] 产生随机数
例:Rnd 结果:0--1之间的数6. Sin(N) 正弦函数
例:Sin(0) 结果:07. Sgn(N) 符号函数
' 说明:取正负号。Y=Sgn(X) 既 X0 则Y=1;X=0 则Y=0;X0 则Y= -18. Sqr(N) 平方根
例:Sqr(9) 结果:39. Tan(N) 正切函数
例:Tan(0) 结果:010.Atn(N) 反切函数
例:Atn(0) 结果:0[注意]:在三角函数中,以弧度表示。(一)字符串类函数:1. ASC(X),Chr(X):转换字符字符码[格式]:
P=Asc(X) 返回字符串X的之一个字符的字符码
P=Chr(X) 返回字符码等于X的字符[范例]:
(1)P=Chr(65)
‘ 输出字符A,因为A的ASCII码等于65
(2)P=Asc(“A”)
‘ 输出65
2. Len(X): 计算字符串X的长度
[格式]:
P=Len(X)
[说明]:
空字符串长度为0,空格符也算一个字符,一个中文字虽然占用2 Bytes,但也算一个字符。[范例]:
(1) 令X=”” (空字符串)
Len(X) 输出结果为0
(2) 令X=”abcd”
Len(X) 输出结果为4
(3) 令X=”VB教程”
Len(X) 输出结果为4
3. Mid(X)函数:读取字符串X中间的字符
[格式]:
P=Mid(X,n)
由X的第n个字符读起,读取后面的所有字符。
P=Mid(X,n,m)
由X的第n个字符读起,读取后面的m个字符。[范例]:
(1) X=”abcdefg”
P=Mid(X,5)
结果为:P=”efg”
(2) X=”abcdefg”
P=Mid(X,2,4)
结果为P=”bcde”
4. Replace: 将字符串中的某些特定字符串替换为其他字符串
[格式]:
P=Replace(X,S,R)
[说明]:将字符串X中的字符串S替换为字符串R,然后返回。[范例]:
X=”VB is very good”
P=Replace(X,good,nice)
输出结果为:P=”VB is very nice”
5. StrReverse:反转字符串
[格式]:
P=StrReverse(X)
[说明]:
返回X参数反转后的字符串
[范例]:
(1)X=”abc”
P=StrReverse(X)
输出结果:P=”cba”
6. Ucase(X),Lcase(X):转换英文字母的大小写
[格式]:
P=Lcase(X)
‘ 将X字符串中的大写字母转换成小写
P=Ucase(X)
‘ 将X字符串中的小写字母转换成大写
[说明]:除了英文字母外,其他字符或中文字都不会受到影响。[范例]:
(1) 令 X=”VB and VC”
则Lcase(X)的结果为”vb and vc”,Ucase(X)的结果为”VB AND VC”
7. InStr函数:寻找字符串
[格式]:
P=InStr(X,Y)
从X之一个字符起找出Y出现的位置
P=InStr(n,X,Y)
从X第n个字符起找出Y出现的位置
[说明]:
(1) 若在X中找到Y,则返回值是Y之一个字符出现在X中的位置。
(2) InStr(X,Y)相当于InStr(1,X,Y)。
(3) 若字符串长度,或X为空字符串,或在X中找不到Y,则都返回0。
(4) 若Y为空字符串,则返回0。日期时间类函数:
1. Year(X),Month(X),Day(X):取出年,月,日
[格式]:
P=Year(X)
取出X“年”部分的数值
P=Month(X)
取出X“月”部分的数值
P=Day(X)
取出X“日”部分的数值
[说明]:Year返回的是公元年,若X里只有时间,没有日期,则日期视为#1899/12/30#
2. Hour,Minute,Second函数:取出时,分,或秒
[格式]:
P=Hour(X)
取出X“时”部分的数值
P=Minute(X)
取出X“分”部分的数值
P=Second(X)
取出X“秒”部分的数值
[说明]:Hour的返回值是0---23之间[范例]:
X=10:34:23
P=Hour(X)
Q=Minute(X)
R=Second(X)
则输出结果:P=10,Q=34,R=233. DateSerial函数:合并年,月,日成为日期
[格式]:DateSerial(Y,M,D)
其中Y是年份,M为月份,D为日期
[说明]:
(1) M值若大于12,则月份从12月起向后推算M-12个月;若小于1,则月份从1月起向后推算1-M个月。
(2) 若日期D大于当月的日数,则日期从当月的日数起,向后推算D-当月日数;若小于1,则日期从1日起向前推算1-D日。
[范例]:
P=DateSerial(2000,02,02)
则结果为P=2000/02/02
4.TimeSerial函数:合并时,分,秒成为时间
[格式]:P=TimeSerial(H,M,S)
其中H为小时数,M为分钟数,S为秒数
[说明]:推算原理同上面的DateSerial
[范例]:
P=TimeSerial(6,32,45)
结果为:P=6:32:45
5.Date,Time,Now函数:读取系统的日期时间
[格式]:
P=Date()
P=Time()
P=Now()
[说明]:这三个函数都无参数
[范例]:
若当前时间为2003年8月29日晚上19点26分45秒,则
P=Now()
结果为:P=2003-08-29 19:26:45
6.MonthName:返回月份名称
[格式]:P=MonthName(X)
[说明]:X参数可传入1---12,则返回值为“一月”、“二月”……,但是在英文Windows环境下,返回的是”January”,”February”……
[范例]:
P=MonthName(1)
则P=“一月”
7.WeekdayName:返回星期名称
[格式]:P=WeekdayName(X)
[说明]:X参数可传入1—7,则返回值为“星期日”,“星期一”……,但是在英文windows环境下,返回的是”Sunday”,”Monday”……
[范例]:
P=WeekdayName(1)
结果为:P=”星期日”