在access中有很多列,其中一列为“处理情况”,里面值为0或1,我想找出是1的,然后把那一行的数据都提取出来,然后把1改为0.求高手帮助。我是用ADODB连接的数据库。
解决方案 »
- 用vb实现多表查询
- 请问哪个VB高手能帮我写下面一个简单的多线程程序
- VB读文本文件中的数据到一二维数组中的问题!急!谢谢了各位!
- 如何每隔30分鐘運行一指令,timer可以同嗎?
- 关于泡泡字的类的应用问题
- datareport分页打印
- 放分999,请999位网友进来签名,为我MM祝福,3天以后她就要参加研究生入学考试了,谢谢
- 求教------高手请进啊。。
- LISTVIEW怎么将内容写入数据库
- VB 中的类模块与模块之间的联系是什么?如何充分利用类模块?何时利用类模块?我只有这30分,全给大家
- 200分:VISTA、WIN7下如何用代码修改有权限的注册表项?
- 一元数学函数图示器(参考设计如下图)谁会?急急!帮帮忙吧!谢谢了!
其实你这个处理情况字段,如果不包含第三种情况未定的话,可以设置为布尔值,true和false.不过你那样设置也没有错误.而且还可以定义第三种情况.还有就是你的处理情况字段的类型,这个1和0不确定是数值型还是字符型,最好给我们说清楚.
如果你连接了数据库,数据库变量为con
那么你可以这么操作,dim rs as adodb.recordset '声明recordset变量rs
dim SQLstr as string '定义sqlstr
sqlstr="select * form 你的表 where 处理情况=1" '当处理情况字段为数值型的处理
'sqlstr="select * form 你的表 where 处理情况='1'" '当处理情况字段为字符型的处理set rs =new adodb.recordset '给rs定义
if rs.state<>0 then rs.close '判断rs的状态
rs.open sqlstr,con,1,3 '查询
if rs.bof=false and rs.eof=false then
rs.movefirst
end if '如果rs查询不为空,则将记录移到记录头
do while(rs.eof=false)
rs("处理情况")=0
' rs("处理情况")="0"
rs.movenext
loop '将1变为0
rs.update '保存
rs.close '关闭
⋯⋯处理数据
while not rst.eof
id = rst.filed("ID")
conn.Excute("update table set [处理情况] = 0 where ID =" & id)
rst.next⋯⋯
loop
我用了三楼的方法,id = rst.filed("ID") 显示未找到方法或数据成员。
⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
无语了⋯⋯
你不会改改吗?我那里知道你的数据库表结构!!我那里知道哪个字段是唯一的?!?
我已经跟你分析了两种情况,而且代码都给你用注释注释起来了,如果不是数值型,你就不会改成字符型的,sqlstr="select * form 你的表 where 处理情况=1" '当处理情况字段为数值型的处理
'sqlstr="select * form 你的表 where 处理情况='1'" '当处理情况字段为字符型的处理改成'sqlstr="select * form 你的表 where 处理情况=1" '当处理情况字段为数值型的处理
sqlstr="select * form 你的表 where 处理情况='1'" '当处理情况字段为字符型的处理------------------------ rs("处理情况")=0
' rs("处理情况")="0"
改成'rs("处理情况")=0
rs("处理情况")="0"唉,唉,唉...
6楼说的我改了还是3001问题。Private Sub Timer2_Timer()
Dim cn As adodb.Connection
Set cn = New adodb.Connection
Dim rs As adodb.Recordset '声明recordset变量rs
Dim SQLstr As String '定义sqlstr
'SQLstr = "select * form 你的表 where 处理情况=1" '当处理情况字段为数值型的处理
SQLstr = "select * form 大风记录 where 处理情况='1'" '当处理情况字段为字符型的处理Set rs = New adodb.Recordset '给rs定义
If rs.State <> 0 Then rs.Close '判断rs的状态
rs.Open SQLstr, conn, 1, 3 '查询
If rs.BOF = False And rs.EOF = False Then
rs.MoveFirst
End If '如果rs查询不为空,则将记录移到记录头
Do While (rs.EOF = False)
'rs("处理情况") = 0
rs("处理情况") = "0"
rs.MoveNext
Loop '将1变为0
rs.Update '保存
rs.Close '关闭End Sub
三楼看搞懂了