Access 2003 中的 SQL:INSERT INTO 和多个 SELECT 查询

怀亚特吉列

我正在使用 Access 2003(由于复古兼容性而被迫这样做)来修改一个 10 年前的项目,而不是我制作的。我在执行此查询时遇到错误:

INSERT INTO ClientiContratto ( ID, CLIENTE, DATA, PERIODO, IMPORTO, FATTURATO )
SELECT [Forms]![InserisciContratto]![Cliente] AS Espr1, (SELECT Nome from TAnagrafica WHERE TAnagrafica.IDAnagr = [Forms]![InserisciContratto]![Cliente]) AS Espr2, [Forms]![InserisciContratto]![Data] AS Espr3, [Forms]![InserisciContratto]![Periodo] AS Espr4, [Forms]![InserisciContratto]![Importo] AS Espr5, False AS Espr6;

由于

 (SELECT Nome from TAnagrafica WHERE TAnagrafica.IDAnagr = [Forms]![InserisciContratto]![Cliente]) AS Espr2

如果我独立执行此查询,它就像一个魅力,但是当将查询插入到 INSERT INTO...SELECT 语句时,它返回(从意大利语翻译):

运行时错误“3000”:保留错误(-3025):没有关于此错误的消息。

目的是根据在活动表单中找到的值在表中插入一些新值,不工作的代码部分应该在表中搜索链接到 [InserisciContratto]![Cliente] 实际值的值。

我究竟做错了什么?也许是因为我无法在以前的 SELECT 查询中执行 SELECT 子查询?

任何帮助,将不胜感激。

埃里克

您可以使用 aDLookUp而不是子查询来解决该问题

DLookUp("Nome", "TAnagrafica", "TAnagrafica.IDAnagr = [Forms]![InserisciContratto]![Cliente]")

请注意,您可以DLookUp在表单控件或查询中使用 。两者都有效。在查询中,它看起来像这样:

INSERT INTO ClientiContratto ( ID, CLIENTE, DATA, PERIODO, IMPORTO, FATTURATO )
SELECT [Forms]![InserisciContratto]![Cliente] AS Espr1, DLookUp("Nome", "TAnagrafica", "TAnagrafica.IDAnagr = [Forms]![InserisciContratto]![Cliente]") AS Espr2, [Forms]![InserisciContratto]![Data] AS Espr3, [Forms]![InserisciContratto]![Periodo] AS Espr4, [Forms]![InserisciContratto]![Importo] AS Espr5, False AS Espr6;

此类错误的另一个常见来源是 Access 在使用子查询而不是从真实表查询时表现得很挑剔。您可以通过使用子查询作为主查询轻松解决这个问题。请注意,这确实需要子查询始终返回结果,否则不会插入任何行:

INSERT INTO ClientiContratto ( ID, CLIENTE, DATA, PERIODO, IMPORTO, FATTURATO )
SELECT [Forms]![InserisciContratto]![Cliente] AS Espr1, Nome AS Espr2, [Forms]![InserisciContratto]![Data] AS Espr3, [Forms]![InserisciContratto]![Periodo] AS Espr4, [Forms]![InserisciContratto]![Importo] AS Espr5, False AS Espr6
FROM TAnagrafica
WHERE TAnagrafica.IDAnagr = [Forms]![InserisciContratto]![Cliente]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

INSERT INTO查询中的多个SELECT

来自分类Dev

可视C#中的SQL SELECT和多个AND查询语句

来自分类Dev

使用Java,如何列出和打印MS-Access 2003 mdb文件中的所有查询?

来自分类Dev

SQL查询,多个JOIN和SELECT(?)语句

来自分类Dev

SELECT查询中的SQL和临时行

来自分类Dev

Access 2003-通过查询,查询定义和Form.Recordset传递(噢,我的)

来自分类Dev

INSERT查询中的嵌套SELECT

来自分类Dev

通过SQL和Access查询多个表并显示结果

来自分类Dev

在SELECT查询中在SQL Server中合并日期和时间

来自分类Dev

MS Access 2003直接在报表的字段中包括子选择查询

来自分类Dev

使用Ms Access 2003/2013或Sql查询选择与批准的列表/表关联的用户

来自分类Dev

Access和/或SQL中的交叉表查询以完成表组合

来自分类Dev

在Access SQL中优化NOT IN查询

来自分类Dev

Access VBA中的SQL查询

来自分类Dev

Access中的SQL Server查询

来自分类Dev

在一个查询中组合SQL Select和AVG

来自分类Dev

在SELECT中的IF语句SQL查询

来自分类Dev

SQL查询-SUM中的SELECT

来自分类Dev

从SQL中的SELECT查询更新

来自分类Dev

子查询中的SQL Select

来自分类Dev

SQL查询-SUM中的SELECT

来自分类Dev

基于Access中已保存的SELECT查询的UPDATE查询?

来自分类Dev

查询以从Access中的多个表中删除

来自分类Dev

查询以从Access中的多个表中删除

来自分类Dev

在INSERT INTO查询中使用多个SELECT

来自分类Dev

Microsoft Access SQL-在SELECT查询中修改日期格式

来自分类Dev

Access 2003表单中的垂直文本

来自分类Dev

结合“ select max”和select count(*)查询的复杂SQL查询

来自分类Dev

sql中的select查询中的case语句

Related 相关文章

热门标签

归档