在机智的尽头有关Access 2k表中损坏的记录! [英] at wit's end about corrupted records in Access 2k table!

查看:58
本文介绍了在机智的尽头有关Access 2k表中损坏的记录!的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,


这将是一个相当冗长的问题。


我有一个Access 2k数据库,分开的前端/后端。前端

副本位于约30个工作站上,并在

工作日期间经常使用。后端有一个名为CLIENTS的表,大约有
6000个客户记录。表中数据的更改是通过

前端数据库表单进行的,该表单以CLIENTS作为其记录源。


过去一周,大约有6条记录在这张桌子上损坏了
。表本身仍然可以打开和关闭。在大多数

的情况下,数据可以毫无问题地更新。


但是至少每天一次,用户将更新记录,并且所有<与该记录关联的
字段已损坏。当用户实际输入数据时,可能会发生这种情况,或者如果她输入了数据,然后将记录(表格)打开,则可能会发生这种情况。通常没有警告或错误消息




我打开了后端数据库并在
$中找到了这些损坏的记录b $ b CLIENTS表。他们显然已经腐败了。当我尝试删除它们时

我收到有关未找到搜索密钥的错误消息。如果我将后端数据库复制到我的本地硬盘驱动器上,我已经很好了

成功删除这些损坏的记录。


我做了很多搜索,包括谷歌小组和

MS知识库。到目前为止,我已经尝试过以下方法:


首先,我在所有计算机上更新了msjet40.dll文件


接下来,我用过一个MakeTable查询,将所有好的记录存入一个

新表,删除原来的CLIENTS表,并重命名新的

客户端。


然后我创建了一个新的空白数据库,并从旧数据库导入了所有对象,将新数据库重命名为旧数据库,删除了

旧的数据库,并将新的数据库复制回服务器。


一天的一切似乎都很好。然后昨天我打开了数据库

并收到一条错误消息,表示后端数据库格式为

无法识别或已损坏。当给出选项

尝试并修复它时,我点击了是。紧凑/维修开始。 Abouthalf

完成整个过程,Access完全停止响应。


然后我尝试使用Jetcomp.exe进行修复。这也挂了大约1/2

的方式。


不确定还能做什么,我恢复了数据库的备份副本

昨晚在服务器上保存了。


今天早上一切正常,直到我在

记录中进行更改。当我点击关闭表单时,我收到了一条写冲突

消息,其他用户已经对记录进行了更改,因为我打开了它 - 我想要保存更改,复制到剪贴板,或不保存

更改。如果我点击否,表格就会关闭。我可以重新打开并且

访问记录。如果我单击是,则记录已损坏。我有意选择了这个特别的记录,因为它是一个非常古老的

,我知道其他任何人都不会这样做。


所以底线是我还有一个生病的数据库。我们的代理商

每天依赖于这个数据库来跟踪特殊需求儿童的转诊,评估和

治疗。失去它会是灾难性的,但我绝对不知道接下来应该做些什么。通过

的方式,此表中没有备注字段。


如果您有任何超出我尝试的建议,请回复。


Lee

Hello all,

This is going to be a rather lengthy "question".

I have an Access 2k database, separated front end/back end. Front end
copies are on about 30 workstations and used frequently during the
work day. The backend has a table called CLIENTS with approximately
6000 client records. Changes to data in the table are made via a
frontend db Form which has CLIENTS as its record source.

During the past week, approximately 6 records have become corrupted in
this table. The table itself can still be opened and closed. In most
cases, data can be updated without a problem.

But at least once a day, a user will be updating a record, and all
fields associated with that record become corrupted. This may happen
when the user is actually entering data, or may happen if she has
entered data and then left the record (form)open. There has typically
been no warning or error message.

I''ve opened the backend db and found these corrupted records in the
CLIENTS table. They are obviously corrupted. When I try to delete them
I get the error message about "search key was not found". If I copy
the backend database onto my local hard drive, I''ve had pretty good
sucess deleting these corrupt records.

I did a lot of searching for answers, including Google groups and the
MS Knowledge base. So far I''ve tried the following:

First, I uddated the msjet40.dll file on all computers

Next, I used a MakeTable query, to deposit all the good records into a
new table, deleted the original CLIENTS table, and renamed the new one
CLIENTS.

I then created a new blank database, and imported all the objects from
the old database, renamed the new database to the old name, deleted
the old database, and copied the new one back onto the server.

