| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 993 人关注过本帖
标题:if...then ..elseif和组合框一起使用出现了反向赋值的现象,怎么解决?
取消只看楼主 加入收藏
orandno
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-5-15
收藏
 问题点数:0 回复次数:1 
if...then ..elseif和组合框一起使用出现了反向赋值的现象,怎么解决?

程序其中的一段代码如下


Private Sub jsz_Click()

'判断混凝土的类型并设定混凝土性质参数

If Combo1.Text = "C15" Then
fcd = 6.9: ftd = 0.88: ec = 22000: fcuk = 15
ElseIf Combo1.Text = "C20" Then
fcd = 9.2: ftd = 1.06: ec = 25500: fcuk = 20
ElseIf Combo1.Text = "C25" Then
fcd = 11.5: ftd = 1.23: ec = 28000: fcuk = 25
ElseIf Combo1.Text = "C30" Then
fcd = 13.8: ftd = 1.39: ec = 30000: fcuk = 30
ElseIf Combo1.Text = "C35" Then
fcd = 16.1: ftd = 1.52: ec = 31500: fcuk = 35
ElseIf Combo1.Text = "C40" Then
fcd = 18.4: ftd = 1.65: ec = 32500: fcuk = 40
End If

'确定钢筋的性质参数
If gj.Text = "R235" Then
fsd = 195: fsdp = 330: es = 210000
ElseIf gj.Text = "HRB335" Then
fsd = 280: fsdp = 330: es = 200000
End If
'将输入的数值给变量赋值
chtch = Val(chtch.Text)
chtk = Val(chtk.Text)
chtg = Val(chtg.Text)
d = Val(d.Text)
r0 = Val(r0.Text)
diam = Val(xh.Text)
gjd = Val(xh.Text)
'需要区分横桥向和顺桥向的变量
If hsh.Text = "横桥向" Then
zd = Val(zd.Text)
s = Val(s.Text)
qdh = Val(qdh.Text)
zn = Val(shzn.Text)
ElseIf hsh.Text = "顺桥向" Then
zd = Val(shzd.Text)
s = Val(shs.Text)
zn = Val(zn.Text)
qdh = Val(qds.Text)
End If

'计算中间变量
h0 = chtg - s
x1 = zd / 2 - qdh / 2
a = 0.15 * h0
jiaodu = Atn((chtg - s) / (x1 + 0.15 * (chtg - s)))
Dd = Format(zn * nd / Sin(jiaodu), "0")
Td = Format(zn * nd / Tan(jiaodu), "0")
zhchb = d * 0.8
ha = s + 6 * gjd
t = zhchb * Sin(jiaodu) + ha * Cos(jiaodu)
p = Format((r0 * Td * 10 ^ 3 / fsd) * 100 / (h0 * chtk), "0.000")
lp = 45 * ftd / fsd '计算最小配筋率
If lp > 0.2 Then
mlp = lp
Else
mlp = 0.2
End If
If p >= Format(mlp, "0.000") Then '验算是否满足最小配筋率要求
pjl.Text = " 配筋率p=" & p & ">=" & Format(mlp, "0.000") & "满足最小配筋率"
jgj = r0 * Td * 10 ^ 3 / (fsd * Val(xh.Text) ^ 2 * pi / 4)
ElseIf p < Format(mlp, "0.000") Then
pjl.Text = " 配筋率p=" & p & "<" & Format(mlp, "0.000") & "取p=" & mlp
jgj = Format(mlp * chtk * h0 / 100) / (Val(xh.Text) ^ 2 * pi / 4)
End If

'输出中间变量到文本框
h0.Text = h0
x1.Text = x1
a.Text = a
jiaodu.Text = Format(jiaodu * 180 / pi, "0.00")
Dd.Text = Dd
Td.Text = Td
t.Text = Format(t, "0")
jgj.Text = Int(jgj)
xgj.Enabled = True
xgj.SetFocus

End Sub


大家注意这一段
'需要区分横桥向和顺桥向的变量
If hsh.Text = "横桥向" Then
zd = Val(zd.Text)
s = Val(s.Text)
qdh = Val(qdh.Text)
zn = Val(shzn.Text)
ElseIf hsh.Text = "顺桥向" Then
zd = Val(shzd.Text)
s = Val(shs.Text)
zn = Val(zn.Text)
qdh = Val(qds.Text)
End If
在这段程序中我想根据hsh的选择来确定是将文本框zd,s,qdh,shzn还是shzd,shs,qds,zn的值付给变量zd,s,qdh,zn.在我选择了横桥向之后,程序运行正常,计算正确。然后选择顺桥向,再执行 jsz_Click()的时候后边的计算也是没有什么问题,但是文本框zd,s,qdh,shzn里边我原来填入的数据却变成了文本框shzd,shs,qds,zn里边的值,也就是说出现了将变量的值反向给了文本框的现象,不知道是怎么回事,希望大家能帮帮我,着急啊~~
我的QQ是28417440,可以通过QQ来请教大家的!!谢谢

搜索更多相关主题的帖子: 赋值 ftd elseif Then 
2006-05-19 10:14
orandno
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-5-15
收藏
得分:0 
呵呵 谢谢你的回复了 我找到原因了,因为这里边
'需要区分横桥向和顺桥向的变量
If hsh.Text = "横桥向" Then
zd = Val(zd.Text)
s = Val(s.Text)
qdh = Val(qdh.Text)
zn = Val(shzn.Text)
ElseIf hsh.Text = "顺桥向" Then
zd = Val(shzd.Text)
s = Val(shs.Text)
zn = Val(zn.Text)
qdh = Val(qds.Text)
End If
变量的名字和文本框的名字设置成一样了,我改了文本框的名字就不出现上边的问题了。
只是有一点,“=”的作用是双向的吗?我没有写将变量赋给文本框,怎么文本框我填入的数字就变了呢?
2006-05-19 11:26
快速回复:if...then ..elseif和组合框一起使用出现了反向赋值的现象,怎么解决? ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035203 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved