"Str2$"变量未定义(学生信息管理系统问题之一)

简介: "Str2$"变量未定义(学生信息管理系统问题之一)

在调试代码的时候,遇到这样的问题“变量未定义”。检查发现,str2$没有定义就使用了。源码没有问题是因为没有强制声明。那么就声明一下吧。


    我首先想到的解决办法(结果证明不对):

  dim str2$ as Boolean

  str2$ = MsgBox("是否删除当前记录?", vbOKCancel, "删除当前记录")

 

定义都无法实现,出现如下错误:

查一下帮助,觉得最后一条比较符合,是缺少变量。

        找出来了是定义的问题,在网上找到了相关的解决办法,但是有一部分行不通。现整理如下(还有一些待解决的问题):

原理:

       msgbox 返回的是int类型,付值给Booleanl类型当然会出错。$用来将变量定义成字符串,如:Dim Str2$。$是String数据类型变量的后缀,它与Boolean相互冲突。数据类型错误,MsgBox返回的是Integer值,如果Str2被定义成布尔值,是不能正确得到返回值的,如果被定义为字符串,会被自动进行类型转换,是个数字的字符串。


解决办法:

1.解决如何定义,如下几种格式均可。

Dim str2 As VbMsgBoxResult

Dim str2$  或者Dim Str2 As String

Dim Str2%  或者 Dim Str2 As Integer

    以上的定义均是以str2作为变量,均可行,这个我还可以理解。

    下面这种方法也可行,我就不知道如何解释了。各位如有高见,请不吝赐教。

Dim str2$

Str2$=MsgBox(……)

2.避免定义一个新变量,直接对MsgBox结果进行判断。

If MsgBox("是否删除当前记录?", vbOKCancel, "删除记录")=vbOk THEN

     另外,还有个高手给了个答案,说“msgbox返回的是数值啊,自己写个小程序调试一下就知道了”,如何写小程序调试??请大家指导。


相关文章
|
6天前
|
C语言
C语言1🔥: 变量,赋值与初始化
C语言1🔥: 变量,赋值与初始化
19 0
|
10月前
学生信息管理系统——出现str2$变量未定义问题
学生信息管理系统——出现str2$变量未定义问题
36 0
|
6天前
|
存储 C语言
C语言共用体成员输出的值与赋值时的不同的原因
在使用C语言的共用体时,如果成员输出的值与之前定义共用体变量的时候所赋值的不同,那么很可能是因为定义共用体变量的时候,为共用体的多个成员赋值造成的。因为共用体虽然允许在同一个内存位置上存储不同的数据类型的变量,但是任何时候都只能有一个成员存储值,也就是说,
55 2
|
7月前
|
Go
Go 语言为什么建议定义零值可用的结构体?
Go 语言为什么建议定义零值可用的结构体?
31 0
|
10月前
学生信息管理系统——出现str2$变量未定义问题(后续/关于数据类型的类型符)
学生信息管理系统——出现str2$变量未定义问题(后续/关于数据类型的类型符)
57 0
|
9月前
|
C语言
【C语言】结构体 -- 结构体的声明 -- 定义和初始化 -- 成员的访问 -- 结构体传参
【C语言】结构体 -- 结构体的声明 -- 定义和初始化 -- 成员的访问 -- 结构体传参
|
9月前
|
Java 数据安全/隐私保护
java实现请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,使c1、c2、c3、c4、c5变为’G’、’l’、’m’、’r’、’e
java实现请编一程序,用赋初值的方法使cl、c2、c3、c4、c5五个变量的值分别为,’C’、’h’、’i’、’n’、’a’,使c1、c2、c3、c4、c5变为’G’、’l’、’m’、’r’、’e
|
10月前
|
Java 编译器 C语言
学C的第四天(各种操作符补充;简单了解多种关键字,define定义常量和宏,结构体)(2)
[被static修饰的变量(静态变量)和全局变量的区别:都存放在静态区中,但静态变量的作用域还是在局部,全局变量的作用域是任意地方,两者生命周期相同,都是程序结束才销毁] 2.修饰全局变量 - 称为静态全局变量 (未使用static时:)
|
10月前
|
C语言
学C的第四天(各种操作符补充;简单了解多种关键字,define定义常量和宏,结构体)(1)
10.6:关系操作符: >:大于 >=:大于等于 <:小于 <=:小于等于 !=:用于测试“不相等” ==:用于测试“相等”
|
10月前
|
C++ Windows
VS2019错误:_main已经在.obj中定义,找到一个或多个重定义符号
VS2019错误:_main已经在.obj中定义,找到一个或多个重定义符号