独占式编辑的操作时报错,由于已是在运作的系统,不方便上传文件,狐爸能否指点一下。
我确认“入账报表”是存在的也名称和拼写没有错。
报错内容:
错误所在事件:
详细错误信息:
System.Data.OleDb.OleDbException: Microsoft Jet 数据库引擎找不到输入表或查询 '~TMPCLP入账报表'。 确定它是否存在,以及它的名称的拼写是否正确。
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
at System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
at Foxtable.SQLCommand.ExecuteNonQuery()
录入的代码如下:
1、首先给入账报表增加一个字符列,名为"编辑者
2、在项目事件AfterOpenProject设置代码:
'解锁非正常退出时被锁定的记录
DataTables("入账报表").ReplaceFor("编辑者",Nothing,"编辑者 = '" & User.Name & "'")
DataTables("入账报表").Save()
Tables("入账报表").Cols.Remove("编辑者") '移除编辑者列,避免用户直接修改此列
3、将表事件StartEdit代码设置为:
If e.Row("编辑者") = User.Name Then '如果编辑者是当前用户
Return
End If
Dim cmd As New SQLCommand
Dim exp As String = "编辑者 Is Null And [_Identify] = " & e.Row("_Identify")
cmd.CommandText = "Update {入账报表} Set 编辑者 = '" & User.Name & "' Where " & exp
If cmd.ExecuteNonQuery = 1 Then
e.Row("编辑者") = User.Name
Else
cmd.CommandText = "Select 编辑者 From {入账报表} Where [_Identify] = " & e.Row("_Identify")
Dim nm As String = cmd.ExecuteScalar
If nm > "" Then
MessageBox.show(nm & "正在编辑此行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Else
MessageBox.show("此行可能已经被删除,无法编辑!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If
e.Cancel = True '取消编辑
End If
4、将表事件DataRowAdding代码设置为:
e.DataRow("编辑者") = User.name
5、将表事件BeforSaveDatarow代码设置为:
If e.DataRow.RowState = DataRowState.Added Then '如果是新增行
e.DataRow("编辑者") = Nothing
Else
Dim cmd As New SQLCommand
Dim exp As String = "[_Identify] = " & e.DataRow("_Identify")
cmd.CommandText = "Update {入账报表} Set 编辑者 = Null Where [_Identify] = " & e.DataRow("_Identify")
If cmd.ExecuteNonQuery = 1 Then
e.DataRow("编辑者") = Nothing
End If
End If