社区

VB基础类 帖子详情 VB程序为什么不能正常运行 Misaya灬岳桦 2019-05-13 07:27:02 简单介绍一下这个程序下面是一个窗体的源代码

毕设差不多是照搬了一本书的一个程序 比较大 敲完书上的源代码后 各种修改后无报错(其实也就改了声明变量的访问权限 源代码是private 改成了public 不然一直报子程序或函数未定义)改了之后就不报了 下面代码只是一个部分 还有一部分全部是自定义的函数 我放到模块里面了 FORM1.Show 其实我还是不太懂为什么要这一步 因为我觉得没有用 按照设想 应该是一运行程序 会弹出InputBox 就如下面代码说的一样 然后一步一步来 也不用在窗体添加什么控件 (我是这么想的 ) 可是不报错运行 只出来一个FORM1的空白页面 并不会在往下运行 请大佬指点 各种搜也搜不出来 毕设比较着急 有偿我也是能接受的 主要太小白了 .....希望大佬帮帮忙

我的QQ是 957844622

下面代码是form2的全部代码和 模块里面的一个自定义函数的一部分 主要是太长了就没复制完 就这么多分...希望有大神帮忙...有偿.....

Private Sub Form_Load()

Form1.Show

FileName = InputBox("输入保存计算成果文件名")

FileName = App.Path & FileName

Open FileName For Output As #2

Inp '调用子程序调入数据

If g = "p" Then BB_17

f = 2 * (z - v) - 1: f1 = f + d0 + t0

ReDim c(f1, f1), b1(f), b2(f)

pq1: For i = 0 To f1: For j = 0 To f1: c(i, j) = 0: Next j: Next i

If g = "p" Then

ReDim l(f1)

For i = 0 To f1: l(i) = 0: Next i: ll = 0

End If

If m2 > 0 Then

For a = st + 1 To z

c1 = 0

For i = 0 To f: b2(i) = 0: Next i

p1 = q(a - st): q1 = q(a + 1 - st) - 1

For o = p1 To q1

If aa = "aal" Then

b = h1(o): m = 0

Else

BB_7

End If

bb = "l": cc = "n": BB_10: p = 1

If g = "p" Then

If r(o) < 0.01 Then e2 = t

e3 = t - e2 - r(o)

If e3 < -180 Then e3 = e3 + 360

e3 = e3 * 3600: ll = ll + e3 * e3: e1 = e1 + e3

End If

BB_13

For i = 0 To f: b2(i) = b2(i) + b1(i): Next i

If m > 0 And a < b Then BB_11: BB_13

Next o

cc = "n": p = -1 / (q1 - p1 + 1)

For i = 0 To f: b1(i) = b2(i): Next i

If g = "p" Then e3 = e1: ll = ll + p * e3 * e3

BB_13

Next a

End If

If aa = "aa1" Then

For a = 1 To a

For o = n(a - 1) To n(a) - 1

cc = "n": BB_7

If a < b Then BB_11: BB_13

Next o

Next a

End If

If t0 > 0 Then

cc = "y": bb = "1"

For i = 1 To t0

a = Fix(ha(i)): b = CInt((ha(i) - a) * 100): BB_10: p = 1

If g = "p" Then

e3 = t - a1(i)

If e3 < -180 Then e3 = e3 + 360

e3 = e3 * 3600

If v = 1 Then ll = ll + e3 * e3

End If

m = d0 + i: BB_13

Next i

End If

For i = 1 To f1

For j = i To f1

For k = 0 To i = 1

c(i, j) = c(i, j) - c(k, i) * c(k, j) / c(k, k)

Next k

Next j

Next i

For k = f1 To 0 Step -1

e1 = -1

For i = k To 0 Step -1

If i < k Then e1 = 0

For j = i To f1 - 1

If j + 1 < k Then

e2 = c(k, j + 1)

Else

e2 = c(j + 1, k)

End If

e1 = e1 + c(i, j + 1) * e2

Next j

c(k, i) = -c1 / c(i, i)

Next i

Next k

If g = "p" Then

For i = 0 To f1

