SourceTableName截断 [英] SourceTableName truncate

查看:110
本文介绍了SourceTableName截断的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我最初的问题是在MS Access中,SourceTableName属性为

a TableDef被截断为最多32个字符。


我搜索了高低并且无法找到解决方案,尽可能多地搜索论坛,因为我无论如何都无济于事(我甚至连微软都没有承认存在这个问题)。 />

所以我放弃了,简单地将表格的名称缩短了。


但是我知道完整的SourceTableName存在于某处,我可以证明它!


1)创建一个数据库be.mdb和一个名为这个表名是

四十个字符的表

2)在步骤1)中创建的表中创建数据库fe.mdb和链接

3)将此链接表的名称更改为精确

4)在Visual Basic中的立即窗口中键入以下内容: -


? CurrentDb.TableDefs(" exact")。SourceTableName

你会看到这个表名是四十个字符这是您可以从SourceTableName属性获得的最多

信息


5)现在打开be.mdb并从此表名称更改表名是

四十个字符长到任何东西

6)打开fe.mdb,然后尝试打开表格精确

7)因为链接表的原始内容已经改变你将收到错误

消息: -


Microsoft Jet数据库引擎无法找到输入表或

查询''这个表名长四十个字符''。确保它存在

并且其名称拼写正确

8)请注意,错误消息包括完整且正确的

SourceTableName


因此,我的问题是,

链接表的完整原始名称必须位于fe.mdb中的某个位置,并且可能无法访问

使用SourceTableName属性。

有没有人知道怎么做到这一点,这样我就可以避免限制

使用


SourceTableName属性。

我使用的是Windows XP和Access 2000

------

Sean


如果一开始你没有成功,就去睡觉吧


***通过Developersdex发送 http://www.developersdex.com ***

解决方案

" Sean Howard" < SE ********* @ TimeaIntLtd.hu>在消息中写道

新闻:91 *************** @ news.uswest.net ...

我的初步问题是在MS Access中,TableDef的SourceTableName属性被截断为最多32个字符。

我搜索高低,无法找到解决方案,拖网多了
论坛,因为我可能都无济于事(我甚至不能承认存在问题的微软承认)。

所以我放弃了,简单地将我的桌子名称缩短了。 />
但是我知道完整的SourceTableName存在于某处,我可以证明它!

1)创建一个数据库be.mdb和一个名为这个表名是
的表四十个字符长
2)在步骤1)中创建的表格中创建数据库fe.mdb和链接。
3)将此链接表的名称更改为精确
4)在Visual Basic中的立即窗口中键入以下内容: -

? CurrentDb.TableDefs(" exact")。SourceTableName
你会看到这个表名是四十个字符。这是您可以从SourceTableName属性获得的最多信息

5)现在打开be.mdb并更改表名称此表名是
四十个字符长 ;到任何东西
6)打开fe.mdb然后尝试打开表格精确
7)由于链接表的原始内容已经改变,你将收到错误
消息: -

Microsoft Jet数据库引擎找不到输入表或
查询''这个表名长四十个字符''。确保它存在
并且其名称拼写正确
8)请注意错误信息包括完整和正确
SourceTableName

我的问题因此肯定是
链接表的完整原始名称必须在fe.mdb中的某个地方,并且可以使用SourceTableName属性访问WITHOUT

有没有人知道如何到达它,这样我就可以避免限制使用

SourceTableName属性。

我使用的是Windows XP和Access 2000

Sean



使用WinXP& AccXP我无法在步骤4中复制问题。

这是我的直接窗口:


?CurrentDb.TableDefs(" exact")。SourceTableName

这个表名长是四十个字符


如果你使用Access UI在
$ b中打开链接的fe表,你能看到什么? $ b设计视图,然后选择查看>属性?你是说这个名字是

也被截断了吗?


blockquote>

II看起来像你通过Access UI建议我确实可以看到

整个原始表名。


这很棒,但我找不到通过
$ b复制这种方法的方法$ b VB。 描述是指我在Access UI中看到的属性似乎不是一个TableDef对象的一部分。

你知道它来自哪里吗?


------

肖恩


如果一开始你没有成功,就去睡觉吧


***通过开发人员指南发送 http://www.developersdex.com ***


" Sean Howard" < SE ********* @ TimeaIntLtd.hu>在留言中写道

新闻:tF *************** @ news.uswest.net ...

我看起来像你一样通过Access UI确认我确实可以看到整个原始表名。

这很棒,但我找不到通过VB复制这种方法的方法。 描述是指我在Access UI中看到的属性似乎不是TableDef对象的一部分。
你知道它来自哪里吗?

------
Sean



转到Google网上论坛搜索页并输入以下两个字词:

32 sourcetablename

从结果,它看起来确实是A2K中的一个错误但我找不到

任何MS知识库文章确认错误。因为它在我的

系统上工作正常,我猜这是在A2K2中修复过的东西。但是对于

