无论如何要预测和处理Access SQL语句中的损坏记录?

时间:2018-06-11 19:59:03

标签: sql ms-access database-design

我有一个拆分前端/后端Access数据库,其中包含一个包含很多内容的用户表单。

具体来说,从联合SQL查询填充的列表框不起作用,我已将问题隔离到后端数据库中的损坏记录。我制作了数据库的副本,compact&修复它,并删除了记录。

我制作了一个前端副本,将它重新链接到后端数据库副本,然后修复了所有内容。

当然,我无法修复实际的数据库,因为有数十人可能会在其上。我将在午夜时分尝试偷看更新。

我有几个问题,当然我也对任何其他设计建议持开放态度。我正在寻找最简单的解决办法。我的问题是,是否有一个SQL语句可能能够处理损坏的记录?这是当前的SQL语句

SELECT DISTINCT CaseInfo.reviewerID
FROM caseInfo
WHERE caseInfo.reviewerID IS NOT NULL
UNION SELECT 'All' AS 'reviewerID'
FROM caseInfo
ORDER BY reviewerID;

仅供参考,一个损坏的记录在reviewerID字段中具有中文内容(以及其他字段中的疯狂数字)。我能做的任何事都可以破坏这个查询吗?仅在我现在运行时,我得到

"Reserved error (-1524); there is no message for this error."

如果那是不可能的。还有其他想法吗?问题的根源是弄清楚为什么记录被破坏了,但我不确定。数据库工作的方式是,指定某人将记录直接加载到后端数据库中,ReviewerID填充了员工的姓名,案例的初始详细信息,然后是大量空白字段。然后,员工提取他们的前端副本,使用列表框对其名称进行排序,然后继续使用userform完成案例审查。

也许将案例直接加载到后端会使数据库容易受到破坏。而且,当他这么做的时候,我并不是坐在那个加载案件的人旁边,知道他是否可以做一些棘手的事情。    userform有一堆有界字段,以及一些通过SQL更新更新的无界字段。当我设计数据库和表单时,这是一个真正的痛苦,以避免锁定错误,但我最终将它们全部排除。但是如果我能再做一遍,我可能不会使用任何有界字段并使用update语句操作整个userform(但是我真的不可能重做数据库。)

我也将尝试实现这个How to determine who is logged in ,这样如果我需要进行中午更新,我可以弄清楚谁在,并要求他们注销,这样我就可以做到必要校正。

想法的人? :P

0 个答案:

没有答案