e1 = 0

For j = 0 To f1

If i < j Then

e2 = c(j, i)

Else

e2 = c(i, j)

End If

e1 = e1 - e2 * l(j)

Next j

If i < -f Then

If (i + 2) / 2 - Int((i + 2) / 2) Then

x(i / 2 + 1 + v) = x(i / 2 + 1 + v) + e1 / 100

Else

y((i - 1) / 2 + 1 + v) = y((i - 1) / 2 + 1 + v) + e1 / 100

End If

End If

ll = ll + e1 * l(i)

Next i

If m2 = 0 Then m2 = z

e = m1 + m2 + t0 - 3 * z + 2 * v

m0 = Sqr(Abs(ll / e))

Else

m0 = mr

End If

Print #2, Spc(5); "单位权中误差=+/-"; Format(m0, "#.0000")

If g = "p" Then

Print #2, Spc(5); "编号纵坐标平差值(m)横坐标平差值(m)"

For i = 1 To z

Print #2, Spc(7); i; Spc(10); Format(x(i), "#.0000"); Spc(12); Format(y(i), "#.0000")

Next i

End If

Print #2, "起点号 终点号 方位角方位角中误差边长边长中误差边长相对中误差分母"

For a = st + 1 To z

If aa = "aa1" Then

j = n(a - 1): k = n(a) - 1

Else

j = q(a - st): k = q(a - st + 1) - 1

End If

For o = j To k

b = CInt(Fix(h(o)))

If a > b Or (a <= v And b <= v) Then

Else

bb = "1": BB_10: BB_12

Print #2, Spc(2); a; Spc(3); b;

Print #2, Spc(4); Format(dms(t), "#.000000"); Spc(6); Format(e7, "#.000")

If Abs(e6) < 0.000001 Then

Print #2,

Else

Print #2, Spc(9); Format(100 * Fix(s / e7), "#")

End If

End If

Next o

Next a

Print #2, Spc(5); "待定点号 Mx My M E F Q "

For k = v + 1 To z

p1 = 2 * (k - v - 1): e1 = Abs(c(p1, p1))

e2 = Abs(c(p1 + 1, p1 + 1)): e3 = c(p1 + 1, p1)

Print #2, Spc(7); k

e4 = m0 * Sqr(e1): e5 = m0 * Sqr(e2): e6 = Sqr(e4 ^ 2 + e5 ^ 2)

Print #2, Spc(7); Format(e4, "#.000")

Print #2, Spc(4); Format(e5, "#.000")

Print #2, Spc(4); Format(e6, "#.000")

If e1 - e2 <> 0 Then

BB_15

Print #2, Spc(4); Format(e4, "#.000")

Print #2, Spc(3); Format(e5, "#.000")

Print #2, Spc(5); Format(dms(e7), "#.0000")

Else

Print #2,

End If

Next k

Print #2, Spc(5); "起点号终点号相对误差椭圆长半径相对误差椭圆短半径长半径方向"

701: jk = InputBox("以XX,XX形式输入需计算相对误差椭圆的两待定点点号" & vbCrLf & "如输入0则转入下一步计算")

If jk <> 0 Then BB_14: GoTo 701

Close #2

sWord '调用子程序在word上显示计算成果

End

End Sub

还有一个Inp自定义函数

Sub Inp() '调入数据并保存

strDataFileName = InputBox$(" 数据库文件名")

dbPath = App.Path & strDataFileName

Set db = OpenDatabase(dbPath)

strSQL = "SELECT * FROM tablel"

Set Rs = db.OpenRecordset(strSQL)

aArray = Rs.GetRows(7)

v = aArray(1, 0)

z = aArray(2, 0)

m1 = aArray(3, 0)

m2 = aArray(4, 0)

t0 = aArray(5, 0)

aa = aArray(6, 0)

g = aArray(7, 0)

If g = "平差与精度评定" Then

Print #2, Spc(27); "平差网平差成果"

ElseIf g = "精度估算" Then

Print #2, Spc(27); "平面网精度估算成果"

End If

