首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

VB 关于临界数据共享的有关问题

2013-06-19 
VB 关于临界数据共享的问题Access数据库有个设置信息表,表的字段为有这么几项记录编号,地址编号,地址名称,

VB 关于临界数据共享的问题
Access数据库有个设置信息表,表的字段为有这么几项记录编号,地址编号,地址名称,设定值,屏蔽值值,计数器(都是100)。 这表的数据都是自己添加的,现在呢我想要实现这么一个功能,串口来一个相同的地址设置表对应的计数器要重置为100,同时我的timer里面实现计数器这一列所有的100都要减一,程序其他功能都实现了,就这部分有问题,下面我贴出部分程序:
 '1、根据地址信息更新设置信息表的计数器
       Call UpdateTimer(Adodc5)
这句在oncomm里面,调用module2里面的函数
Public Sub UpdateTimer(tAdodc As Adodc) '更新设置信息表的计数器
    Dim tSqlstr As String
    tSqlstr = "select * from 设置信息表 where 地址编号= '" & gAddrNumStr & " ' "
    
    tAdodc.CommandType = adCmdText
    tAdodc.RecordSource = tSqlstr
    tAdodc.Refresh
    
    If tAdodc.Recordset.RecordCount > 0 Then
        tAdodc.Recordset.Fields(5) = 100 '更新计数器
        tAdodc.Recordset.Update
    End If
End Sub
下面贴出timer里面部分程序:
Adodc7.CommandType = adCmdText
Adodc7.RecordSource = "Select * from  设置信息表"
Adodc7.Refresh

If Adodc7.Recordset.RecordCount > 0 Then
    Adodc7.Recordset.MoveFirst
End If

 For i = 1 To Adodc7.Recordset.RecordCount
          Adodc7.Recordset.Fields(5) = Adodc7.Recordset.Fields(5) - 1
            Adodc7.Recordset.MoveNext
             Next i
运行显示无法更新定位行,一些值可能在最后一次读取后已更改,注:红色部分是串口数据处理后的地址编号
VB??串口开发
[解决办法]
本帖最后由 bcrun 于 2013-05-27 10:37:10 编辑 这个是个蛋疼的使用方式
试试下面代码

If tAdodc.Recordset.RecordCount > 0 Then
        tAdodc.Recordset.Fields(5) = 100 '更新计数器
        tAdodc.Recordset.Update
       tAdodc.Recordset.requery
    End If


[解决办法]
引用
If tAdodc.Recordset.RecordCount > 0 Then
        tAdodc.Recordset.Fields(5) = 100 '更新计数器
        tAdodc.Recordset.Update
End If

这段好像应该加循环才能逐一赋值

引用
For i = 1 To Adodc7.Recordset.RecordCount
          Adodc7.Recordset.Fields(5) = Adodc7.Recordset.Fields(5) - 1
          Adodc7.Recordset.MoveNext


Next i


跟上面的相反
这段有循环但是没Update
[解决办法]
If tAdodc.Recordset.RecordCount > 0 Then
  For i = 1 To Adodc7.Recordset.RecordCount '加上循环
    tAdodc.Recordset.Fields(5) = 100
    tAdodc.Recordset.Update
  Next i '加上循环
End If


For i = 1 To Adodc7.Recordset.RecordCount
  Adodc7.Recordset.Fields(5) = Adodc7.Recordset.Fields(5) - 1
  Adodc7.Recordset.Update '加上更新
  Adodc7.Recordset.MoveNext
Next i

[解决办法]
引用:
这个是个蛋疼的使用方式
试试下面代码
tAdodc.Recordset.requery

直接给字段赋值的好像无需用这行

热点排行