比如说现在有个表名字叫aaa,他有三个字段AA,BB,CC,里面的数据如下 AA BB CC 
a1 b1 c1 
a2 b2 c2 
a3 b3 c3 数据库用的是access2003,拜托高人帮忙写个程序,要求如下 
1.连接成功 
2.取出数据库中的所有记录 
3.取出数据库中BB列的所有记录(就是怎么按照指定的列读取数据) 
4.向数据库中写入一条新的数据 a4 b4 c4 
5.更新a2 b2 c2行为a22 b22 c22 
6.关闭连接 在这里先谢谢一下帮忙的高手,希望能多加点注释

解决方案 »

  1.   


    Private Sub Command1_Click()
        Dim conn As New ADODB.Connection
        Dim rs As New ADODB.Recordset
        Dim sql As String
        conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\数据库.mdb"
        sql = "select * from aaa"       '你想实现的功能通过修改这里都能实现,有点数据库基础的都不是问题.
        rs.Open sql, conn
        '到这里已经把读到的值都放到数组rs里了
        
        
        ……
        ……
        ……
            
        rs.Close
        Set rs = Nothing
    End Sub'记得去掉多余的空格,发表帖子总会在引号旁边自动加上空格.
    '需引用 "Microsoft   ActivbX   Data   Objects   2.5   Library "
    'vb对数据库的操作跟ASP极度类似,可以参考http://cxy668.blog.hexun.com/9969517_d.html
      

  2.   

    '添加控件msflexgrid 按钮command1,command2,command3,控件dataPrivate Sub Command1_Click()
    SQL = "select [BB] from aaa"
    Data1.RecordSource = SQL
    Data1.Refresh
    MSF1.Refresh
    End SubPrivate Sub Command2_Click()
    With Data1.Recordset
    .AddNew
    .Fields(0).Value = "a4"
    .Fields(1).Value = "b4"
    .Fields(2).Value = "c4"
    End With
    Data1.UpdateRecord
    Data1.Refresh
    MSF1.Refresh
    End SubPrivate Sub Command3_Click()
    Do While Not Data1.Recordset.EOF
    If Data1.Recordset.Fields(0).Value = "a2" Then
    With Data1.Recordset
    .Edit
    .Fields(0).Value = "a22"
    .Fields(1).Value = "b22"
    .Fields(2).Value = "c22"
    End With
    Data1.UpdateRecord
    Data1.Refresh
    MSF1.Refresh
    Exit Do
    End If
    Data1.Recordset.MoveNext
    Loop
    End Sub
      

  3.   

    我常用的添加引用 工程-引用-Microsoft dao 3.6 object library
    '声明
    dim  db as database
    dim rt as recordset
    dim sj(20) as string
    dim i as integer                              
    ‘初始化i的值
    set i=0
    ’连接数据库文件
    set db=opendatabas(app.path & "\数据库.mdb")
    ‘打开表
    set rt=db.openrecordset("aaa")                '连接成功
    '取出数据
    Do until rt.eof
    sj(i)=rt.fields("AA").value           
    i=i+1
    sj(i)=rt.fields("BB").value
    i=i+1
    sj(i)=rt.fields("CC").value
    i=i+1
    rt.movenext     
    loop                                          '数据已经全部存到数组a()
    同样的办法取出BB列的数据
    '写入新数据
    rt.movelast
    rt.addnew
    rt.fields(AA).value="a4"
    rt.fields(BB).value="b4"
    rt.fields(CC).value="c4"
    rt.update
    ’写入完成
    ’更新A2行数据
    rt.movefirst
    do until rt.eof
    if rt.fields("AA").value="a2" then
    rt.edit
    rt.fields("AA").value="a22"
    rt.fields("BB").value="b22"
    rt.fields("CC").value="c22"
    rt.update
    else
    rt.movenext
    endif
    loop
    更新完成
    在VB6里 .value可以不写。这段代码我没有试。但我常用,如果有误,你仔细研究一下,应该能明白!         
      

  4.   

    忘了,关闭数据
    rt.close
    db.close
    你可以把这段代码加到按钮里。不过得改。比如你想把取出来的数据存到别处。或另有它用
    主要就是用rt.fields("列名").value来代表当前列名的数值
    用rt.movenext来移动数据指针。使当前的数据指针移动到下一行。
    用rt.addnew加入数据
    用rt.edit来编辑数据
    编辑数据完毕后必须使用rt.update保存