1.VB中,MDIfrom窗体与窗体的MDIchild属性有什么区别?
MDIForm窗体是多文档界面(MDI)的主窗体,同一个工程中只能有一个MDI主窗体。
而把某个窗体的MDIChild属性设为True,则这个窗体就由一个普通的SDI(单文档界面)窗体转变为一个MDI(多文档界面)子窗体。
2.vb中sql语句的单引号和双引号的用法
""之间是一个字符串,"" 和 "" 用& 连接
例如:strsql =" selcet * from sp_table where xm= ' " & Text1.Text & " ' "
假如Text1.Text的值是:李四
那么应该写成:
strsql = "select * from sp_where sp_table where xm= ' " 李四 " '"
现在把它分为三部分
"select * from sp_table where xm= ' "
李四
" ' "
李四换成 & Text1.Text &
简单地说,双引号是给VB用的,单引号是给SQL语句用的。
a= "b" 表示a为b
a=" " b " " 表示a为" b"
a=" " " " & "b" & " "" 表示a为 " b"
a=" ' b ' " 表示a为 ' b '
a=" ' " & " b "& " ' " 表示a为 ' b '
3.ExecuteSQL函数
ExecuteSQL(sqlQuery; fieldSeparator;rowSeparator {;arguments...})
参数:
sqlQuery:查询数据的SQL语句。SQL语句中可以使用Union和Where进行联合查询和条件查询。使用?来进行指定条件查询的参数。
fieldSeparator:字段分隔符。如果返回的结果包含多个字段,则使用这个参数指定一个字段分隔符。
rowSeparator:行分隔符。如果返回结果包含多个行,则使用这个参数指定一个行分隔符。
arguments:查询参数。主要是在使用Where子句时指定动态参数使用。
返回值类型:字符串
解释:ExecuteSQL函数不能使用诸如Create,Update,Delete等SQL语句对FileMaker表结构进行修改。只能进行数据查询。
4.$
像biao$="内容" 、a$= inputbox(" ",biao) 中的$都表示biao、a这两个变量是字符串变量。
其它的变量也一样,只要在变量名后面加上$,就表示这个变量是字符串类型的变量。
在vb中,$有两种用法:一种是用在dim语句中,如以下两句是相当的:
dim a$
dim a as string
使用这两种方法声明后,a变量就是一个字符串型变量了。以后程序中可以给它赋值,如:a="345",a="asIH",a=b(假定b是另一个字符串变量),等等。
第二种用法,是用在变量名后面中使用,表示这个变量是一个字符串变量。
但这种用法要注意:
1、如果已经定义的a不是字符串变量(如dim a as integer),当使用a$时会出现变量类型与声明的类型不同的错误提示。
2、如果之前没有声明变量类型,而直接使用a$="内容" 并不等于声明了a的变量类型,也就是说它不能代替dim a as string语句。如果在程序前使用了option explicit语句,假如没有声明语句,那么,不管你在使用变量时是否在后面加了$,都会出现变量没有声明的错误提示。
3、如果没有使用option explicit语句,那所有变量都可以不经声明就可以使用,那样的话,你可以直接用a="内容" 或a$="内容"来给a赋值,这时a自动成为了字符串型变量,加不加$的两句起到的作用都是一样的。
通过以上2和3分析,我们会发现其实在程序中变量名后面加$是没有什么用处的,加和不加都一样。那么为什么vb有这么外功能呢?笔者认为这是vb的遗传问题:
老版本的basic(不是visual basic,是它的老祖宗)没有声明变量这一说,只是拿来变量就用,那时规定,数值型变量可以直接用变量名,而字符串变量的名字后面必须加上一个$,以示与数值型的区别,如果不加,就出现错误。后来basic升级为vb,为了使basic编制的程序还能使用,所以vb中还保留了允许在字符串变量名字后面加上$的用法,但加与不加已经没有什么区别了,这也是现在大多数人都不用了的原因。
5.call
Call Statement
call :调用一个过程或函数,如果该函数有参数则函数名后跟括号,括号里边为传递的参数。
6.叹号!与.
在Visual Basic中,惊叹号“!”与圆点“.”都用于给对象命名,但两者语法上却存在很大的区别,这点在编程时尤其需要注意。圆点操作符“.”用来表示对象的属性和方法,在引用时,需要用到对象的Name、圆点和需要的属性或方法。
.的使用方法有两种形式: 1、控件.属性(后者是前者的属性)2、控件.控件(前者是后者的容器)
而!仅有一种形式:控件!控件 (前者是后者的容器)
1.建立一个新项目,并在Form1窗体中增加一个命令控件。
2.双击Form1窗体,编辑Form Load事件并输入:
Form1!Command1.Caption=”Text”
Form1.Command1.Caption=”It Works”
3.运行试项目,这时你就会在Command1命令框中看到字符串It Works。
为了在程序中清楚地界定引用的控件名和该控件的属性或方法,增加程序的可读性,最好使用感叹号“!”。
7. 0、""(空字串)、Null、Empty、与 Nothing 的区别
先回答以下问题吧! 经过以下的叙述之后, 变量 A、B、C、D 分别等于 0、""、Null、 Empty、 Nothing 的哪一个?
Dim A
Dim B As String
Dim C As Integer
Dim D As Object
A 等于 Empty, 因为尚未初始化的「不定型变量」都等于 Empty。但如果检测 A = "" 或 A = 0, 也都可以得到 True 值。
B 等于 "", 因为尚未初始化的非固定长度「字串」都等于 "" 。 但请注意 B<> Null。
C 等于 0, 这个还有问题吗?
D 等于 Nothing, 尚未设定有物件的「物件变量」都等于 Nothing, 但请不要使用 D = Nothing , 而要使用 D Is Nothing 来判断 D 是否等于 Nothing, 因为判断 是否相等的符号是 Is 不是 = 。
最令人迷惑的地方是 Null 这个保留字, 请看以下语句:
Print X = Null
Print X <> Null
结果都是输出 Null(不是 True 也不是 False), 这是因为任何一个运算式只要含有 Null,则该运算式就等于 Null, 实际上想要判断某一数据是否为 Null 绝对不能使用:
If X = Null Then \' 永远都会得到 Null
而要使用:
If IsNull(X) Then
哪一种数据会等于 Null 呢? 除了含有 Null 运算式之外, 就属没有输入任何数据的「数据字段」(在数据库中) 会等于 Null。