Everything seemed fine for a day. Then yesterday I opened the database
and received an error message that the backend database was in an
unrecognizable format or had been damaged. When given the option to
try and repair it, I clicked "Yes". Compact/repair started. Abouthalf
way through the process, Access stopped responding entirely.

I then tried using Jetcomp.exe to repair. That also hung up about 1/2
way through.

Unsure what else to do, I restored the backup copy of the database
that was saved last night on the server.

This morning everything was working fine until I was making changes in
record. When I clicked to close the form, I got a "write conflict"
message that another user had made changes in the records since I
opened it- did I want to save changes, copy to clipboard, or not save
changes. If I clicked NO, the form closed fine. I could reopen and
access the record. If I clicked YES, the record became corrupted. I
purposely chose this particular record because it was a very old one
that I knew noone else would be working on.

So the bottom line is that I still have a sick database. Our agency
depends on this database daily to track referrals, evaluation, and
treatment for special needs children. It would be disastrous to lose
it, but I am absolutley out of ideas as to what I should do next. By
the way, there is not a memo field in this table.

If you have any suggestions beyond what I''ve tried, please respond.

Lee

推荐答案

我当然希望别人能提出更多建议。我会尝试:

从备份恢复BE数据库并尝试压缩/修复它之前

腐败。

尝试运行它通过前端在本地(而非局域网) - 无论如何都会发生

损坏吗?如果不是,则必须是差的LAN连接。

他们修复了吗?最近的网络?

如果没有别的办法,我会尝试备份这个数据库,而不是用它来编辑记录 - 仅用于检索旧记录,并放新

记录到一张结构相同的空桌子。


祝你好运,

Pavel


Lee Rouse写道:
I sure hope someone else pitches in with more advice. What I would try:
Restore the BE DB from the backup and try compact/reparing it before you
get corruption.
Try to run it locally (not over LAN) via the front end - does the
corruption occur anyway? If not, it must be a poor LAN connection. Did
they "fix" the network recently?
If nothing else works, I would try to back up this database and not use
it for editing records - only for retrieving old records, and put new
records into an empty table with identical structure.

Good luck,
Pavel

Lee Rouse wrote:

大家好,

这将是一个相当冗长的问题。

>我有一个Access 2k数据库,前端/后端分开。前端
副本位于约30个工作站上,并在
工作日期间经常使用。后端有一个名为CLIENTS的表,大约有6000个客户端记录。表中数据的更改是通过一个前端数据库表单进行的,该表单以CLIENTS作为其记录源。

在过去一周内,大约有6条记录已损坏。
表。表本身仍然可以打开和关闭。在大多数情况下,数据可以毫无问题地更新。

但至少每天一次,用户将更新记录,以及与该记录相关的所有
字段变得腐败。当用户实际输入数据时可能会发生这种情况,或者如果她已输入数据然后将记录(表单)保持打开状态,则可能会发生这种情况。通常没有警告或错误消息。

我打开了后端数据库,并在
CLIENTS表中找到了这些已损坏的记录。他们显然已经腐败了。当我尝试删除它们时
我收到有关未找到搜索键的错误消息。如果我将后端数据库复制到我的本地硬盘上,我已经很好地删除了这些损坏的记录。

我做了很多寻找答案,包括Google群组和
MS知识库。到目前为止,我已经尝试了以下内容:

首先,我在所有计算机上更新了msjet40.dll文件

接下来,我使用了MakeTable查询来存放所有好记录到新表中,删除了原来的CLIENTS表,并重新命名了新的客户端。

然后我创建了一个新的空白数据库,并从中导入了所有对象
旧数据库,将新数据库重命名为旧名称,删除旧数据库,并将新数据库复制回服务器。

一天看来一切都很好。然后昨天我打开了数据库
并收到一条错误消息,指出后端数据库格式无法识别或已损坏。如果选择尝试修复它,我点击是。紧凑/维修开始。大约
通过这个过程,Access完全停止响应。

然后我尝试使用Jetcomp.exe进行修复。这也挂了大概1/2 /
的方式。

不确定还能做什么,我恢复了昨晚在服务器上保存的数据库的备份副本。

今天早上一切正常,直到我对
记录进行更改。当我点击关闭表单时,我收到一条写入冲突消息,说明其他用户在打开记录后对记录进行了更改 - 我是否要保存更改,复制到剪贴板,或不保存更改。如果我点击否,表格就会关闭。我可以重新打开并访问记录。如果我单击是,则记录已损坏。我特意选择了这个特殊的记录,因为它是一个非常古老的记录,我知道其他任何人都不会这样做。

