2014-04-29 54 views
1

我有一个访问数据库,我们使用简单的报告解决方案,它通过ODBC链接从远程数据库中提取数据。数据仓库提供商最近为其所有表格添加了一个新的数据字段,它们被格式化为'BIGINT'MS - 访问BigInt SQL SERVER问题

现在访问将所有记录显示为已删除,因为它无法处理BIGINT链接表。

由于数据仓库不会改变他们的表有无论如何,我可以让MS-Access正确显示并忽略表中的'BIGINT'字段链接?

我有通过复制整个数据仓库减去此列的MySQL数据库每天这是很不理想解决此在这个时刻......

我不能为我的工作生活这一点。

回答

1

此链接显示的数据加载到本地表与字符串的数据类型:

http://social.msdn.microsoft.com/Forums/office/en-US/fb6f99ec-2ed7-487b-ba39-0777a0b44d5f/the-bigint-problem?forum=accessdev

也许考虑的MS Access的用处在这里受到限制,因为可以支付使用SQL Server的将来你将继续遇到这类问题。有什么理由不能直接使用数据仓库吗?

您也可以考虑使用.ADP(MS Access的文件类型),它具有与SQL Server数据库(无ODBC flimflammery)的本机OLE DB连接,但也包括所有常用的表单和报告。

ADP's已被弃用,但我已与他们取得了巨大成功。

+0

感谢您的回复,SQL服务器是我同意我们使用的数据仓库的最佳停靠位置几乎包含了我们所做的所有操作,并且我们可以直接运行的报表有限。它进入访问是因为访问是将我们依赖的众多系统连接在一起的最简单的接口。 SQL服务器不允许访问所具有的灵活性。 –

+0

我会看.ADP,如果这不起作用,我期望不得不重新整理我们的整个解决方案,并建立一个全新的解决方案,虽然这是最终的目标不是我想在此时进行的... –

+0

由于ADP在OLE DB上运行而不是Jet,所以大部分情况下都会在这个平台上重写,只是看一看。 –

0

这是一个旧线程,但您可以创建视图并将bigint转换为int,然后Access将链接到它。

格雷格

0

这是一个古老的线程,但:

铸造你的bigintint有人曾建议是行不通的,如果任何在你bigint列的值比最大更大值为int(如果它们都不大于int的最大值,那么它会让人想知道为什么首先使用bigint)。

MS Access(从Access 2000开始)确实有一个decimal数据类型,该数据类型适用于最多可达SQL Server bigint等的最大大小的数字。所以如果你让你的MS Access字段的类型为decimal,它可以处理任何SQL Server bigint可以抛出的东西。在你采取从SQL Server数据库中的数据到您的MS Access数据库,你需要的东西,一路上程序来完成从SQL Server啜你bigint价值观和喷他们到MS Access作为decimal

2

而不是使用过程链接表,只需在Access中编写一个通路查询。最终你的BigInt将CONVERT转换为字符串或Integer,具体取决于内容。

+0

视图可能有效,具体取决于列的重要性。添加索引也可能很重要。 – Fionnuala