Print #2, Spc(5); "已知点数="; v

Print #2, Spc(5); "总点数="; z

Print #2, Spc(5); "已知边和观测边数="; m1

Print #2, Spc(5); "方向观测数="; m2

Print #2, Spc(5); "已知坐标方位角数="; t0

Print #2, Spc(5); "网型:"; aa

Print #2, Spc(5); "平差与精度评定还是精度估算:"; g

If aa = "三边网" Then

aa = "aa1"

ElseIf aa = "三角网" Then

aa = "aa2"

ElseIf aa = "导线网与边角网" Then

aa = "aa3"

End If

If g = "平差与精度评定" Then g = "p"

If g = "精度估算" Then g = "q"

If g = "p" Then

dd = InputBox("一般网还是特殊网" & vbCrLf & "一般网按n健,特殊网按y键")

Print #2, Spc(5); "一般网还是特殊网"

If dd = "n" Then

Print #2, "一般网"

ElseIf dd = "y" Then

Print #2, "特殊网"

End If

End If

If m1 > 0 Then

d0 = Val(InputBox("已知边数"))

mc = Val(InputBox("固定误差"))

pp = Val(InputBox("比例误差"))

Print #2, Spc(5); "已知边数="; d0

Print #2, Spc(5); "固定误差="; mc

Print #2, Spc(5); "比例误差="; pp

End If

If aa = "aa3" Then

st = Val(InputBox("导线网中未设站观测的已知点数"))

Print #2, Spc(5); "导线网中未设站观测的已知点数="; st

Else

st = 0

End If

If m2 < 1 Then '纯测边网取1KM边长观测作为单位权观测

mr = mc + pp / 10

Print #2, Spc(5); "单位权中误差先验值="; mr

ElseIf m1 < 1 And g = "p" Then

ElseIf g = "q" Or (m1 > 0 And m2 > 0) Then '如果精度估算或有边和方向两种观测量

mr = Val(InputBox("输入方向观测单位权中误差先验值"))

Print #2, Spc(5); "单位权中误差先验值="; mr

End If

Print #2, Spc(5); "编号纵坐标(m)横坐标(m)"

ReDim x(z), y(z)

If g = "q" Then

vz = z

Else

vz = v

End If

strSQL = "SELECT*FROM table2"

Set Rs = db.OpenRecordset(strSQL)

aArray = Rs.GetRows(3 * vz)

For j = 0 To UBound(aArray, 2)

x(j + 1) = aArray(1, j): y(j + 1) = aArray(2, j): Print #2, Spc(7); j + 1

Print #2, Spc(11); Format(x(j + 1), "#.0000"); Spc(9); Format(y(j + 1), "#.0000")

Next j

If dd = "y" And g = "p" Then

ReDim x0(v), y0(v)

For j = 1 To v

x0(j) = x(j): x(j) = 0: y0(j) = y(j): y(j) = 0

Next j

End If

If t0 > 0 Then

Print #2, Spc(5); "编号起点号。终点号坐标方位角(dms)"

If g = "q" Then

i = 2: ReDim ha(t0)

ElseIf g = "p" Then

i = 3: ReDim a1(t0), ha(t0)

End If

...全文

2060 14 打赏 收藏 VB程序为什么不能正常运行 简单介绍一下这个程序下面是一个窗体的源代码 毕设差不多是照搬了一本书的一个程序 比较大 敲完书上的源代码后 各种修改后无报错(其实也就改了声明变量的访问权限 源代码是private 改成了public 不然一直报子程序或函数未定义)改了之后就不报了 下面代码只是一个部分 还有一部分全部是自定义的函数 我放到模块里面了 FORM1.Show 其实我还是不太懂为什么要这一步 因为我觉得没有用 按照设想 应该是一运行程序 会弹出InputBox 就如下面代码说的一样 然后一步一步来 也不用在窗体添加什 复制链接

扫一扫 分享 转发到动态 举报 AI 作业

写回复 配置赞助广告取 消

确 定

