StrReverse(C)返回逆置后的字符串
InStr([N1],C1,C2,[M])返回子串C2在C1中的位置。
从N1开始找,省略N1从头找。
M=0(默认)区分大小写,M=1不区分
*InstrRev(C1,C2,[N1],[M])同InStr,只是从串尾开始找,返回的位置都是从串头开始算
左侧第一个字符为1
Replace(C,C1,C2[,N1][,N2][,M])用C2替换C中的子串C1,从N1(省略从头)开始找C1,替换N2
Join(A[,分隔符])返回数组各元素按分隔符连接而成的字符串。
如A=array(“12”,”3”,”4”)Join(A,””)返回”1234”
Split(C[,分隔符])将字符串C按分隔符分隔成字符数组。
如S=Split(“123,56,ab”,“,”)则S(0)=”123”S
(1)=”56”S
(2)=”ab”
String$(N,C)返回由C中首字符重复N次组成的字符串。
如:
String$(3,”abc”)返回”aaa”
Space$(N)返回N个空格组成的字符串
注:
字符编码常识
Windows对字符采用DBCS编码,西文字符与Ascii码一样是单字节,汉字是两字节
VB采用UniCode(国际标准化组织字符标准),无论中西文一律采用两个字节。
对于Ascii码也是两字节,前一字节全补0
4.字符串编码转换函数StrConv
格式:
StrConv(C,VbFromUnicode|VbUnicode)
注:
VbFromUnicode将Unicode码转换成DBCS码
VbUnicode将DBCS码转换成Unicode码
**VB下不能显示DBCS编码的字符串,是乱码。
因为VB以Unicode码处理字符串。
5.日期函数
6.格式输出函数
7.SHELL函数
8.与用户交互的函数
InputBox打开一个输入对话框,供输入数据
格式:
变量=InputBox(提示字符串[,对话框标题][,显示在输入框的默认值][,x,y])
注:
x,y为对话框左上角坐标
MsgBox输出消息对话框
格式:
变量=MsgBox(提示[,按钮类型][,对话框标题])
MsgBox提示[,按钮类型][,对话框标题]
注:
按钮类型:
3.6程序控制结构
1.选择结构
VB
C语言
选
择
结
构
1
if条件then语句
(只能写在一行)如有多条语句须用:
分隔
If(条件)语句块;
或写成
if(条件)
语句块;
If条件then
语句块
endif
变量=iif(条件,True时的值,False时的值)
变量=条件?
表达式,表达式2
2
If条件then
语句块
else
语句块
endif
If(条件)
语句
else
语句
If条件then语句1else语句2
(只能写在一行)
3
If条件then
语句块
elseif条件then
语句块
…
else
语句块
endif
If(条件)语句
Elseif(条件)语句
Elseif(条件)语句
….
Else语句
4
SelectCase表达式
Case值列表1
语句块
Case值列表2
语句块
….
CaseElse
语句块
EndSelect
注:
值列表例:
Case1
Case1to10
Case2,4,6,8
CaseIs>10
Case1,2to6,Is>10
Switch(表达式)
{case常量表达式1:
语句;break;
case常量表达式1:
语句;break;
case常量表达式1:
语句;break;
….
Default:
语句
}
For循环变量=初值to终值[step步长]
语句块
[ExitFor]
Next循环变量
For(exp1;exp2;exp3)语句
9.3使用ADO访问数据库
9.3.1.ADO简介
ADO通过OLEDB访问不同类型的数据源。
OLEDB是底层编程接口,主要包括3个部分。
数据提供者:
从各种数据源(如数据库、文本文件、电子表格等)读取数据,并将这些数据转换成数据消费
者支持的格式(一般为关系型数据表)。
数据消费者:
使用数据提供者提供的数据的应用程序。
(几是使用ADO的应用程序都是消费者)
服务组件:
作用是连接数据消费者和数据提供者。
或将数据转换为不同的类型。
9.3.2.ADO对象模型:
ADO中包括7个对象,其中3个独立对象Connection、Command、Recordset和4个非独立对象(依赖独立对象才能使
用)Field、Error、Parameter、Property
在VB中使用ADO必须先引用:
“工程”菜单à引用à选“MicrosoftActiveXDataObjects2.0Library”à确定
新方法:
(2011年5月25日星期三整理)
start
-----------------------------------------------------------------------------------------------------------------------------
PrivateCurSqlSeverAsString*15,CurDataBaseAsString*15,CurUserNameAsString*15,CurPasswordAsString*15
DimcnAsNewADODB.Connection'定义连接变量
DimrsAsNewADODB.Recordset'定义记录集变量
'初始化连接变量,以操作具体的数据库
cn.ConnectionString="Driver={sqlserver}"&";server="&Trim(CurSqlSever)&";uid="&Trim(CurUserName)
&";pwd="&Trim(CurPassword)&";database="&Trim(CurDataBase)
cn.ConnectionTimeout=30'设置连接超时为30秒
cn.Open'打开连接
'打开/关闭记录集
rs.Open"SELECT语句",cn,adOpenStatic,adLockReadOnly,adCmdText
rs.Close
-----------------------------------------------------------------------------------------------------------------------------
finish
'执行更新操作
cn.Execute"update语句"
1.Connection对象:
即连接对象,主要用于建立数据源(如数据库)连接,任何对数据源的其他操作都建
立在连接的基础上。
连接建立步骤:
s1:
定义并实例化连接对象
dim连接对象指针名(如objcn)asConnection
set连接对象指针名=newConnection
s2:
指定数据提供者类型
连接对象指针名.Provider=”数据提供者类型”
如:
指定数据提供者为SQLSEVER数据库
objcn.Provider=”SQLOLEDB”
s3:
设置连接信息
即设置Connection对象的ConnectionString(连接字符串)属性,不同类型的数据提供者,ConnectionString
的参数是不同的。
例:
连接SQLSEVER数据库“学习分制选课”,用户sa可访问该数据库,sa用户密码是123,数据库所在服务器为本地服务器
连接对象指针名.ConnectionString=”UserID=sa;PWD=123;DataSource=(local);InitialCatalog=学分制选课”
连接字符串主要参数说明:
Provider:
指定数据提供者类型,同连接对象的Provider属性(二者只要设置一
个即可)
UserID或UID:
具有要连接数据库访问权限的用户名
Password或PWD:
上述用户的密码
DataSource或Sever:
要连接的数据库所在的SQLSever服务器名
NetworkAddress:
要连接的数据库所在的SQLSever服务器的IP地址。
*如设置了该参数,则无需再设置DataSource
InitialCatalog或Database:
指定要连接的数据库的名称
注:
参数名不区分大小写,参数在连接字符串中不分先后顺序,参数之间用
分号分隔
***快速获得连接字符串,以SQLSEVER数据为例,方法:
打开记事本à不输入任何内容,直接选另存为à保存类型下拉框选”所有文件”
à文件名框输入:
文件名.udlà单击保存
双击打开刚才建立的UDI文件à选“提供程序”选项卡à选择合适的提供程序,选”MicrosoftOLEDBProviderforSQLSEVER”à单击“下一步”à
选择或输入服务器名称框:
用于设置要连接的数据库所在的服务器
使用WindowsNT集成安全设置:
即使用当前Windows用户身份访问数据库(当然该用户应具有访问的权限)
使用指定的用户名和密码:
用SEVER登录帐户访问数据库
在服务器上选择数据库:
选择要连接的数据库
测试连接:
测试能否正确连接
***快速获得连接字符串,以Access数据库为例,方法
双击打开刚才建立的UDI文件à选“提供程序”选项卡à选择合适的提供程序,选”MicrosoftJet3.51OLEDBProvider”à单击“下一步”à
选择或输入数据库名称:
用于设置要连接的数据库
输入数据库的登录信息
测试连接:
测试能否正确连接
s4:
打开连接:
连接对象指针名.open(open是连接对象的方法)
如:
objcn.open
断开连接:
连接对象指针名.close
如:
objcn.close
释放连接对象:
set连接对象指针名=Nothing
***当完成对数据库的访问后,应用close方法断开连接,断开后可用open方法重新打开。
如连接断开后不再使用。
应释放连接对象
2、Command对象:
即命令对象,用于执行各种SQL命令或存储过程。
(1)常用属性
ActiveConnection:
设置命令对象使用的活动连接,也可返回
CommandText:
设置命令对象使用的SQL命令、存储过程名、或表名称,也可返回
CommandType:
说明CommandText值的类型,其值与相应含义:
AdCmdTextSQL命令
AdCmdStoreProc存储过程
AdCmdTable表名称
State:
返回命令当前所处状态,值与含义:
AdStateConnecting连接
AdStateOpen打开
AdStateClosed关闭
AdStateExecuting正在执行
AdStateFetching正在读取记录
**Connection对象和Recordset对象也包含State属性
(2)常用方法
Cancel:
撤消正在执行的命令
Execute:
执行(用CommandText属性指定的)命令
Createparameter:
创建参数对象,以便执行带参数的存储过程
(3)命令对象的创建
法一:
从已经打开的连接上创建命令对象,即先建立并打开连接,然后设置命令对象的ActiveConnection属性为刚才建立的连接。
该方式效率最高
例:
Dimobjcnasconnection,objcmdascommand
setobjcn=newconnection
objcn.provider=”SQLOLEDB”
objcn.connectionstring=”uid=sa;pwd=123;sever=(local);Database=学分制选课”
objcn.open
setobjcmd=newcommand
setobjcmd.activeConnection=objcn
objcmd.CommandText=”Update选课记录set成绩=成绩+10”
objcmd.CommandType=adCmdtext
objcmd.Execute
法二:
创建独立的Command对象,将把原来连接字符串中放置的连接信息放在命令对象的确ActiveConnection属性即可。
该法无需创建单独的连接。
例:
dimobjcmdascommand
setobjcmd=newcommand
setobjcmd.activeConnection=”Provider=SQLOLEDB;uid=sa;pwd=123;sever=(local);
Database=学分制选课”
objcmd.CommandText=”Update选课记录set成绩=成绩+10”
objcmd.CommandType=adCmdtext
objcmd.Execute
3、Recordset对象:
即记录集对象,用于保存查询获得的记录以及将修改后的记录返回服务器。
(1)基本属性
ActiveConnection:
设置记录集对象使用的活动连接,也可返回
CursorLocation:
设置记录指针(也称光标、游标)的位置,默认为adUseSever
CursorType:
设置记录指针(即记录集)类型,默认为adOpenForward
常量与含义:
adOpenForwardOnly仅向前指针(记录集)
adOpenKeyset键集指针
adOpendynamic动态指针
adOpenStatic静态指针
***有的数据提供者不支持所有指针
Filter:
设置记录集中记录满足的条件,也可返回
LockType:
设置记录加锁类型,默认为adLockReadonly。
也可返回
Sort:
对记录集中的记录排序。
RecordCount:
返回记录集中记录的个数
State:
返回记录集的当前状态
Bof:
返回记录指针是否指向第一条记录之前,逻辑型
Eof:
返回记录指针是否指向最后一条记录之后,逻辑型
pageSize:
设置记录集每个记录页的记录条数,默认值是10。
也可返回
pageCount:
返回记录页的个数。
absolutePage:
返回当前记录页序号
AbsolutePosition:
返回当前记录指针绝对位置(的序号),第一条记录为0
Bookmark:
返回惟一标识当前记录的书签,或设置书签标识的记录为当前记录
常用方法
movefirst、movelast、moveNext、movePrevious、moven类似DAO
find
(2)记录集对象的创建
法1:
使用Command对象创建记录集对象
即设置命令对象的命令文本为Select查询语句,然后实例化记录集对象为命令对象.Execute
例:
dimobjcnasConnection,objcmdasCommand,objrsasRecordset
setobjcn=newconnection
setobjcmd=newcommand
setobjrs=newrecordset
Withobjcn
.provider=”SQLOLEDB”
.ConnectionString=”uid=sa;pwd=123;Sever=(local);Database=学分制选课”
.Open
endwith
Withobjcmd
.ActiveConnection=objcn
.CommandText=”select*from学生信息”
.CommandType=adcmdtext
endwith
setobjrs=objcmd.Execute
法2:
直接使用记录集对象的Open方法创建记录集对象
例:
dimobjcnasConnection,objrsasRecordset
setobjcn=newconnection
setobjrs=newrecordset
withobjcn
.provider=”SQLOLEDB”
.ConnectionString=”uid=sa;pwd=123;Sever=(local);Database=学分制选课”
.Ope