我知道在A2K中可能有一个解决方法。

我找不到任何解决方法来获取vba中的全名。如果我不得不调查一个,我可能会考虑使用另一个对象库 - 例如,什么

与ADO发生?


My initial problem is that in MS Access the SourceTableName property of
a TableDef is truncated to a maximum of 32 characters.

I searched high and low and could not find a solution, trawled as many
forums as I could all to no avail (I could not even a Microsoft
admittence that the problem exists).

So I gave up and simply made the names of my tables shorter.

But I KNOW the full SourceTableName exists somewhere and I can prove it!

1) Create a database be.mdb and one table called "this table name is
forty characters long"
2) Create a database fe.mdb and link in the table created in step 1)
3) Change the name of this linked table to "precise"
4) In the Immediate Window in Visual Basic type the following :-

? CurrentDb.TableDefs("precise").SourceTableName
You will see "this table name is forty charact" this is the most
information you can get from the SourceTableName property

5) Now open be.mdb and change the table name from "this table name is
forty characters long" to "anything"
6) Open fe.mdb and then try to open the table "precise"
7) As the linked table''s original has changed you will get the error
message :-

The Microsoft Jet database engine cannot find the input table or
query ''this table name is forty characters long''. Make sure it exists
and that its name is spelt properly
8) Notice that the error message includes the FULL AND CORRECT
SourceTableName

My question therefore is that surely the full original name for the
linked table MUST be somewhere in fe.mdb and possibly accesible WITHOUT
using the SourceTableName property.
Does anyone know how to get to it, that way I could avoid the limitation
of using the

SourceTableName property.
I am using Windows XP and Access 2000

------
Sean

"If at first you don''t succeed, go to sleep"

*** Sent via Developersdex http://www.developersdex.com ***

解决方案

"Sean Howard" <se*********@TimeaIntLtd.hu> wrote in message
news:91***************@news.uswest.net...

My initial problem is that in MS Access the SourceTableName property of
a TableDef is truncated to a maximum of 32 characters.

I searched high and low and could not find a solution, trawled as many
forums as I could all to no avail (I could not even a Microsoft
admittence that the problem exists).

So I gave up and simply made the names of my tables shorter.

But I KNOW the full SourceTableName exists somewhere and I can prove it!

1) Create a database be.mdb and one table called "this table name is
forty characters long"
2) Create a database fe.mdb and link in the table created in step 1)
3) Change the name of this linked table to "precise"
4) In the Immediate Window in Visual Basic type the following :-

? CurrentDb.TableDefs("precise").SourceTableName
You will see "this table name is forty charact" this is the most
information you can get from the SourceTableName property

5) Now open be.mdb and change the table name from "this table name is
forty characters long" to "anything"
6) Open fe.mdb and then try to open the table "precise"
7) As the linked table''s original has changed you will get the error
message :-

The Microsoft Jet database engine cannot find the input table or
query ''this table name is forty characters long''. Make sure it exists
and that its name is spelt properly
8) Notice that the error message includes the FULL AND CORRECT
SourceTableName

My question therefore is that surely the full original name for the
linked table MUST be somewhere in fe.mdb and possibly accesible WITHOUT
using the SourceTableName property.
Does anyone know how to get to it, that way I could avoid the limitation
of using the

SourceTableName property.
I am using Windows XP and Access 2000

------
Sean


With WinXP & AccXP I cannot replicate the problem in step 4.
Here''s my immediate window:

?CurrentDb.TableDefs("precise").SourceTableName
this table name is forty characters long

What can you see if you use the Access UI to open the linked fe table in
design view, then select View>Properties? Are you saying the name is
truncated here too?



I I look as you suggect through the Access UI I can indeed see the
entire original table name.

This is great but I cannot find a way to replicate this method through
VB. The "Description" property I see in Access UI does not appear to be
a part of a TableDef object.
Do you know where it comes from ?

------
Sean

"If at first you don''t succeed, go to sleep"

*** Sent via Developersdex http://www.developersdex.com ***


"Sean Howard" <se*********@TimeaIntLtd.hu> wrote in message
news:tF***************@news.uswest.net...

I I look as you suggect through the Access UI I can indeed see the
entire original table name.

This is great but I cannot find a way to replicate this method through
VB. The "Description" property I see in Access UI does not appear to be
a part of a TableDef object.
Do you know where it comes from ?

------
Sean


Go to the Google Groups search page and type in these two terms:
32 sourcetablename
From the results, it looks like it is indeed a bug in A2K but I cannot find
any MS knowledge base article confirming the bug. As it works OK on my
system, I would guess this is somthing that has been fixed in A2K2. But for
all I know there may be a fix for this in A2K.
I could not find any work-around to get the full name in vba. If I had to
investigate one, I might look at using another object library - eg what
happens with ADO?


这篇关于SourceTableName截断的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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