当前位置:编程学习 > VB >>

VB中调出一个表中三条符合条件的数据,对它们依次操作,如何实现

用vb写了一个程序,需要对一个表中几条符合条件的数据进行读取操作,不知道如何写代码,记得原来用doevent什么什么,可是现在彻底忘记了。。。哪位大侠帮忙改一下。。。
Private Sub Showall(m_dz As String)
    Adodc1.RecordSource = "select * from tb_info where 学生<>''"
    Adodc1.Refresh
    

    
    If Adodc1.Recordset.RecordCount > 0 Then
        If Adodc1.Recordset.EOF = False Then Adodc1.Recordset.MoveLast
        If Val(Adodc1.Recordset.Fields("学生")) = 1 Then
                
                lbl5.Caption = "学生:" + IIf(IsNull(Adodc1.Recordset.Fields("学生")), "无", Adodc1.Recordset.Fields("学生"))
                lbl4.Caption = "电话:" + IIf(IsNull(Adodc1.Recordset.Fields("电话")), "无", Adodc1.Recordset.Fields("电话"))
                lbl6.Caption = "家庭:" + IIf(IsNull(Adodc1.Recordset.Fields("家庭")), "无", Adodc1.Recordset.Fields("家庭"))
                               
        ElseIf Val(Adodc1.Recordset.Fields("学生")) = 2 Then
                lbl7.Caption = "学生:" + IIf(IsNull(Adodc1.Recordset.Fields("电话号")), "无", Adodc1.Recordset.Fields("学生"))
                lbl8.Caption = "电话:" + IIf(IsNull(Adodc1.Recordset.Fields("地址号")), "无", Adodc1.Recordset.Fields("电话"))
                lbl9.Caption = "家庭:" + IIf(IsNull(Adodc1.Recordset.Fields("地理位置")), "无", Adodc1.Recordset.Fields("家庭"))
                        
        End If
    End If
End Sub

这是我臆想出来的写法,事实上应该怎么写呢??
Private Sub Showall(m_dz As String)
  dim i as long
  Adodc1.RecordSource = "select * from tb_info where 学生<>''"
  Adodc1.Refresh
  
  for i=1 to adodc1.recordset.recordcount
      If Val(Adodc1.Recordset.Fields("学生")) = 1 Then
          lbl5.Caption = "学生:" + IIf(IsNull(Adodc1.Recordset.Fields("学生")), "无", Adodc1.Recordset.Fields("学生"))
          lbl4.Caption = "电话:" + IIf(IsNull(Adodc1.Recordset.Fields("电话")), "无", Adodc1.Recordset.Fields("电话"))
          lbl6.Caption = "家庭:" + IIf(IsNull(Adodc1.Recordset.Fields("家庭")), "无", Adodc1.Recordset.Fields("家庭"))
      end if  
      If Val(Adodc1.Recordset.Fields("学生")) = 2 Then
          lbl7.Caption = "学生:" + IIf(IsNull(Adodc1.Recordset.Fields("电话号")), "无", Adodc1.Recordset.Fields("学生"))
          lbl8.Caption = "电话:" + IIf(IsNull(Adodc1.Recordset.Fields("地址号")), "无", Adodc1.Recordset.Fields("电话"))
          lbl9.Caption = "家庭:" + IIf(IsNull(Adodc1.Recordset.Fields("地理位置")), "无", Adodc1.Recordset.Fields("家庭"))
      
      End If
      adodc1.recordset.movenext
  next i
End Sub
谢谢楼上 我试试先~~实现的话再来再次感谢~~ liftie谢谢你的修改,不过因为我刚才表意不明,还需要您修改一下。
Private Sub Showall(m_dz As String)
  dim i as long
  Adodc1.RecordSource = "select * from tb_info where 学生<>''"
  Adodc1.Refresh
  
  for i=1 to adodc1.recordset.recordcount
      If Val(Adodc1.Recordset.Fields("学生")) = 1 Then   **这里是想实现如果有一条记录,则显示在lbl546里
          lbl5.Caption = "学生:" + IIf(IsNull(Adodc1.Recordset.Fields("学生")), "无", Adodc1.Recordset.Fields("学生"))
          lbl4.Caption = "电话:" + IIf(IsNull(Adodc1.Recordset.Fields("电话")), "无", Adodc1.Recordset.Fields("电话"))
          lbl6.Caption = "家庭:" + IIf(IsNull(Adodc1.Recordset.Fields("家庭")), "无", Adodc1.Recordset.Fields("家庭"))
      end if  
      If Val(Adodc1.Recordset.Fields("学生")) = 2 Then   **这里是想实现如果有第二条条记录,则显示在lbl789里,最好的最好这个时候lbl546里的数据还不变,因为我是在外面调用这个函数,如果数据库里有两条符合条件的记录,这届这样写是不是就只显示第二条数据?

          lbl7.Caption = "学生:" + IIf(IsNull(Adodc1.Recordset.Fields("电话号")), "无", Adodc1.Recordset.Fields("学生"))
          lbl8.Caption = "电话:" + IIf(IsNull(Adodc1.Recordset.Fields("地址号")), "无", Adodc1.Recordset.Fields("电话"))
          lbl9.Caption = "家庭:" + IIf(IsNull(Adodc1.Recordset.Fields("地理位置")), "无", Adodc1.Recordset.Fields("家庭"))
      
      End If
      adodc1.recordset.movenext
  next i
End Sub 不是很明白楼主的意思,=1与=2的条件成立是对不同的label控件赋值,条件=2成立后对控件赋值时不会影响到已经对=1成立时控件的内容 If Val(Adodc1.Recordset.Fields("学生")) = 1 Then 这里的val()调试出来是真正的数据结果,比如张三,我是想if adodc1.recordset.recordcount=1时,lbl456显示这条数据的内容
if adodc1.recordset.recordcount=2时 lbl456还是显示一条数据内容,lbl789显示第二条数据内容 if adodc1.recordset.recordcount=1时,lbl456显示这条数据的内容
if adodc1.recordset.recordcount=2时 lbl456显示满足条件的第一条数据内容,lbl789显示满足条件的第二条数据内容
为什么要根据if adodc1.recordset.recordcount来判断呢,为什么不根据具体的记录值的内容来判断? 因为是想实现这么一个功能,只要用户点查看,便能查看该表中有符合条件的若干条记录(非全部,比如查看学生信息中“备份信息”不为空的记录),然后显示在三组lbl中(符合的信息不一定三条,在三组lbl依次显示,过多不考虑)。

还有大侠,能再追问你一个问题吗?我想修改一条数据,比如说
姓名 年龄 职务    备注
张三  12   班长  市三好学生
我想对他修改,只修改备注信息,让其在原有基础上加上BBBB
姓名 年龄 职务   备注
张三  12   班长  市三好学生 省三好学生

如何写sql代码呢? 显示多条记录建议用mshflexgrid控件来实现
sql=" update 表名 set 备注=备注+'BBBB' where 姓名='张三'"
Adodc1.RecordSource = sql
Adodc1.Refresh
补充:VB ,  数据库(包含打印,安装,报表)
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,