用AI写文章 14 条回复 切换为时间正序 请发表友善的回复… 发表回复 打赏红包 需支付: 0.00 元 取 消 确 定 Misaya灬岳桦 2019-05-20 打赏举报 回复 今天才有空弄了一下....算是弄明白了这个东西 结贴结贴 以后还请各位大神朵朵关照 ElectricKang 2019-05-15 打赏举报 回复 这个应该是缺少文件了吧 milaoshu1020 2019-05-15 打赏举报 回复 打开工程时提示缺少Module1.bas文件;

Misaya灬岳桦 2019-05-15 打赏举报 回复 今天先写论文了 等明天再给各位大神结贴... 再次感谢 Misaya灬岳桦 2019-05-14 打赏举报 回复 引用 10 楼 舉杯邀明月 的回复:[quote=引用 9 楼 Misaya灬岳桦 的回复:]

[quote=引用 8 楼 脆皮大雪糕 的回复:]

搞了半天,你的项目启动窗体是form1 但是form1启动后并没有任何事件去触发后续的事情啊。比如form1_onload事件里面去调用一下你的程序逻辑入口,或者一个按钮onclick的时候去调用啥的都行啊。

如果启动窗体设置为form2,就能有所动作,因为你的form2的on_load事件里面干活了呀

你的意思是吧第二行 form1.show改为form2.show么 其实我也不理解源代码作者为什么要加一行form1.show[/quote]

1. 你的代码“工程”包含两个Form ,但是 Form1却基本“无作用”。

2. 按你目前的“工程”结构,应该把“启动窗体”设置为Form2(目前是Form1);

这样改了之后,去掉Form1、并把 Form2的 Form_Load( )中的那句 Form1.Show 去掉,

运行效果及各种“状态”,都“不会有变化”。

3. 按你目前的那个代码,其实不用任何窗口都可以。就用一个标准模块,写一个 Sub Main( ) ,

然后把 Form2中的代码复制到Sub Main中去,移除那两个Form。

然后“最终效果”也跟你目前没什么区别(除了“不会出现两个空白窗口”之外)。

剩下的,就是你的代码Bug问题了,比如:

FileName = App.Path & FileName

一般应该写成这样才对:

FileName = App.Path & "\" & FileName

(一般在输入文件名时,恐怕不会特意的在前面添加个 \ 字符吧!!!)

还有没有其它的问题,我也没细看了…………

[/quote]

谢谢各位大神指点 感激涕零 明天等我试验一下 跪服! 舉杯邀明月 2019-05-14 打赏举报 回复 引用 9 楼 Misaya灬岳桦 的回复:[quote=引用 8 楼 脆皮大雪糕 的回复:]

搞了半天,你的项目启动窗体是form1 但是form1启动后并没有任何事件去触发后续的事情啊。比如form1_onload事件里面去调用一下你的程序逻辑入口,或者一个按钮onclick的时候去调用啥的都行啊。

如果启动窗体设置为form2,就能有所动作,因为你的form2的on_load事件里面干活了呀

你的意思是吧第二行 form1.show改为form2.show么 其实我也不理解源代码作者为什么要加一行form1.show[/quote]

1. 你的代码“工程”包含两个Form ,但是 Form1却基本“无作用”。

2. 按你目前的“工程”结构,应该把“启动窗体”设置为Form2(目前是Form1);

这样改了之后,去掉Form1、并把 Form2的 Form_Load( )中的那句 Form1.Show 去掉,

运行效果及各种“状态”,都“不会有变化”。

3. 按你目前的那个代码,其实不用任何窗口都可以。就用一个标准模块,写一个 Sub Main( ) ,

然后把 Form2中的代码复制到Sub Main中去,移除那两个Form。

然后“最终效果”也跟你目前没什么区别(除了“不会出现两个空白窗口”之外)。

剩下的,就是你的代码Bug问题了,比如:

FileName = App.Path & FileName

一般应该写成这样才对:

FileName = App.Path & "\" & FileName

(一般在输入文件名时,恐怕不会特意的在前面添加个 \ 字符吧!!!)

还有没有其它的问题,我也没细看了…………

