sql - 使用基于查询的表单从不同的表中插入字段。微软访问 2007
问题描述
我正在创建一个form
in MS Access 2007
。form
是从一个单一的parent table
. 它还包含sub-form
从 a 中提取的 a query
。query
本身就是从关联的拉到父child table
级和关联的table
称为t_item
.
为了自动lookup field
填写. child table
_ 这一切都非常有效。t_item
form
我的问题是,我query
从中提取的值没有在. 我不确定我需要去哪里解决这个问题。我一直在寻找可以让我控制 的数据的东西,但似乎没有任何效果。t_item
lookup field
child table
writing
sub-form
这是查询
SELECT
[t_export_details].[Export ID]
, [t_export_details].[ItemLookup]
, [t_item].[Description]
, [t_item].[HACCP]
, [t_item].[Species]
, [t_item].[Maturity]
, [t_item].[Frozen / Shelf Storeable]
, [t_item].[Package Type]
, [t_export_details].[Package Count]
, [t_export_details].[Net Weight]
, [t_export_details].[Marks]
, [t_export_details].[Establishment Number]
FROM t_item INNER JOIN t_export_details ON t_item.[Item ID]
这是当前结果的示例。想要的结果是从查询中提取的字段被t_item
转移到child table
. 这是child
当前从表单“创建”记录后的外观片段。
所以在一些评论之后,我改变了 SQL 语句。这就是它现在的样子。
SELECT
t_export_details.[Export ID]
, t_export_details.ItemLookup
, t_item.Description
, t_item.HACCP
, t_item.Species
, t_item.Maturity
, t_item.[Frozen / Shelf Storeable]
, t_item.[Package Type]
, t_export_details.[Package Count]
, t_export_details.[Net Weight]
, t_export_details.Marks
, t_export_details.[Establishment Number]
FROM t_item INNER JOIN t_export_details
ON (t_item.[Item ID] = t_export_details.ItemLookup) AND (t_item.[Item ID] = t_export_details.[Item ID]);
但这仍然没有写到child table
t_export_details
这是 Access 2007 上的查询设计视图
解决方案
下面的解决方案。
概述:Access
不允许编辑many-to-one
关系。它不检查您的查询输出是否创建了one-to-one
关系。基本解决方案是在用户输入数据后macro
使用.button
main report
按部分细分。
决赛query
为subreport
SELECT t_export_details.[Export ID]
, t_export_details.ItemLookup
, t_item.Description
, t_item.HACCP
, t_item.Species
, t_item.Maturity
, t_item.[Frozen Shelf Storeable]
, t_item.[Package Type]
, t_export_details.[Package Count]
, t_export_details.[Net Weight]
, t_export_details.Marks
, t_export_details.[Establishment Number]
FROM (t_item INNER JOIN t_export_details ON t_item.[Item ID] = t_export_details.ItemLookup)
INNER JOIN t_export ON t_export_details.[Export ID] = t_export.[Export ID];
这里没有太大变化。主要问题是使用Lookup
字段作为join
条件。在此经验与我在网上阅读的内容相结合之后,我通常会建议不要joining
使用查找值。但是,出于报告原因,有必要将其保存在我的案子中。
Update query
按下按钮运行main report
UPDATE t_item INNER JOIN t_export_details ON t_item.[Item ID]=t_export_details.ItemLookup
SET t_export_details.[Item ID] = [t_item].[Item ID]
, t_export_details.HACCP = [t_item].[HACCP]
, t_export_details.Species = [t_item].[Species]
, t_export_details.[Frozen Shelf Storeable] = [t_item].[Frozen Shelf Storeable]
, t_export_details.[Package Type] = [t_item].[Package Type]
WHERE (((t_export_details.[Export ID])=[Forms]![USDAExport]![Export ID]));
update
orjoin
语句没有什么太有趣的地方。注意/中的where
命名约定条款access 2007
vba
按钮的宏main report
saveRecord
保存main report
记录。Requery
此处需要强制在sub report
记录上进行隐藏保存。如果不这样做,则update query
该字段之前的运行lookup
已updated
通过access
。这导致在update query
再次按下它之前实际上什么都不做。setWarnings
=No
对于防止用户在执行query
. 希望其他一切都是不言自明的。在布什总统任期后制造的版本中Close
被称为。里面很不错的工具closeWindow
ms-access
macro
ms-access
求解后输出数据
请注意,所有output
数据都是我制造的虚假谎言。
外卖
- Access 2007 仍然是一个强大但令人沮丧的可视界面程序。这让许多希望永远不需要学习 2012 年之前创建的任何东西的开发人员感到失望。
- 以事件/视觉为导向的编程对于在在线环境中提出好的问题具有独特的挑战性。
- 我应该开始将自己推销为仅后端开发人员。
最后,我最有用的资源
每个留下有用评论或澄清问题的人
如何使用
query
aform
: https: //support.office.com/en-gb/article/use-a-query-as-the-record-source-for-a-form-or-report-e54251f3-57ca -4a7d-8e77-e498966cd41b 特别注意“我什么时候可以编辑查询?” 部分。参数传入:https
queries
: //support.office.com/en-us/article/use-parameters-in-queries-forms-and-reports-8209eb5c-1589-42e2-9b20-4181f4c7a356如何构建
update
query
:https ://www.safaribooksonline.com/library/view/access-cookbook/0596000847/ch01s06.html创建一个
Macro
运行query
http://www.databasedev.co.uk/open-query-macro.html关闭
run query
宏的警告:https: //support.office.com/en-us/article/Turn-action-query-confirmation-messages-on-or-off-e58e4bba-9d54-4b9d-b962-9eca048e5335#__use_a_macro
推荐阅读
- email - 更改发件人的电子邮件地址
- c++ - 如何在提升循环缓冲区中一次访问所有元素?
- .net - 如何在 Azure 的 VM 上运行 .NET?
- wavesurfer.js - wavesurfer.js 尝试在区域中设置句柄样式
- asp.net-mvc - c# .net5 动态前缀url 使前缀因访问时搜索多次变化
- python - python _thread 返回第一个 arg 必须是可调用的
- angular - 如何在 Angular 服务中本地保存 Apollo 响应?
- android - Kotlin 捕获图像并将其存储在本地
- postgresql - PostgreSQL 为有序查询选择了错误的多列索引
- redis - 如果我们在 Key 上进行分区,为什么我们需要在 Redis 中使用分布式锁?