VB运行时,菜单中点击“Open”控件显示“子程序或函数未定义”

VB运行时,菜单中点击“Open”控件显示“子程序或函数未定义”,第1张

Private

Sub

Open_Click()

每次点击"open"时都会蹦出来一小框“子程序或函数未定义”

Data1DatabaseName

=

F:

实验九

"\studentmdb"

Data1RecordSource

=

"基本情况"

Data1Refresh

End

Sub

你的这段代码中的这句话Data1DatabaseName

=

F:

实验九

"\studentmdb"

有错误,传的是字符串应该Data1DatabaseName

="

F:

\实验九\studentmdb"

这样才把数据库的名字赋给它另外

Private

Sub

Open_Click()

每次点击"open"时都会蹦出来一小框“子程序或函数未定义”

msgbox

"Hello"

'Data1DatabaseName

=

F:

实验九

"\studentmdb"

'Data1RecordSource

=

"基本情况"

'Data1Refresh

End

Sub

你再把这3句注释一下,只加一个msgbox看看执行还出那个窗口么,如果不出就是里边的代码错误了,再把刚刚那句错了的语句改了试试看,有问题可以继续讨论

Private Sub Command1_Click()

Dim l%, m%, n%, o%, x%, y%, A%, B%, C%, D%, i%, j%

n = 7

m = 14

l = 14

o = 21

For i = 1 To 6

    n = n + 1

    A = Controls("Text" & n) - Text7

    For j = 1 To 6

        m = m + 1

        B = Controls("Text" & m)

        If B = A Then

            For x = 1 To 6

                l = l + 1

                C = Controls("Text" & l) - Text21

                For y = 1 To 6

                    o = o + 1

                    D = Controls("Text" & o)

                    If D = C Then

                        Print D

                    End If

                Next

            Next

        End If

    Next

Next

End Sub

1、打开VB60,新建一个工程,在窗体中添加一个命令按钮,caption分别改为“调用函数”,将窗体Form1的caption属性改为“VB60自定义函数”,将界面设置成下图:

2、双击窗体Form1,进入代码编辑窗口,单击左侧下拉三角形,选择通用。

3、在通用段输入如下代码:

Public Sub F1(n%, ByVal m%)

n = n Mod 10

m = m \ 10

End Sub

并将Form_Load事件删除。

以上代码就定义了函数F1,其中包括两个参数,类型均是整型,%表示 短整型,Byval表明了值传递方式,表示值传递,与地址传递相对应。这也是默认的传递方式。

4、双击“调用函数”命令按钮,进入代码编辑窗口,输入如下代码:

Dim x%, y%

x = 12: y = 34

Call F1(x, y)

Print x, y

yongcall进行函数的调用,参数与自定义函数中参数一一对应。

5、然后关闭代码窗口,按下F5运行程序,单击“调用函数”命令按钮,在窗体中打印输出2   34,可以自己想下为什么是这个结果,这个结果和函数的值传递方式有关,

原因:

vb将你的数组o默认为有一个sub(过程)或者function(函数)的名字就做o,你的数组下标被认为是向过程或函数传输的参数。

然后在你的代码里vb没有找到名称叫做o的过程或函数。所以给出这个错误的提示。

解决方法:

你要做的是告诉vbo是一个数组,也就是声明数组。

声明数组应该根据数组的作用范围来决定声明语句的位置、根据需要决定声明的数据类型。

你这个form_load过程显然是数组初始化,准备在别的地方使用,所以至少要声明为窗体级数组。因为初始化是0,难以看出类型,要是整数就用integer,要是有小数就用single,要是对精度要求超过7位有效数的用双精度……

综上,以整数为例,在所有代码的最前面写一行

dim o(1 to 4)as integer

问题就会得到解决。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12153973.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存