比如说现在有个表名字叫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.关闭连接 在这里先谢谢一下帮忙的高手,希望能多加点注释
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.关闭连接 在这里先谢谢一下帮忙的高手,希望能多加点注释
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
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
'声明
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可以不写。这段代码我没有试。但我常用,如果有误,你仔细研究一下,应该能明白!
rt.close
db.close
你可以把这段代码加到按钮里。不过得改。比如你想把取出来的数据存到别处。或另有它用
主要就是用rt.fields("列名").value来代表当前列名的数值
用rt.movenext来移动数据指针。使当前的数据指针移动到下一行。
用rt.addnew加入数据
用rt.edit来编辑数据
编辑数据完毕后必须使用rt.update保存