xec*_*s12 5 sql-server ms-access
我在SQL Server 2000上创建了一个视图,并通过ODBC将视图链接到我的Access 2007数据库.从Access打开视图显示看起来像重复的值.我更新了我的观点,以包含有问题的数据的ID,并且它是重复的.
看起来访问是为该类型的每一行显示每种类型的第一条记录.这个问题提到了Order By或Top子句,但我并没有在我看来使用它们中的任何一个.视图将8个表链接在一起,我唯一能想到的是我在视图中的一些表,我没有在Access中链接.我将链接这些表也只是为了尝试它,但我不认为我在Access中需要它们.
我已经厌倦了在谷歌寻找答案,但除了我提到的问题之外,我没有太多运气.对于像这样的链接视图,这种行为是否正常?
这是我的sql管理器的结果集:
id Type Dim1
---- ------------ ------
3111 Pipe 480
3112 Fittings 0
3113 Pipe 1080
3114 Fittings 0
3115 Fittings 0
3116 Fittings 0
3117 Pipe 216
Run Code Online (Sandbox Code Playgroud)
在访问中,我看到:
id Type Dim1
---- ------------ ------
3111 Pipe 480
3112 Fittings 0
3111 Pipe 480
3112 Fittings 0
3112 Fittings 0
3112 Fittings 0
3111 Pipe 480
Run Code Online (Sandbox Code Playgroud)
您不需要在Access中链接的所有8个表...视图就足够了,Access不需要知道基础表.
我认为你有一个不同的问题,我也遇到了类似你的问题.
当我通过ODBC链接Access中的SQL Server视图时,会弹出一个窗口,要求我从视图中的列中选择唯一标识符(读取:主键):

如果我没有选择任何东西(或者某些错误的列,这些列不能识别唯一的记录),Access会像示例中那样搞砸显示的数据.
显然,如果没有唯一标识符,Access无法正确显示视图.
解决您的问题:
据我了解您的看法,这id是独一无二的,对吧?
如果是,只需删除视图,通过ODBC重新链接它,当弹出"选择唯一标识符"窗口时,您需要选择该id列.