在ACCESS数据库中,怎么把数据库中的指定行和列的数据读到一个数组,比如说我要把一个表的为1的行和列读出,并记录这些行和列?怎样实现,谢谢!

解决方案 »

  1.   

    rs.fields(i)   i 为列rs.movefirst
    i=0
    do while not rs.eof
       i = i + 1         'i为行
       rs.movenext
    loop
      

  2.   

    比如说我要判断表中的第i行第j列的数据上否为1,我这样写行吗
    If rs.Fields(i & j) = "1" Then
    ....
    但是这样提示出错了
      

  3.   

    If rs.Fields(i & j) = "1" Then 肯定不行可以这样判断:
    if not (rs.bof or rs.eof) then rs.moveFirst
    for rsCol=1 to i
      if not rs.eof then rs.moveNext
    next
    if rs.Fields(j).value="1" then
      ......
    end if
      

  4.   

    dim i,j as long rs.movefirst
    i=0
    do while not rs.eof
       i = i + 1         'i为行
       if i = 行编号 then
            xxx = rs.fields(列编号)
            exit do
       else
          rs.movenext
       end if
    loop
      

  5.   

    记录表的为1的行和列:dim cn as new adodb.connection,rs as new adodb.recordset
    dim i%,j%,RowCol as Collection
    rs.CursorLocation=adUseClient
    set rs=cn.execute("select * from tableName")'先查出所有的记录
    if not rs.eof then rs.moveFirst
    for i=1 to rs.recordCount
      for j=1 to rs.Fields.Count
        if rs.fields(j).value="1" then RowCol.add i & "," & j '用集合来记录行和列
      next
      if not rs.eof then 
        rs.moveNext
      else
        rs.moveLast
      end if
    nextRowCol的值:
    1,2   ’第1行第2列的值为1
    1,4   ’第1行第4列的值为1
    1,6   ’第1行第5列的值为1
    4,5   ’第4行第5列的值为1
      

  6.   

    faysky2() :
    j 从1开始,那第0列不就没检查到吗?这句
      for j=1 to rs.Fields.Count
        if rs.fields(j).value="1" then RowCol.add i & "," & j '用集合来记录行和列
      next
    应该为:
      for j=1 to rs.Fields.Count
        if rs.fields(j-1).value="1" then RowCol.add i & "," & j '用集合来记录行和列
      next
    纯属个人意见……
      

  7.   

    我用的是DAO做的,刚才看了faysky的程序,我写了这样的代码试试,但好像还有问题,各位高手看看什么地方出错了,我想用数组来保存行列号:Option ExplicitDim daodb As DAO.Database
    Dim rs As DAO.RecordsetPrivate Sub Command1_Click()
    Dim i%, j%
    Dim a(1 To 100)
    Dim b(1 To 100)
    Dim x%, y%
    x = 1: y = 1
    If Not rs.EOF Then rs.MoveFirst
    For i = 1 To rs.RecordCount
      For j = 1 To rs.Fields.Count
        If rs.Fields(j).Value = "1" Then
        a(x) = i '用集合来记录行和列
        b(y) = j
          x = x + 1
        y = y + 1
        End If
      Next
      If Not rs.EOF Then
        rs.moveNext
      Else
        rs.MoveLast
      End If
    Next
    End SubPrivate Sub Form_Load()
     Set daodb = OpenDatabase(App.Path & "\db.mdb")
      Set rs = daodb.OpenRecordset("select * from class")
     If rs.RecordCount > 0 Then
        rs.MoveLast
        rs.MoveFirst End If
    End Sub