在access中有很多列,其中一列为“处理情况”,里面值为0或1,我想找出是1的,然后把那一行的数据都提取出来,然后把1改为0.求高手帮助。我是用ADODB连接的数据库。

解决方案 »

  1.   

    http://download.csdn.net/source/1498324
      

  2.   

    ps.
    其实你这个处理情况字段,如果不包含第三种情况未定的话,可以设置为布尔值,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                      '关闭
      

  3.   

    set rst = conn.Excute("select * from table where [处理情况] = 1")
    ⋯⋯处理数据
    while not rst.eof 
    id = rst.filed("ID")
    conn.Excute("update  table  set [处理情况] = 0 where ID =" & id)
    rst.next⋯⋯
    loop
      

  4.   

    我用了二楼的方法,rs.open sqlstr,con,1,3   出现3001错误。
    我用了三楼的方法,id = rst.filed("ID")  显示未找到方法或数据成员。
      

  5.   

    我用了三楼的方法,id = rst.filed("ID") 显示未找到方法或数据成员。
    ⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
    无语了⋯⋯
    你不会改改吗?我那里知道你的数据库表结构!!我那里知道哪个字段是唯一的?!?
      

  6.   

    说明你的字段"处理情况"是字符型的.3001错误提示为类型不匹配.哥,我服了你了
    我已经跟你分析了两种情况,而且代码都给你用注释注释起来了,如果不是数值型,你就不会改成字符型的,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"唉,唉,唉...
      

  7.   

    5楼说的我还在研究
    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
      

  8.   

    二楼的把from 写成form
    三楼看搞懂了