精华内容
下载资源
问答
  • VBifelseif

    2016-08-11 19:35:00
    切记在then的后面不要加冒号,加了冒号出现else没有if的错误,因为加了冒号表示这个if只是执行then的语句就算执行完了,因此如下 1 Sub test() 2 Dim i As Integer 3 Dim j As Integer 4 Dim a ...

    VB中if和elseif的用法是:

    if...then...elseif...then...else...endif

    切记在then的后面不要加冒号,加了冒号出现else没有if的错误,因为加了冒号表示这个if只是执行then的语句就算执行完了,因此如下

     1 Sub test()
     2 Dim i As Integer
     3 Dim j As Integer
     4 Dim a
     5 For i = 1 To 2:
     6     Debug.Print ("这是第" & Str(i) & "次循环")
     7     a = InputBox("请输入")
     8     
     9     If a = "1" Then
    10         MsgBox ("执行1")
    11         Debug.Print ("执行1")
    12     ElseIf a = "20" Then
    13         MsgBox ("执行2")
    14         Debug.Print ("执行2")
    15     ElseIf a = "40" Then
    16         MsgBox ("执行3")
    17         Debug.Print ("执行3")
    18     ElseIf a = "100" Then
    19         MsgBox ("执行4")
    20         Debug.Print ("执行4")
    21     ElseIf a = "300" Then
    22         MsgBox ("执行5")
    23         Debug.Print ("执行5")
    24     Else:
    25         MsgBox ("什么都没有执行")
    26         Debug.Print ("什么都没有执行")
    27     End If
    28 Next i
    29 End Sub

    如果是加了冒号那么只能是一个if:

     1 Sub test()
     2 Dim i As Integer
     3 Dim j As Integer
     4 Dim a
     5 For i = 1 To 2:
     6     Debug.Print ("这是第" & Str(i) & "次循环")
     7     a = InputBox("请输入")
     8     
     9     If a = "1" Then:
    10         MsgBox ("执行1")
    11         Debug.Print ("执行1")
    12 
    13 Next i
    14 End Sub

    如果是以下这样子就会报错:

     1 Sub test()
     2 Dim i As Integer
     3 Dim j As Integer
     4 Dim a
     5 For i = 1 To 2:
     6     Debug.Print ("这是第" & Str(i) & "次循环")
     7     a = InputBox("请输入")
     8     
     9     If a = "1" Then:
    10         MsgBox ("执行1")
    11         Debug.Print ("执行1")
    12     ElseIf a = "2" Then:
    13         MsgBox ("执行2")
    14 Next i
    15 End Sub

     

    转载于:https://www.cnblogs.com/TTyb/p/5762324.html

    展开全文
  • VB.NETUPDATE语句执行后没有报错,数据库也没有更新,但是把语句放在Textbox提出来,在SQL Server直接执行是成功的 与数据库是可以连接的,在其他窗体也可以执行UPDATE语句、INSERT语句,SELECT语句 ``` ...
  • If DGVDisplay.CurrentCell IsNot Nothing Then  ' do something else  msgbox("当前为选中元素") end if

    If DGVDisplay.CurrentCell IsNot Nothing Then

        ' do something

    else

        msgbox("当前没有被选中元素")

    end if

    展开全文
  • Else strsql = "select * from 基础数据_组合项目表 a ,基础数据_组合项目类型表 b where a.组合项目类型 =b.组合项目类型名称 " strsql = strsql & " and a.组合项目类型 ='" & frm基础数据_添加套餐项目.cbo...
  • VB常见错误和难点分析

    千次阅读 2018-09-10 19:41:42
    否则,在运行时系统会显示”块 If没有End If”的编译错误。同样对Select Case语句也应有与其相对应的End Select语句。 2.多边选择ElseIf关键字的书写和条件表达式的表示 多边选择ElseIf子句的关键字ElseIf之间不...

    1.在选择结构中缺少配对的结束语句

    对多行式的If块语句中,应有配对的End If语句结束。否则,在运行时系统会显示”块 If没有End If”的编译错误。同样对Select Case语句也应有与其相对应的End Select语句。

    2.多边选择ElseIf关键字的书写和条件表达式的表示

    多边选择ElseIf子句的关键字ElseIf之间不能写有空格,即不能写成Else If。

    在多个条件表达式的表示时,应从最小或最大的条件依次表示,以避免条件的过滤。例如,已知输入某课程的百分制成绩mark,要求显示对应五级制的讦定,评定条件如下:

    有以下几种表示方式,语法上都没有错,但执行后结果有所不同,请分析哪些正确? 哪些错误?

    下面给出的答案中,方法一、二、五正确,其余错误,请分析各自的原因。
    这里写图片描述

    3.Select Case语句的使用

    (1) “表达式列表i” 中不能使用”变量或表达式”中出现的变量。

    例如,上述多边选择的例子改为Select Case语句实现,方法一Case子句中出现变量mark,运行时不管mark的值多少,始终执行Case Else子句,运行结果不正确;方法二、方法三正确。

    这里写图片描述
    (2) 在”变量或表达式”中不能出现多个变量。

    实验三第5题对三门课程奖学金的判断,只能用If语句的多边选择,而不能用SelectCase语句实现。例如,有人用如下语句表示:

       Select Case markl,mark2,mark3
    
              Case (markl+mark2+mark3)/3>=95
    
                     Print"一等奖"
    
       End Select
    

    这样就会在 “Select Case markl,mark2,mark3” 语句行出现编辑错误, 同时

    Case (markl+mark2 +mark3)/3>=95书写也错误。

    第四章 常见错误和难点分析

    1. 不循环或死循环的问题主要是循环条件、循环初值、循环终值、循环步长的设置有问题。

    例如,以下循环语句不执行循环体:

    For i=10 To 20 Step-1 ’ 步长为负,初值必须大于等于终值,才能循环

    For i=20 To10 ’ 步长为正,初值必须小于等于终值,才能循环

    Do While False ’ 循环条件永远不满足,不循环

    例如,以下循环语句死循环:

    For i=10 To 20 Step 0 ’ 步长为零,死循环

    Do While 1 ’ 循环条件永远满足,死循环

    2.循环结构中缺少配对的结束语句

    For…Next语句没有配对的Next语句;Do语句没有一个终结的Loop语句等。

    3.循环嵌套时,内外循环交叉

       For I=1 to 4
    
              For j=1 to 5
    
              …
    
              Next i
    
       Next j
    

    上述循环的交叉运行时显示”无效的Next控制变量引用”。

    4.累加、连乘时,存放累加、连乘结果的变量赋初值问题

    (1) 一重循环

    在一重循环中,存放累加、连乘结果的变量初值设置应在循环语句前。

    例如,求1~100的3的倍数和,结果放入Sum变量中,如下程序段,输出结果如何?应作如何改进?

       Private SubForm_Click()
    
              For i=3 To 100 Step 3
    
                     Sum=0
    
                     Sum=Sum+i
    
              Next i
    
              Print Sum
    
       End Sub
    

    (2) 多重循环

    在多重循环中,存放累加、连乘结果的变量初值设置放在外循环语句前,还是内循环语句前,这要视具体问题分别对待。

    例如,期末30位学生参加三门课程的考试,求每个学生的三门课程的平均成绩如下程序能否实现?

       aver=0
    
       For i=1 To 30
    
              For j=1 To 3
    
                     m=InputBox("输入第"&j&"门课的成绩")
    
                     aver=aver+m
    
              Next j
    
              aver=aver/3
    
              Print aver
    
       Next I
    

    第五章 常见错误和难点分析

    1.Dim数组声明

    有时用户为了程序的通用性,声明数组的上界用变量来表示,如下程序段:

     n=InputBox("输入数组的上界")
    
     Dim a(1 To n) As Integer
    

    程序运行时将在Dim语句处显示”要求常数表达式”的出错信息。即Dim语句中声明的数组上,下界必须是常数,不能是变量。

    解决程序通用的问题,一是将数组声明的很大,这样浪费一些存储空间;二是利用动态数组,将上例改变如下:

    Dim a() As Integer
    
     n=InputBox ("输入数组的上界")
    
     ReDim a(1 To n)As Integer
    

    2.数组下标越界

    引用了不存在的数组元素,即下标比数组声明时的下标范围大或小即为越界。例如,要形成有如下30项的斐波那契数列:

    1,1,2,3,5,8,13,21,34,…,317811,514229,832040

    正确的程序段如下:

    Dim a(1 To 30) As Long, i%

    若将For i=3 To 30改为For i=1 To 30,程序运行时会显示”下标越界”的出错信息,因为开始循环时i=l,执行到循环体语句a(i)=a(i-2)+a(i-1),数组下标i-2、i-1均小于下界1。

    同样若将上例:a(i)+a(i-2)+a(i-1) 语句改为:a(i+2)=a(i)+a(i+1)

    程序运行时也会显示”下标越界”的出错信息,这时是数组下标大于上界30。

    3.数组维数错

    数组声明时的维数与引用数组元素时的维数不一致。例如,下程序段为形成和显示3×5的矩阵:

      Dim a(3,5) As Long
    
              For i=1 To 3
    
                     For j=1 To 5
    
                            a(i)=i*j
    
                            Print a(i);"";
    
                     Next j
    
              Print
    
       Next i
    

    程序运行到a(i)=i*j语句时出现”维数错误”的信息,因为在Dim声明时是二维数组,引用时的一个下标。

    4.Aarry函数使用问题

    Aarry函数可方便地对数组整体赋值,但此时只能声明Variant的变量或仅由括号括起的动态数组。赋值后的数组大小由赋值的个数决定。

    例如,要将1,2,3,4,5,6,7这些值赋值给数组a,下表列出了三种错误及相应正确的赋值方法。

    Aarry函数表示方法
    这里写图片描述
    Dim aa=Array(1,2,3,4,5,6,7)

    5.如何获得数组的上界、下界

    Aarry函数可方便地对数组整体赋值,但在程序中如何获得数组的-上界、下界,以保证访问的数组元素在合法的范围内,可使用UBound和LBound函数来决定数组访问。

    在上例中,若要打印a数组的各个值,可通过下面程序段实现:

    For i=Lbound(A) To Ubound(A)

          Print a(i)
    

    Next l

    6.给数组赋值

    VB6.0提供了可对数组整体赋值的新功能,方便了数组对数组的赋值操作。但真正使用不那么方便,有不少限制。数组赋值形式如下:数组名2=数组名1

    这里的数组名2,实际上在前面的数组声明时,只能声明为Varian的变量,赋值后的数组2的大小、维数、类型同数组名1;否则,若声明成动态或静态的数组,例如:

    Dim数组名2() 或Dim数组名2 (下标)

    程序在运行到上述赋值语句时显示”不能给数组赋值”的出错信息。

    第五章 数 组

    5.1 知识要点

    1.数组的概念

    数组:存放具有相同性质的一组数据,也就是数组中的数据必须是同一个类型和性质。

    数组元素:数组中的某一个数据项。数组元素的使用同简单变量的使用。

    2.静态数组的声明

    静态数组:在声明时已确定了数组元素个数。

    声明形式:Dim数组名([下界To]上界[,[下界To]上界[,…]])As 类型

    此语句声明了数组名、数组维数、数组大小、数组类型。

    [注意] 下界、上界必须为常数,不能为表达式或变量:省略下界,默认为0,也可用Option Base语句重新设置下界的值。

    3.动态数组的声明

    声明形式: Dim数组名 ()

            ReDim  [Preserve]数组名([下界To]上界[,[下界To]上界[,…]])
    

    [注意]

    此时的上界、下界可以是赋了值的变量或表达式。若有Preserve关键字,表示当改变原有数组最末尾的大小时,使用此关键字可以保持数组中原来的数据。

    4.控件数组

    即相同类型的控件组成的数组。

    控件数组的建立:在设计时的窗体上,通过对某控件的复制和粘贴操作:在程序运行时通过Load方法实现。

    控件数组元素:由控件的Index属性值表示数组的F标。

    5.数组的操作

    应掌握的基本操作有:数组初始化、数组输入、数组输出、求数组中的最大(最小)元素及下标、求和、平均值、排序和查找等。

    5.2 常见错误和难点分析

    1.Dim数组声明

    有时用户为了程序的通用性,声明数组的上界用变量来表示,如下程序段:

     n=InputBox("输入数组的上界")
    
     Dim a(1 To n) As Integer
    

    程序运行时将在Dim语句处显示”要求常数表达式”的出错信息。即Dim语句中声明的数组上,下界必须是常数,不能是变量。

    解决程序通用的问题,一是将数组声明的很大,这样浪费一些存储空间;二是利用动态数组,将上例改变如下:

    Dim a() As Integer
    
     n=InputBox ("输入数组的上界")
    
     ReDim a(1 To n)As Integer
    

    2.数组下标越界

    引用了不存在的数组元素,即下标比数组声明时的下标范围大或小即为越界。例如,要形成有如下30项的斐波那契数列:

    1,1,2,3,5,8,13,21,34,…,317811,514229,832040

    正确的程序段如下:

    Dim a(1 To 30) As Long, i%

    若将For i=3 To 30改为For i=1 To 30,程序运行时会显示”下标越界”的出错信息,因为开始循环时i=l,执行到循环体语句a(i)=a(i-2)+a(i-1),数组下标i-2、i-1均小于下界1。

    同样若将上例:a(i)+a(i-2)+a(i-1) 语句改为:a(i+2)=a(i)+a(i+1)

    程序运行时也会显示”下标越界”的出错信息,这时是数组下标大于上界30。

    3.数组维数错

    数组声明时的维数与引用数组元素时的维数不一致。例如,下程序段为形成和显示3×5的矩阵:

      Dim a(3,5) As Long
    
              For i=1 To 3
    
                     For j=1 To 5
    
                            a(i)=i*j
    
                            Print a(i);"";
    
                     Next j
    
              Print
    
       Next i
    

    程序运行到a(i)=i*j语句时出现”维数错误”的信息,因为在Dim声明时是二维数组,引用时的一个下标。

    4.Aarry函数使用问题

    Aarry函数可方便地对数组整体赋值,但此时只能声明Variant的变量或仅由括号括起的动态数组。赋值后的数组大小由赋值的个数决定。

    例如,要将1,2,3,4,5,6,7这些值赋值给数组a,下表列出了三种错误及相应正确的赋值方法。

    Aarry函数表示方法

    这里写图片描述

    5.如何获得数组的上界、下界

    Aarry函数可方便地对数组整体赋值,但在程序中如何获得数组的-上界、下界,以保证访问的数组元素在合法的范围内,可使用UBound和LBound函数来决定数组访问。

    在上例中,若要打印a数组的各个值,可通过下面程序段实现:

    For i=Lbound(A) To Ubound(A)

          Print a(i)
    

    Next l

    6.给数组赋值

    VB6.0提供了可对数组整体赋值的新功能,方便了数组对数组的赋值操作。但真正使用不那么方便,有不少限制。数组赋值形式如下:数组名2=数组名1

    这里的数组名2,实际上在前面的数组声明时,只能声明为Varian的变量,赋值后的数组2的大小、维数、类型同数组名1;否则,若声明成动态或静态的数组,例如:

    Dim数组名2() 或Dim数组名2 (下标)

    程序在运行到上述赋值语句时显示”不能给数组赋值”的出错信息。

    申明
    非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!
    博文欢迎转载,但请给出原文连接。
    转自:http://wwww.hyit.edu.cn/edu/vb/study/index.htm

    展开全文
  • 写了一个21点扑克牌的程序,用VB.NET写的,需要你找出其中的bugs,尽可能多 的找出,并写明错误原因 由于小弟写C#的,对VB.NET实在不熟悉,还希望有经验前辈帮忙看看 小弟不胜感觉 代码一共有6个类 分别是 ...
  • VB课程设计俄罗斯方块

    热门讨论 2011-02-25 10:46:55
    则消除这行的方块,并且使上面的方块自由下落,其中,方块向下的速度是有时钟控件控制的,在游戏,用户也可以使用向下键加快下落速度,定义一个变量,对消除的函数进行记录,最后就可以得出用户的分数,用if 语句...
  • vb Script参考文档

    2009-07-28 22:13:02
    If...Then...Else 语句 根据表达式的值,有条件地执行一组语句。 IgnoreCase 属性 设置或返回 Boolean 值,指示模式搜索是否区分大小写。 Imp 运算符 执行两个表达式的逻辑隐含。 初始化事件 发生在创建相关类的...
  • VB程序设计综合复习题 1、叙述Visual Basic的特点。 2、当窗体上有三个文本框和一个命令按钮,若程序运行时,焦点定位在第三个文本框(Text3)处,应对何控件的什么属性进行何种设置? 3、若要对窗体上的三个文本框...
  • VB拦截Windows Explorer删除进程,内含API HOOK,源代码:倒霉蛋儿,程序有时候也会窗口勾挂失败!  勾住了SHFileOperation等函数,DLL用Delphi写的C会的太少,查了半天才知道原来explorer是用SHFileOperation删除...
  • 代码如下,如何让myFiles的PDF文件由默认排序更改为由pdf创建时间排序? ``` Private Sub Command1_... MsgBox "在下面的路径中没有找到PDF文件 " & vbLf & myPath, vbExclamation, "取消" End If End Sub ```
  • '在工程新建一模块,并将以下代码加入到该的模块(即module1.bas) Public tmpDataGrid As DataGrid '用与确定要实现滚动的DataGrid控件 Public tmpDataGridRowNum As Long '有多少行数据 Public Const GWL_...
  • Private Sub Command1_Click()'试用 ...VB版的完全免费的软件保护控件(ocx),可以轻松让你的软件具有注册功能,可以关联硬盘、CPU,U盘(开发),有代码少、加密强度大以及使用非常方便的特点,欢迎大家使用.
  • '查询数据库,并将结果放进Adodc1.RecordSource Adodc1.RecordSource = "select * from tb_enter where vchUserName = ' " & Combo1.Text & " ' " Adodc1.Refresh '刷新 '语法没问题,但是不会执行到这一步...
  • ×在C#程序使用循环和语句指定执行流条件语句1)if语句if(condition)...与VB不同的,C#中没有EndIF对应的语句。还可以单独使用if语句,不加else语句。也可以合并else if子句,测试多个条件。2)switch语句switch…ca

    ×在C#程序中使用循环和语句指定执行流

    条件语句
    1)if语句
    if(condition)
       statement(s)
    else
       statement(s)
    如果要在条件中执行多个语句,就需要用花括号({…})把这些语句组成一个块。与VB不同的,C#中没有EndIF对应的语句。还可以单独使用if语句,不加else语句。也可以合并else if子句,测试多个条件。
    2)switch语句
    switch…case 语句适于从一组不同的分支中选择一个执行分支。
    switch(integerA)
    {
            case 1:
                    Console.WriteLine("integerA=1");
                    break;
            case 2:
                    Console.WriteLine("integerA=2");
                    break;
            case 3:
                    Console.WriteLine("integerA=3");
            default:
                    Console.WriteLine("integerA is not 1,2 or 3");
                    break;
    }
    循环
    1)for循环
    例:
        for(int i=0;i<100;i=i+1) //this is equivalent to For i=0 To 99 in VB.
            {
                    Console.WriteLine(i);
            }
    2)while循环
    与for循环一样,while也是一个预测循环,其语法是类似的,但while循环只有一个表达式。与for循环不同的是,while循环最常用于下列情况:不知道重复执行一个语句或语句块的次数.
    while(condition)
            statement(s)

    3)do…while循环
    do…whlie循环是while循环的后测试版本。该循环的测试条件要在执行完循环体之后进行。因此do…while循环适合于至少执行一次的循环体情况。
    bool condition;
    do
    {
            MustBeCalledAtLeastOnce();
            condition=CheckCondition();
    }while(condition);

    4)foreach 循环
    foreach循环是我们讨论的最后一种C#循环机制。foreach 循环可以迭代集合中的每个项目。
    例:
    foreach(int temp in arrayOfInts)
    {
            Console.WriteLine(temp);
    }
    要注意的一个要点是不能改变集合中的各项目(上面temp)的值。如果需要在集合的项目中迭代,并改变他们的值,就应使用for循环。

    展开全文
  • delphiin的使用

    千次阅读 2013-12-31 16:24:29
    Delphi的集合不同于数组或者List或者VB的Collection,它的元素是没有顺序,所以不存在某个集合的第3项的说法。 你只能用in判断某个元素是否在Delphi的集合。 如 if 3 in set1 then ... else ...  例如
  • C#使用条件运算符

    2014-05-07 11:14:14
    但是受VB程序影响,总是使用IIF,实际上C#中没有IIF。 C#的条件运算符(?:)根据布尔型表达式的值返回两个值的一个。条件运算符的格式如下: condition ? first_expression : second_expression;如果条件为true...
  • ftp下载文件过程,对v3格式文件进行转换,转成wav格式,并返回给页面,下载和播放。 怎么实现。网上的本地转换代码确实可用,但是我对字节流、转码这一块不太懂,不知道有 没有大神来看看,怎么写? 下面是本地v3...
  • vb6.0写用户管理窗体, “注册用户”运行正常,注册了一个名叫"lucy "的用户,然后点击“删除现有用户”进行测试“删除”的运行情况。 ![图片说明]...
  •  很多人觉得学习Visual Basic没有用,事实上,Visual Basic系列的编程语言包括VB、VBA、VBScript等,可以写网页、办公自动化编程、应用编程。在一些其他公司的应用软件也是可以用VBA的,例如Corel Draw。这里举几...
  • 常见错误和难点分析

    2007-11-23 16:20:00
    轉自:http://wwww.hyit.edu.cn/edu/vb/study/index.htm 常见错误和难点分析 ...块 If没有End If"的编译错误。同样对Select Case语句也应有与其相对应的End Select语句。 2.多边选择ElseIf关键字...
  • 要想使用QTP进行自动化测试,必须了解VBScript这门语言,对于使用过ASP或VB开发的人来说,VBScript已经再熟悉不过了,但是没有接触过VBScript的同学也不要灰心,因为这门语言简单易学。 7. 条件语句 8. 循环语句 ...
  • ElseIf UCase(Left(g_strSave, 2)) <> "AT" Then '如果开头字符不是AT+,那么需要搜索一下; iTmp1 = InStr(g_strSave, "+") '首先查找AT指令响应标志"+" If iTmp1 > 0 Then '如果找到了"+" iTmp2 = InStr(g_...
  • xml中没有设置那个什么过滤那个 3下面是framework。js的代码,看不懂 ``/* * JavaScript Validation Framework * * Author: Michael Chen(mechiland) on 2004/03 * This software is on the ...
  • #销售数据存在没有建立合同的商品信息,审核失败 SELECT COUNT(1) INTO vCNT FROM FD121 A,B036 B LEFT OUTER JOIN B050 C ON B.B040011 = C.B04001 AND B.B050011 = C.B05001 WHERE A.B03001 = B.B03001 AND ...
  • else if(i > 0 && i ) return 1; else return Foo(i -1) + Foo(i - 2); } } 4.C#的委托是什么?事件是不是一种委托? 答 : 委托可以把一个方法作为参数代入另一个方法。 委托可以理解为指向一个函数的...

空空如也

空空如也

1 2 3
收藏数 42
精华内容 16
关键字:

vb中else没有if