# Re: 为何删除(修改)资料会出错

Posted by JOB on June 22, 1999 at 11:45:27:

In Reply to: 为何删除(修改)资料会出错 posted by yeong huann on June 21, 1999 at 16:32:28:

: 为何删除(修改)资料会出错

: 我的资料库开启方法如下(片段):

: SQL = "Select * From 主控 Order By fd_SongID"

:
: Dim Connstr As String
: Dim DataAppfilename As String

: DataAppfilename = "Data Source=" & App.Path & "\" & "KTV主控.mdb"
: Connstr = "Provider=Microsoft.Jet.OLEDB.3.51;" & DataAppfilename
: conn.Open Connstr

: rs.CursorLocation = adUseClient
: On Error GoTo openerr
: rs.Open SQL, conn, adOpenDynamic, adLockPessimistic

: 删除指令如下(片段):

: If KeyCode = vbKeyDelete Then
:
: If vsFlex1.Row > 0 Then
: msg = MsgBox("你确定要删除此笔资料", 52)
: If msg = vbYes Then
: On Error GoTo exit1
: rs.MoveFirst
: rs.Move vsFlex1.Row - 1
: rs.Delete
: vsFlex1.RemoveItem vsFlex1.Row
:
: Else
: End If
:
: Else
: End If
:
: End If

: 我的资料表均未设索引,换言之所有栏位的值并非唯一,为什么当我删除(或修改)的资料录的第一个栏位值并非唯一时,就会出现错误("有太多资料被引响"),然
: 后所有和我所要修改的资料录中的第一个栏位相同的值的资料,全都会被更改.
: 这到底是为什么?

: PS:平常状态(即欲修改的资料录的第一个栏位的值没有重复),则动作完全正常

因为,资料库会自动以第一个栏位为它的索引值,所以,在没有
索引及第一个栏位非惟一的就会出现你的问题,要解决你的问题只有把有惟一性栏位,例如PK,为第一栏位就可避免错误

Follow Ups: