ado绑定access2000数据库的问题

infoboy 2004-07-02 08:36:11
我用ado绑定access2000数据库文件,在输入很多字段时出现"多步操作出现错误"的对话框,这是怎么搞的阿?
...全文
92 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hhjjhjhj 2004-07-03
  • 打赏
  • 举报
回复
这个问题一般是在表格类控件绑定ADO,用表格修改数据时出现,原因是表中被修改的数据所在行未修改时在表中有相同数据的行,
解决办法:数据库的表中增加一个“自动编号”列,Select时,把“自动编号”列也Select进去,这样就不会有相同数据行。表格类控件中可以把那列隐藏。
loveerror 2004-07-03
  • 打赏
  • 举报
回复
一般是输入的数据会造成数据混乱的情况
一事無成 2004-07-03
  • 打赏
  • 举报
回复
樓上各位說得好清楚啊。
樓主,請查看是否你的庫的數據類型或是長度跟你在用戶界面輸入的不對,而你又沒做判斷。
射天狼 2004-07-03
  • 打赏
  • 举报
回复
Option Explicit

'工程->引用->Microsoft ActiveX Data Objects 2.0 Library (后面为版本号)
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset

Private Sub Command1_Click()
rs.Open "SELECT * FROM TABLENAME WHERE NAME = '" & txtName.Text & "'", cn, adOpenDynamic, adLockOptimistic
If Not rs.EOF Then
Label1.Caption = rs!ID
Label2.Caption = rs!Memo
End If

rs.AddNew
rs!ID = "编号"
rs!Memo = "备注"
rs.Update
End Sub

Private Sub Form_Load()
cn.ConnectionString = "DBQ=" & App.Path & "\TelePhone.mdb;DefaultDir=" & _
App.Path & ";Driver={Microsoft Access Driver (*.mdb)};" & _
"DriverId=25;FIL=MS Access;ImplicitCommitSync=Yes;" & _
"MaxBufferSize=512;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;" & _
"Threads=3;UID=ADMIN;UserCommitSync=Yes;PWD=admind1234;"
cn.Open
'查询字符串可以上这里查
'http://www.connectionstrings.com/
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
On Error Resume Next
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
End Sub
amongwang 2004-07-03
  • 打赏
  • 举报
回复
这个问题在ADO绑定DATAGRID控件时容易出,解决方法是在每次修改完一个字段的值后,刷新数据库,及时将修改后的数据写回数据库,就可避免这个问题了!
daisy8675 2004-07-02
  • 打赏
  • 举报
回复
Option Explicit

Private Rs As New ADODB.Recordset
Private Conn As New ADODB.Connection

'--如何用RecordSet連接Access
Private Sub Form_Load()
Dim strConn As String

' 連接數據庫的字符串
' 連接帶密碼的數據庫,直接在連接符後面加上Jet OLEDB:DataBase Password='您的密碼'
' 連接Access97數據庫需要使用Jet.OLEDB.3.5,Access2K和以上數據庫使用Jet.OLEDB.4.0
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\test.mdb;Persist Security Info=False"

' 使用用戶端資料遊標
Conn.CursorLocation = adUseClient
' 打開Access的連接
Conn.Open strConn

' 如果RecordSet的狀態不是關閉狀態,則關閉Recordset
If Rs.State <> adStateClosed Then Rs.Close

' Recordser打開表People
Rs.Open "Select * from People", Conn, adOpenKeyset, adLockOptimistic

' 報告出 一共多少筆數據,測試是否存在數據
' MsgBox Rs.RecordCount

' 綁定進DataGrid
Set DataGrid1.DataSource = Rs

With DataGrid1

' 設置DataGrid標題
.Columns(0).Caption = "編號"
.Columns(1).Caption = "姓名"

' 設置 DataGrid的寬度
.Columns(0).Width = 0 ' 設置成為隱藏狀態,相同的方法可以應用在各種網格控件上面
.Columns(1).Width = 2000 ' 設置正常需要的寬度

End With
End Sub

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