milaoshu1020 2019-05-14 打赏举报 回复 先告诉我们,你这个程序的主要功能是干什么的? Misaya灬岳桦 2019-05-14 打赏举报 回复 引用 8 楼 脆皮大雪糕 的回复:搞了半天,你的项目启动窗体是form1 但是form1启动后并没有任何事件去触发后续的事情啊。比如form1_onload事件里面去调用一下你的程序逻辑入口,或者一个按钮onclick的时候去调用啥的都行啊。

如果启动窗体设置为form2,就能有所动作,因为你的form2的on_load事件里面干活了呀

你的意思是吧第二行 form1.show改为form2.show么 其实我也不理解源代码作者为什么要加一行form1.show 脆皮大雪糕 2019-05-14 打赏举报 回复 搞了半天,你的项目启动窗体是form1 但是form1启动后并没有任何事件去触发后续的事情啊。比如form1_onload事件里面去调用一下你的程序逻辑入口,或者一个按钮onclick的时候去调用啥的都行啊。

如果启动窗体设置为form2,就能有所动作,因为你的form2的on_load事件里面干活了呀 Misaya灬岳桦 2019-05-14 打赏举报 回复 引用 1 楼 脆皮大雪糕 的回复:只给了个vbp,还有form1 和 form2 呢

整个文件夹打包好么?不要舍不得舍不得的。

....抱歉抱歉....因为换了电脑...form1 form2 格式之前在文件夹里补一个位置...我没看到....我甚至不知道完整的文件包括啥....后来又找到传上去啦....麻烦啦..

链接: https://pan.baidu.com/s/1mAt7iXAnn7CQjMq6bDvEdQ 提取码: djsb 复制这段内容后打开百度网盘手机App,操作更方便哦 脆皮大雪糕 2019-05-14 打赏举报 回复 只给了个vbp,还有form1 和 form2 呢

整个文件夹打包好么?不要舍不得舍不得的。 Misaya灬岳桦 2019-05-14 打赏举报 回复 引用 4 楼 milaoshu1020 的回复:把VB6工程的所有文件上传到百度网盘上,然后在这里贴一下共享地址吧;

只看部分代码不知道问题出在哪里.

好的好的 已经上传了 下面是链接

因为子函数调用的问题我实在解决不了 于是把大部分声明的变量和BB_XX 自定义函数的访问权限从private改成了public

那些自定义函数在form1和模块里面都有 因为纯小白 所以希望大佬们理解

链接: https://pan.baidu.com/s/1reB_Jctm-JGgUBw8Xm_Myw 提取码: bp9f 复制这段内容后打开百度网盘手机App,操作更方便哦 milaoshu1020 2019-05-14 打赏举报 回复 把VB6工程的所有文件上传到百度网盘上,然后在这里贴一下共享地址吧;

只看部分代码不知道问题出在哪里. Misaya灬岳桦 2019-05-14 打赏举报 回复 引用 2 楼 milaoshu1020 的回复:先告诉我们,你这个程序的主要功能是干什么的?

是一个平差程序 应该是程序读入数据后进行处理 然后输出平差结果 在load里面的代码我认为是主函数 运行它来调用其他自定义函数来进行平差计算 然后输出平差结果 VB 程序运行列表 VB 程序运行列表

VB 程序运行列表

VB 程序运行列表 VB检测程序是否在运行 检测程序是否正在运行或文件是否正在使用

免资源分,欢迎下载 VB程序设计 -程序设计视频, VB程序设计 -视频教程-程序设计视频, VB程序设计教程 例题 VB程序设计教程资源书 例题 全套资料 清华大学出版社 VB程序抽奖系统 VB程序抽奖系统,用最简单的代码实现需要的功能

VB基础类

7,785

社区成员

197,585

社区内容

发帖 与我相关 我的任务 VB基础类 VB 基础类 复制链接

扫一扫 分享 确定 社区描述 VB 基础类 社区管理员

加入社区

获取链接或二维码

近7日

近30日

至今

加载中

查看更多榜单

社区公告

暂无公告 试试用AI创作助手写篇文章吧

+ 用AI写文章