永发信息网

VB ADO 处理数据库并发请求

答案:4  悬赏:20  手机版
解决时间 2021-11-25 00:15
VB ADO 处理数据库并发请求
最佳答案
Dim db As New ADODB.Connection, RS As New ADODB.Recordset
db.ConnectionString = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & App.Path & "\数据库名.mdb"
db.Open
strSQL = "select * from 数据表名 order by id desc"
RS.Open strSQL, db, 3, 3(读取时后面3, 3可以修改为1, 1,但是添加、修改、删除必须是3,3)
1、RS.AddNew 是添加新记录语句
2、 ...... 添加或更新内容,例如RS("BT")=BT,其中括号中的BT是字段名,等号后面的BT是待更新的变量值。
3、RS.UpDate 是更新记录,更新的含义包括添加和修改,因此在添加记录时必须同时有RS.AddNew语句和RS.UpDate语句,而修改记录仅仅需要RS.UpDate语句。
4、RS.Delete 是删除记录的语句
5、最后别忘了关闭对象:
RS.Close
db.Close OK
全部回答
把recordset的锁定方式设置好,就能处理了。不过ACCESS的多用户功能确实较差。推荐升到sqlserver或msde.
给你一些参考希望对你有用。

程式包括“新增,删除,编辑,储存,取消和查询代码。
例如在Form中设置3个Textbox和5个CommandButton
分别为

Textbox=Date(txtdate),Items(txtitems),Price(txtprice).

CommandButton = 新增(cmdadd),储存(cmdsave),删除(cmddelete),
取消新增(cmdcancel),编辑(cmdedit).

以下三段写在General(一般)事件里
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim mode as string

Private Sub Form_Load()
cn.ConnectionString = "provider=Microsoft.jet.OLEDB.4.0;" & _
"Persist security info= False; Data source=" & App.Path & "\daily.mdb"
cn.Open
rs.CursorLocation = adUseClient
rs.Open "Daily", cn, adOpenKeyset, adLockPessimistic (Daily为Access 资料表名)

For i = 0 To rs.Fields.Count - 1
List1.AddItem rs.Fields(i).Name
Next i
End Sub

以下自作函数以便文本栏显示资料表资料
Sub LoadControls()
If rs.BOF = False And rs.EOF = False Then
txtdate = rs.Fields("Date")
txtitems = rs.Fields("Items")
txtprice = rs.Fields("Price")
End If
End Sub

以下为新增按钮代码
Private Sub cmdadd_Click()
mode = "add"
txtdate.Text = CStr(Date) (显示系统今天日期)
txtitems.SetFocus
txtitems = ""
txtprice = ""
End Sub

以下为编辑按钮代码
Private Sub cmdedit_Click()
mode = "edit"
Call LoadControls
txtdate.SetFocus
End Sub

以下为删除按钮代码
Private Sub cmddelete_Click()
If rs.EOF = False Then
X = MsgBox("Do you want to delete this record", vbExclamation + vbYesNo)
If X = vbYes Then
rs.Delete
rs.Requery
Call LoadControls
Else
Exit Sub
End If
End If
End Sub

以下为储存按钮代码
Private Sub cmdsave_Click()
If mode = "add" Then
rs.AddNew
rs.Fields("Date") = txtdate
rs.Fields("Items") = txtitems
rs.Fields("Price") = txtprice
rs.Update
MsgBox "Successfully Save Data", vbInformation + vbOKOnly
rs.Requery
txtdate.SetFocus
Call LoadControls
Exit Sub
End If
End Sub

If mode = "edit" Then
rs.Fields("Date") = txtdate
rs.Fields("Items") = txtitems
rs.Fields("Price") = txtprice
rs.Update
MsgBox "Successfully Save Data", vbInformation + vbOKOnly
rs.Requery
txtdate.SetFocus
Call LoadControls
Exit Sub
End If

以下为取消新增按钮代码
Private Sub Cmdcancel_Click()
Call LoadControls
End Sub
-------------------------------
查询:
在form加上1个Textbox,1个commmandbutton和1个Listbox
Textbox=txtfind
CommandButton=cmdsearch
ListBox=List1

可查询日期,文字和数字.
Private Sub cmdsearch_Click()
Select Case rs.Fields(List1.ListIndex).Name
Case "Items"
SQL = "select * from Table Name where Items=" & "'" & txtfind.Text & "'"
Case "Price"
SQL = "select * from Table Name where Price=" & txtfind.Text
Case "Date"
SQL = "select * from Table Name where Date = #" & txtfind.Text & "#"
End Select

If rs.State = adStateOpen Then rs.Close
rs.Open SQL, cn, adOpenStatic, adLockOptimistic
End Sub
放心吧,ADO已经帮你做好了,你只管添加删除就是了,
不过要加 on error语句,防止同时访问同一条记录时出错崩溃
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我刚买的戴尔笔记本usb3.0的接口不好用
现在18还有多少人玩,准备入正
lol不火了会倒闭吗
孕妇能不能吃蒸白蒿啊?
老公惹我生气还不哄我,我们冷站,我不说话他
爱乐奇二维码收款蓝牙音箱配18650锂电池2结充
求书 男主是女主的大学教授 后来女主疯了 写
跃进(沧州永兴店)地址在什么地方,我要处理点
头眼鼻子耳朵觜吧舌头的英语怎么说
55×88等于多少竖式答案
不同类型的杆塔基础各适用于什么条件
x光食品异物检测机探测最精确的是哪个牌子的
学思堂教育(中山路)地址在哪,我要去那里办事
求SAI枯笔的设置 如国画“皴”的笔法 画树干
求1-709连续自然数字之和
推荐资讯
倾城舞蹈地址在什么地方,我要处理点事!
古代的人如何游历天下的?
如果我被骗了60万报警有用吗
现在wWw55sdsdcOm改成哪个了
小小羊提米歌词是什么?
找离婚男人到底好不好?
我是长时间在外地,这次回家感觉和以前不太一
梦幻善恶技能为什么总是善
我老爸一天到晚就知道骂人,一点事情都不做,
英语选修7课文the inuit of sedna the sea go
《赤脚小月神》最新txt全集下载
已知直线y=ax+3与圆x2+y2+2x-8=0相交于A,B两
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?