访问2k3 / WinXP问题= kooky加入 [英] Access 2k3 / WinXP Issue = kooky join

查看:57
本文介绍了访问2k3 / WinXP问题= kooky加入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们的一位客户最近将他们的Office版本升级到2003年。当他们试图运行我们的程序(用Access 2000编写)时,他们最终获得了

错误的数据。我和我的同事测试了这个问题,并且发现它只发生在运行Office 2003的Windows XP机器上。

问题最终是一对一在

应用程序中加入一个查询不会像1对1加入那样执行。它好像在那里

根本没有加入。这个查询中只有两个表 - 它是一个非常简单的查询

。我们已经尝试更改MDAC,检查更新,以及

换出DLL。什么都没有解决问题。微软的知识库

没有任何迹象表明这种行为。 Google没有退回任何东西

关闭。


有没有其他人在他们的程序中看到过这种情况?没有其他联盟有这个问题,所以我认为这不是加入

本身的问题。我们可以在将来的

程序中找到一种方法来避免这个问题,但我们需要这种关系才能适用于这个特殊的

应用程序。


我们感到沮丧,无处可去。这是一个很小的事情,但它造成了很大的困难。

解决方案

< blockquote> Steve,请提供更多相关信息。


发布SQL语句(SQL查询查看。)


这些是Access表吗?在同一个数据库中?附加表格?

附表来自....?


对于JOIN中涉及的字段,请注明:

- 这是关系中的主要表;

- 在Relationships窗口中,当你检查

两个表之间的关系时,检查哪些框(关系完整性?级联更新?

....)

- 什么是字段类型(数字,文本,是/否,...)和字段大小/>
主表中的字段。

- 相关

表中匹配字段的字段类型和字段大小是什么。


另外一些基本的故障排除:

1.取消选中下面的框:

工具|选项|一般|名称自动更正

解释原因:
http: //allenbrowne.com/bug-03.html


2.压缩数据库:

工具|数据库实用程序|紧凑

这会转储Name-AutoCorrupt垃圾,如果因为索引错误而导致
,也可以解决问题。


-

Allen Browne - 微软MVP。西澳大利亚州珀斯。

访问用户提示 - http:// allenbrowne.com/tips.html

回复群组,而不是mvps dot org的allenbrowne。


" Steve" <第********* @ gmail.com>在消息中写道

news:11 ********************** @ g49g2000cwa.googlegr oups.com ...

我们的一位客户最近将他们的Office版本升级到了2003.当他们试图运行我们的程序(用Access 2000编写)时,他们最终使用了错误的数据。我的同事和我已经测试了这个问题,并且发现它只发生在运行Office 2003的Windows XP计算机上。
问题最终是一对一加入一个查询/>应用程序不执行1对1连接。它表现得好像没有任何联接。此查询中只有两个表 - 它是一个非常简单的查询。我们已经尝试更改MDAC,检查更新,并交换掉DLL。什么都没有解决问题。微软的知识库
没有迹象表明这种行为。谷歌没有返回任何关闭的东西。

有没有其他人在他们的程序中看到过这种情况?没有其他联盟有这个问题,所以我认为加入
本身并不是一个问题。我们可能会在未来的程序中找到一种避免这个问题的方法,但我们需要这种关系才能适用于这个特定的应用程序。

我们感到很沮丧和旅行无处。这是一个小小的事情,但它造成了很大的困难。



Allen,谢谢你的回复。


此查询中使用的SQL语句是:

SELECT ISMF.SPREADKEY,ISMF.CLASSKEY,ISMF.NAME,ISMF.KIND,

ICMF.TCHNAME,ICMF.TCHCODE,ICMF.TCHNUM

来自ISMF INNER JOIN ICMF ON ISMF.CLASSKEY = ICMF.CLASSKEY

WHERE(((ISMF.KIND )=" S"));


表ISMF是我们在这个

查询中最接近主表的东西。查询中的一个连接没有参照完整性或

级联更新已打开。

两个键都是数字字段,大小为Double。


这个问题的结果是这个

查询产生的记录数量大约是应该存在的数量的5倍。在结果中应该有大约1600条记录。

;有8650.如前所述,

这个查询在Windows 2000或XP的
中的Access 2000和Access 2002中运行得非常好。它在运行Windows 2000时在Access 2003中运行。

只要组合Access 2003和Windows XP,此查询就会产生额外记录




感谢您的建议 - 我试过了,并在名称自动更正上检查了您的

页面。事实证明数据库没有打开自动更正的
名称,但无论如何我都尝试了你的建议。

不幸的是,问题仍然存在。


-Steve


" Allen Browne" <铝********* @ SeeSig.Invalid>写在

news:43 *********************** @ per-qv1-newsreader-01.iinet.net.au :

2.压缩数据库:
工具|数据库实用程序|紧凑
这会转储Name-AutoCorrupt垃圾,如果由于索引错误也可以解决问题。




它会还会转储查询的编译,这可能是以与新版本

Access不兼容的方式优化的。

对于任何