所以最重要的是我仍然生病了数据库。我们的代理商
每天依靠这个数据库来跟踪特殊需求儿童的转诊,评估和治疗。失去它将是灾难性的,但我对于接下来应该做什么的想法绝对是绝对的。顺便说一句,这张桌子上没有备忘录字段。

如果您有任何建议,请回复。

Lee

Hello all,

This is going to be a rather lengthy "question".

I have an Access 2k database, separated front end/back end. Front end
copies are on about 30 workstations and used frequently during the
work day. The backend has a table called CLIENTS with approximately
6000 client records. Changes to data in the table are made via a
frontend db Form which has CLIENTS as its record source.

During the past week, approximately 6 records have become corrupted in
this table. The table itself can still be opened and closed. In most
cases, data can be updated without a problem.

But at least once a day, a user will be updating a record, and all
fields associated with that record become corrupted. This may happen
when the user is actually entering data, or may happen if she has
entered data and then left the record (form)open. There has typically
been no warning or error message.

I''ve opened the backend db and found these corrupted records in the
CLIENTS table. They are obviously corrupted. When I try to delete them
I get the error message about "search key was not found". If I copy
the backend database onto my local hard drive, I''ve had pretty good
sucess deleting these corrupt records.

I did a lot of searching for answers, including Google groups and the
MS Knowledge base. So far I''ve tried the following:

First, I uddated the msjet40.dll file on all computers

Next, I used a MakeTable query, to deposit all the good records into a
new table, deleted the original CLIENTS table, and renamed the new one
CLIENTS.

I then created a new blank database, and imported all the objects from
the old database, renamed the new database to the old name, deleted
the old database, and copied the new one back onto the server.

Everything seemed fine for a day. Then yesterday I opened the database
and received an error message that the backend database was in an
unrecognizable format or had been damaged. When given the option to
try and repair it, I clicked "Yes". Compact/repair started. Abouthalf
way through the process, Access stopped responding entirely.

I then tried using Jetcomp.exe to repair. That also hung up about 1/2
way through.

Unsure what else to do, I restored the backup copy of the database
that was saved last night on the server.

This morning everything was working fine until I was making changes in
record. When I clicked to close the form, I got a "write conflict"
message that another user had made changes in the records since I
opened it- did I want to save changes, copy to clipboard, or not save
changes. If I clicked NO, the form closed fine. I could reopen and
access the record. If I clicked YES, the record became corrupted. I
purposely chose this particular record because it was a very old one
that I knew noone else would be working on.

So the bottom line is that I still have a sick database. Our agency
depends on this database daily to track referrals, evaluation, and
treatment for special needs children. It would be disastrous to lose
it, but I am absolutley out of ideas as to what I should do next. By
the way, there is not a memo field in this table.

If you have any suggestions beyond what I''ve tried, please respond.

Lee



le ******* *@yahoo.com (Lee Rouse)写道:

新闻:81 ************************ *@posting.google.co m:


[]
le********@yahoo.com (Lee Rouse) wrote in
news:81*************************@posting.google.co m:

[]
在过去一周内,大约有6条记录已损坏在这张表中。桌子本身仍然可以打开并关闭。在大多数情况下,数据可以毫无问题地更新。

但至少每天一次,用户将更新记录,并且与该记录相关的所有
字段都会损坏。这可能在用户实际输入数据时发生,或者如果她已输入数据然后将记录(表单)打开则可能发生。
通常没有警告或错误消息。

我打开了后端数据库,在CLIENTS表中找到了这些损坏的记录。他们显然已经腐败了。当我尝试删除它们时,我收到有关搜索密钥未找到的错误消息。如果我将后端数据库复制到我的本地硬盘驱动器上,
我已经有很好的成功删除这些损坏的记录。


我在使用

