在我的表单中,我通常在记录末尾有空行,我可以使用该行添加新记录。虽然在我的一种形式中,我没有这条空行。
在阅读了一些关于它的问题后,可能与我的表单的记录源是一个视图(我无法编辑/添加记录)有关。
某些背景:
我的访问应用程序已从我的SQL服务器链接表和视图。旧项目是ADP project
,在ADP项目中,您始终可以为unique table
设置views
,以便您可以向其添加记录。
可悲的是Access 2013没有这个功能,我通过以与表相同的方式链接视图来修复此问题(或者至少我认为我做过)。对于必须编辑的视图(向其添加记录),我将主键设置为视图字段(这些主键与唯一表的主键相同 - 从中添加/编辑记录的表视图)。
这似乎有效,因为当我直接在Access中打开视图时,我可以向其添加记录,这些记录也会添加到连接表(唯一表)中。
虽然就像我之前说过的那样,我可以在表单中添加记录(不是手动使用空行或添加新记录按钮),而我可以直接在视图中执行此操作。
以下stackoverflow问题:Microsoft Access form - cannot add new record让我想知道答案(http://allenbrowne.com/ser-61.html)中提供的列表是否仍然有效/您可以直接在视图中添加记录的情况,如果它它可能与我的视图有关(因为它包含一个GROUP BY
,它也被列为导致它只读)。如果是这样,我认为问题是什么,它只是GROUP BY
还是其他东西呢?
有问题的观点:
SELECT dbo.tblInkreg.becode, dbo.tblInkreg.ionummer, dbo.tblInkreg.iovolgnr, dbo.tblInkreg.ioregel, dbo.tblInkreg.arcode, dbo.tblInkreg.eenhedenbesteld, dbo.tblInkreg.eenheidbesteld, dbo.tblInkreg.aantalbesteld,
dbo.tblInkreg.eenhedengeleverd, dbo.tblInkreg.eenheidgeleverd, dbo.tblInkreg.aantalgeleverd, dbo.tblInkreg.crArtNr, dbo.tblInkreg.aromschrijving, dbo.tblInkreg.stukprijs, dbo.tblInkreg.prijs, dbo.tblInkreg.irbtwcode,
dbo.tblInkreg.type, dbo.tblInkreg.bocheckedtmpacc, dbo.tblInkreg.regellevdat, dbo.tblInkreg.plandat, sub.voorraad - sub.gereserveerd AS vrijevoorraad, a.arLocatie, dbo.tblInkreg.verpakbelastprijs, a.arPALocatie
FROM dbo.tblInkreg LEFT OUTER JOIN
dbo.tblPLInkoop ON dbo.tblInkreg.becode = dbo.tblPLInkoop.becode AND dbo.tblInkreg.arcode = dbo.tblPLInkoop.ArCode AND dbo.tblPLInkoop.Prioriteit = 1 LEFT OUTER JOIN
dbo.tblArtikelEenheden ON dbo.tblInkreg.arcode = dbo.tblArtikelEenheden.arcode AND dbo.tblInkreg.eenheidbesteld = dbo.tblArtikelEenheden.eenheid LEFT OUTER JOIN
(SELECT dbo.tblArtikel.arcode, ISNULL(SUM(dbo.tblVoorraadMutaties.besteld), 0) AS inbestelling, ISNULL(SUM(dbo.tblVoorraadMutaties.voorraad), 0) AS voorraad,
ISNULL(SUM(dbo.tblVoorraadMutaties.gereserveerd), 0) AS gereserveerd
FROM dbo.tblArtikel LEFT OUTER JOIN
dbo.tblVoorraadMutaties ON dbo.tblArtikel.arcode = dbo.tblVoorraadMutaties.arcode
WHERE (dbo.tblArtikel.isvrdart = 1)
GROUP BY dbo.tblArtikel.arcode) AS sub ON dbo.tblInkreg.arcode = sub.arcode LEFT OUTER JOIN
dbo.tblArtikel AS a ON sub.arcode = a.arcode
答案 0 :(得分:0)
首先,GROUP BY
将使查询成为只读。
您可能无法将其删除,并且仍然可以按预期运行表单,因此 - 可能 - 您将不得不重新设计您的概念以及表单的运作方式。