注册 登录
编程论坛 VB6论坛

请教使用控件ADODC问题,

dabeixiong 发布于 2018-12-30 10:58, 2175 次点击
   Z1 = Val(Text1(0)): Z2 = Val(Text1(1))
   If Check3 = 0 Then                                                         '自动计算切向变位系数
     sb = Z2 / Z1
     Adodc1.Visible = False
     Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\biao1.mdb;Persist Security Info=False"
     Adodc1.RecordSource = "select * from qx where A<=" & Z1 & " and B>=" & Z1 & " and C<=" & sb & " and D>=" & sb
     Set DataGrid1.DataSource = Adodc1
     Text1(8) = Adodc1.Recordset.Fields(1).Value
     Adodc1.Refresh
     DoEvents
   Else
     Xt = Val(Text1(8))                                                          '自定义切向变位系数
   End If
   访问数据文件,首次输入Z2=34,Z1=21,Text1(8)=0,但改变Z1=6时,计算一次Text1(8)却还是原来的0,正确答案是0.265,而我再计算一次,才能是0.265,为什么要计算二次才能得到正确的答案,我之前都好计算一次,现在不知道什么原因,都要计算二次。请帮忙看下
4 回复
#2
dabeixiong2018-12-30 11:00
回复 楼主 dabeixiong
,当改变时,第一次Text1(8) = Adodc1.Recordset.Fields(1).Value,没有改变,第二次才能有效
#3
dabeixiong2018-12-30 11:16
只有本站会员才能查看附件,请 登录
帮忙看下,找不到原因


[此贴子已经被作者于2018-12-30 11:20编辑过]

#4
wmf20142018-12-30 13:25
将语句顺序调一下即可:
     Set DataGrid1.DataSource = Adodc1
     Text1(8) = Adodc1.Recordset.Fields(1).Value
     Adodc1.Refresh
修改为
     Adodc1.Refresh
     Set DataGrid1.DataSource = Adodc1
     Text1(8) = Adodc1.Recordset.Fields(1).Value

Adodc1.Refresh语句相当于让控件执行sql查询,你还没有执行就取值当然得不到正确值。
#5
dabeixiong2018-12-30 14:21
回复 4楼 wmf2014
非常感谢
1