![]() |
1
6
嗯,我会选中访问端的默认文本框。我还将在设计模式下打开链接表,您需要检查这里MS Access假定的数据类型。对于不受支持的数据类型,MS Access通常使用字符串,而SQL Server可能需要其他数据类型。 因此,请同时检查主表中的主键(pk),然后检查在子表中使用(假定)的数据类型,以查找外键(fk)列。在此期间,请检查用于子窗体控件中的子/主链接设置的表达式(不是窗体,不是子窗体,而是用于窗体中链接这两个表的子窗体控件)。 如果在SQL Server表中没有timestamp列,则access中的子窗体是敏感的。如前所述,检查pk和fk数据类型并确保它们匹配(只需在MS Access中以设计模式显示表——您会收到一条关于设计模式为只读的错误消息,但只需继续,这样您就可以检查/查看以确保数据类型匹配)。 因此,对于子表,您需要一个pk、一个fk,以及一个时间戳列(您不必在子表单中显示ts列,但需要在表中显示)。 MS Access中的子窗体是敏感的,如果不在SQL表中包含时间戳列,则通常会失败。(Access使用这些行版本列来确定数据是否已更改)。 |
![]() |
2
3
视图中的某个字段是用cast函数计算/生成的吗?在这种情况下,您可能无权更新/添加该字段的值。 可以在MS SQL Studio界面中执行视图并尝试插入记录吗? |
![]() |
3
1
这个问题的另一个原因是,如果在不更改视图的情况下更改表名,那么该视图的“依赖项”仍然会与表的旧名称重新组合。 假设我有一个表“a”和一个从“a”派生的视图“av”,我创建了一个名为“a”的新表,并将“a”的名称更改为“a旧”,但我没有执行alter view,因此“av”的依赖项仍然保留在“a旧”上,但该视图是从“a”派生的,当试图将视图作为链接打开时,它会在access中引发此错误。D表 |
![]() |
4
1
我刚刚花了一天时间和一个AccessADP项目做斗争,这个项目被导入到一个新的Access2016 accdb文件中。最初我认为这是应用程序代码的问题,但我是直接将这个键控记录放入表中。有趣的是,记录总是被写下来的——似乎是回读触发了错误。对插入的SQL进行分析,并从SQL Management Studio运行它,没有任何问题。 导致问题的表有一个guid主键。切换到int列解决了这个问题。 SQL数据库中还有几千个扩展属性,我在切换pk之前删除了它们。有来自网络的强烈建议,这些都会导致问题。该过程的来源记录在这里: Remove All SQL Extended Properties |
![]() |
5
1
我在尝试更新一个与ODBC链接的SQL Server数据库时遇到了这个问题。问题是用于联接两个表的字段中有一个空值。消除空值解决了这个问题 |
![]() |
6
0
仅基于您上面提供的消息,您似乎正在尝试为某些字段或参数等设置无效值…消息告诉您它正在尝试将值转换为特定的数据类型,但该值对于该数据类型无效…有道理吗? 请添加更多详细信息,以便我们更好地帮助您。 |
![]() |
7
0
好吧,我只是有过这种不好的经历,它与pk或任何这些东西都无关。 在我的情况下。 在Access中报告此问题的视图最初是在SQL Server中创建的,并使用日期时间强制转换来清除不需要的时间部分。到今天为止,这个视图在访问中已经引起了0个问题,但正如上面所描述的那样,它开始产生烧心。 因此,我为mss视图生成了一个drop/create脚本,运行它,重新链接了access中的视图,access数据库对结果很满意。我在Access中所有所谓的表基本上都是通过链接到MSS进行报告的视图。我只有一张表可以更改。除此之外,我不通过Access中的视图进行编辑。 这条信息当然和往常一样没用,但这是我在这种情况下的解决方案。 |
![]() |
ybou · 需要帮助从SQL 2005查询中删除过时的=*连接运算符 7 年前 |
![]() |
Robert · 将多个分隔符分隔的字段视为不同的行 8 年前 |
![]() |
hud · 执行存储过程会导致错误 8 年前 |
![]() |
Gonzalo · 如何将存储过程的结果插入到新表中? 9 年前 |