查询在不同机器上返回不同数据的情况,我会推荐使用compact。


-

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

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


One of our clients recently upgraded their Office version to 2003. When
they tried to run our program (written in Access 2000), they ended up
with the wrong data. My coworker and I have tested this problem and
found that it ONLY occurs on Windows XP machines running Office 2003.
The problem ends up being that ONE 1-to-1 join in ONE query within the
application does not perform as a 1-to-1 join. It acts as though there
is no join at all. There are only two tables in this query - it''s a
very simple query. We''ve tried changing MDAC, checked for updates, and
swapped out DLLs. Nothing fixes the issue. Microsoft''s Knowledge base
has no indication of this behavior. Google doesn''t return anything
close.

Has anyone else seen this happen in their programs? No other joins have
this problem, so I don''t think it''s really an issue with the join
itself. We can probably find a way to avoid this problem in future
programs, but we need that relationship to work for this particular
application.

We''re getting frustrated and traveling nowhere. It''s such a little
thing, but it''s causing so much difficulty.

解决方案

Steve, please provide more info about this.

Post the SQL statement (SQL View of query.)

Are these Access tables in the same database? Attached Access tables?
Attached tables from ....?

For the fields involved in the JOIN, indicate:
- Which is the primary table in the relationship;
- In the Relationships window, when you examine the relationship between the
two tables, which boxes are checked (Relational integrity? Cascading update?
....)
- What is the Field Type (Number, Text, Yes/No, ...) and Field Size of the
field in the primary table.
- What is the Field Type and Field Size of the matching field in the related
table.

Also some basic trouble shooting:
1. Uncheck the boxes under:
Tools | Options | General | Name AutoCorrect
Explanation of why:
http://allenbrowne.com/bug-03.html

2. Compact the database:
Tools | Database Utilities | Compact
This dumps the Name-AutoCorrupt junk, and could also solve the problem if it
were due to a bad index.

--
Allen Browne - Microsoft MVP. Perth, Western Australia.
Tips for Access users - http://allenbrowne.com/tips.html
Reply to group, rather than allenbrowne at mvps dot org.

"Steve" <th*********@gmail.com> wrote in message
news:11**********************@g49g2000cwa.googlegr oups.com...

One of our clients recently upgraded their Office version to 2003. When
they tried to run our program (written in Access 2000), they ended up
with the wrong data. My coworker and I have tested this problem and
found that it ONLY occurs on Windows XP machines running Office 2003.
The problem ends up being that ONE 1-to-1 join in ONE query within the
application does not perform as a 1-to-1 join. It acts as though there
is no join at all. There are only two tables in this query - it''s a
very simple query. We''ve tried changing MDAC, checked for updates, and
swapped out DLLs. Nothing fixes the issue. Microsoft''s Knowledge base
has no indication of this behavior. Google doesn''t return anything
close.

Has anyone else seen this happen in their programs? No other joins have
this problem, so I don''t think it''s really an issue with the join
itself. We can probably find a way to avoid this problem in future
programs, but we need that relationship to work for this particular
application.

We''re getting frustrated and traveling nowhere. It''s such a little
thing, but it''s causing so much difficulty.



Allen, thank you for responding.

The SQL statement used in this query is:
SELECT ISMF.SPREADKEY, ISMF.CLASSKEY, ISMF.NAME, ISMF.KIND,
ICMF.TCHNAME, ICMF.TCHCODE, ICMF.TCHNUM
FROM ISMF INNER JOIN ICMF ON ISMF.CLASSKEY = ICMF.CLASSKEY
WHERE (((ISMF.KIND)="S"));

Table ISMF is the closest thing to a primary table we have in this
query. The one join in the query does not have referential integrity or
cascading updates turned on.
Both keys are Number fields, size Double.

The result of this issue is that the number of records produced by this
query is about 5 times as many as there should be. There should be
roughly 1600 records in the result; there are 8650. As stated earlier,
this query works perfectly fine in Access 2000 and Access 2002 in
Windows 2000 or XP. It works in Access 2003 when running Windows 2000.
As soon as Access 2003 and Windows XP are combined, this query produces
the extra records.

Thank you for your suggestions - I tried them, and checked out your
page on name AutoCorrect. It turned out that the database did not have
name AutoCorrect turned on, but I tried your suggestions anyway.
Unfortunately, the problem still exists.

-Steve


"Allen Browne" <Al*********@SeeSig.Invalid> wrote in
news:43***********************@per-qv1-newsreader-01.iinet.net.au:

2. Compact the database:
Tools | Database Utilities | Compact
This dumps the Name-AutoCorrupt junk, and could also solve the
problem if it were due to a bad index.



It will also dump the compilation of the query, which may have been
optimized in a way that is not compatible with the new version of
Access.

A compact is the first thing I would recommend for any case where a
query is returning different data on different machines.

--
David W. Fenton http://www.bway.net/~dfenton
dfenton at bway dot net http://www.bway.net/~dfassoc


这篇关于访问2k3 / WinXP问题= kooky加入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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