错误的安全文件的情况下看到了SEARCH KEY NOT FOUND错误,但仅在Jet 4 SP 6之前(见下文。

我做了很多寻找答案,包括谷歌小组和MS知识库。到目前为止,我已尝试过以下内容:

首先,我在所有计算机上更新了msjet40.dll文件


嗯,你真的不能这样做。


至少更新到Jet 4 Service Pack 6.不要考虑SP7,但是SP8

是最新的。最普遍的Jet 4问题由SP6确定

(我所有的A2K客户都在上面)。


A2K本身应该是Service Release 1a或更高版本(上面的Office SR2和

实现了Draconian Outlook安全补丁,其中
阻止了几乎所有附件的保存或打开,所以你可以

不想应用它;我从不应用任何Office 2K SR1a)。

接下来,我使用MakeTable查询,将所有好的记录存入新表,删除了原来的CLIENTS表,并重新命名了新的一个CLIENTS。

然后我创建了一个新的空白数据库,并从旧数据库导入所有对象,将新数据库重命名为旧数据库名称,
删除旧数据库,并将新数据库复制回
服务器。

一天看起来一切都很好。然后昨天我打开了
数据库并收到一条错误消息,指出后端数据库
格式无法识别或已损坏。当给出
尝试修复它的选项时,我点击了是。紧凑/维修
开始。通过这个过程,Access停止了完全响应。


在所有工作站都在SR1a +和Jet SP 4 SP6或SP8之前,不要用b $ b浪费你的时间用其他任何东西。

然后我尝试使用Jetcomp.exe进行修复。这也挂了一两步。

不确定还能做什么,我恢复了昨晚在服务器上保存的数据库的备份副本。

今天上午一切正常,直到我在记录中进行了更改。当我点击关闭表单时,我得到了一个
写冲突。自我打开以来,另一个用户在
记录中进行了更改的消息 - 我是想保存更改,复制到剪贴板还是不保存更改。如果我点击否,表格关闭
罚款。我可以重新打开并访问记录。如果我单击是,则
记录已损坏。我特意选择了这个特别的记录,因为它是一个非常古老的记录,我知道其他任何人都不会工作。

所以最重要的是我仍然生病了数据库。 。 。 。


我认为你应该重新创建数据库,而不是通过导入。


我只导入表结构(没有数据),然后将数据从损坏的MDB中的表中追加到新的中。

。 。 。我们的
代理机构每天依赖此数据库来跟踪特殊需求儿童的转诊,评估和治疗。失去它会是灾难性的,但我绝对不知道接下来应该做什么。顺便说一下,这个
表中没有备注字段。
During the past week, approximately 6 records have become
corrupted in this table. The table itself can still be opened and
closed. In most cases, data can be updated without a problem.

But at least once a day, a user will be updating a record, and all
fields associated with that record become corrupted. This may
happen when the user is actually entering data, or may happen if
she has entered data and then left the record (form)open. There
has typically been no warning or error message.

I''ve opened the backend db and found these corrupted records in
the CLIENTS table. They are obviously corrupted. When I try to
delete them I get the error message about "search key was not
found". If I copy the backend database onto my local hard drive,
I''ve had pretty good sucess deleting these corrupt records.
I''ve seen the SEARCH KEY NOT FOUND error in cases where I was using
the wrong security file, but only before Jet 4 SP 6 (see below).
I did a lot of searching for answers, including Google groups and
the MS Knowledge base. So far I''ve tried the following:

First, I uddated the msjet40.dll file on all computers
Well, you can''t really do that by itself.

Update at least to Jet 4 Service Pack 6. Don''t consider SP7, but SP8
is the latest. The most widespread Jet 4 problems are fixed by SP6
(all my A2K clients are on it).

And A2K itself should be Service Release 1a or later (Office SR2 and
above implements that Draconian Outlook security patch, which
prevents the saving or opening of almost all attachmets, so you may
not want to apply it; I never apply anything Office 2K SR1a).
Next, I used a MakeTable query, to deposit all the good records
into a new table, deleted the original CLIENTS table, and renamed
the new one CLIENTS.

I then created a new blank database, and imported all the objects
from the old database, renamed the new database to the old name,
deleted the old database, and copied the new one back onto the
server.

Everything seemed fine for a day. Then yesterday I opened the
database and received an error message that the backend database
was in an unrecognizable format or had been damaged. When given
the option to try and repair it, I clicked "Yes". Compact/repair
started. Abouthalf way through the process, Access stopped
responding entirely.
Until all workstations are at SR1a+ and Jet SP 4 SP6 or SP8, don''t
waste your time with anything else.
I then tried using Jetcomp.exe to repair. That also hung up about
1/2 way through.

Unsure what else to do, I restored the backup copy of the database
that was saved last night on the server.

This morning everything was working fine until I was making
changes in record. When I clicked to close the form, I got a
"write conflict" message that another user had made changes in the
records since I opened it- did I want to save changes, copy to
clipboard, or not save changes. If I clicked NO, the form closed
fine. I could reopen and access the record. If I clicked YES, the
record became corrupted. I purposely chose this particular record
because it was a very old one that I knew noone else would be
working on.

So the bottom line is that I still have a sick database. . . .
I think you should recreate the database, and not by an import.

I would import table structures only (no data), then append the data
from the tables in corrupt MDB into the fresh one.
. . . Our
agency depends on this database daily to track referrals,
evaluation, and treatment for special needs children. It would be
disastrous to lose it, but I am absolutley out of ideas as to what
I should do next. By the way, there is not a memo field in this
table.




损坏的表是否有备注字段?


如果是这样,你应该认真考虑不要在备忘录字段中使用所有

的绑定字段。你实现的方式是:


1.删除绑定到备忘录

字段的文本字段的ControlSource。


2.在每条记录的OnCurrent事件中,将来自

备忘录字段的数据以''recordsource的形式复制到那些

备忘录的文本框中。你要确保你的文本框没有*与底层字段具有相同的名称,否则你会遇到问题。


3.在备忘录的AfterUpdate事件中,根据底层

记录源中字段的值检查备忘录

文本框的值,如果是'改变了,更新它。


它看起来像这样:


OnCurrent:


Me!txtMemo =我!备忘录


AfterUpdate:


如果是Nz(Me!txtMemo)<> Nz(我!备忘录)然后

我!备忘录=我!txtMemo

结束如果


您可能想要移动将基础字段更新为

Form'的AfterUpdate事件。这样做的好处就是保持

备忘录更改记录的最短时间

可能。


-

David W. Fenton http://www.bway.net / ~dfenton

dfenton at bway dot net http ://www.bway.net/~dfassoc


le ******** @ yahoo.com (Lee Rouse)写道:
le********@yahoo.com (Lee Rouse) wrote:
这将是一个相当冗长的问题。


我们更喜欢冗长的问题和非常简短的问题。

过去一周,


发生了什么变化一周前?新服务器?新计算机添加到网络?硬件

改变?计算机上的新SP?


David已经给了你一些很好的建议。但是我会添加更多的b



我所做的是使用各种可用的API调用并检查版本

关键dll的数量和日期/时间,msjetxx.dll,以确保它与我的系统上的
相匹配。有关详细信息,请参阅我的网站上的提示页面,包括示例

代码:验证是否安装了适当的Jet Service Pack
www.granite.ab.ca\access\verifyjetsp.htm


另请参阅我网站上的访问腐败常见问题解答。


David提到的知识库文章可以在

找到ACC2000:找不到搜索密钥任何记录压缩期间出现错误信息或

保存 http://支持.microsoft.com /?id = 301474

今天早上一切正常,直到我更改了
记录。当我点击关闭表单时,我收到一条写入冲突消息,说明其他用户在打开记录后对记录进行了更改 - 我是否要保存更改,复制到剪贴板,或不保存更改。如果我点击否,表格就会关闭。我可以重新打开并访问记录。如果我单击是,则记录已损坏。我特意选择了这个特别的记录,因为它是一个非常古老的记录,我知道其他任何人都不会工作。
This is going to be a rather lengthy "question".
We much prefer lengthy questions to very short questions.
During the past week,
What has changed a week ago? New server? New computer added to network? Hardware
change? New SP on a computer?

David has already given you some excellent advice. But I''ll add a couple of more
things.

What I''ve done is use the various API calls available and am checking the version
number and date/time of a crucial dll, msjetxx.dll, to ensure it matches what I have
on my system. See the tips page at my website for more details including sample
code: Verify Appropriate Jet Service Pack is installed
www.granite.ab.ca\access\verifyjetsp.htm

Also see the Access Corruption FAQ at my website.

The KB article which David mentions can be found at
ACC2000: "Search Key Was Not Found in Any Record" Error Message During Compact or
Save http://support.microsoft.com/?id=301474
This morning everything was working fine until I was making changes in
record. When I clicked to close the form, I got a "write conflict"
message that another user had made changes in the records since I
opened it- did I want to save changes, copy to clipboard, or not save
changes. If I clicked NO, the form closed fine. I could reopen and
access the record. If I clicked YES, the record became corrupted. I
purposely chose this particular record because it was a very old one
that I knew noone else would be working on.




嗯,现在这是有趣的。但我没有好的答案。


Tony

-

Tony Toews,Microsoft Access MVP

请仅在新闻组中回复,以便其他人可以阅读整个邮件主题。

Microsoft Access Links,Hints,Tips&会计系统
http://www.granite.ab.ca /accsmstr.htm


这篇关于在机智的尽头有关Access 2k表中损坏的记录!的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