多值字段可以创建多条记录吗?

时间:2016-06-12 08:20:26

标签: ms-access

我有一张表连接三个表,每个表用于员工,项目和程序:

  

员工1-1计划(每位员工在任何指定时间只能分配到一个计划)   员工1人(每位员工可以申请多个库存项目)

我为这个表创建了一个表单,在其上创建了一个组合框,允许用户选择多个项目。

我怎样才能这样做,例如,如果用户输入他/她的员工ID和他/她的程序代码并检查三个项目,那么表中会保存三个记录(而不是一个记录但具有多个值对于那个领域)?

1 个答案:

答案 0 :(得分:0)

简短的回答是,您不能使用多值字段为每个已检查的组合框项创建新记录,除非您想要进入非常复杂的VB脚本。 但是,您可以通过创建和运行SQL语句来打印多值字段,这实际上会准确地显示您描述/请求的信息。

您可以通过进入 Row Source 表单,在表单上为文本框或组合框设置 Design View ,然后点击该字段然后在 Property Sheet > Data > 下的文本输入区域将SQL语句设置为等于不同的表以获取您引用的值,然后设置 Control Source (上面行Source)到您要存储该信息的输出fieldname / table。

SELECT tblName.FieldName1.Value AS FieldName, tblName.FieldName2, tblName.FieldName3 FROM tblName;

tblName.FieldName.Value AS x.Value ,因为 x.Value 是个人整个表的每个多值组合框条目的条目,其中包含此信息"〜存储"。

如果您运行上面的SQL查询(显然更改为您的实际表和字段名称),那么您将看到一个临时表(视图),其中包含多值的所有单个值,如打印输出。

或者

CREATE TABLES:我提到引用的地方执行上述步骤,但请记住,您可能需要使用 WHERE = 某事来设置条件 AND OR

  

员工计划表:[UniqueRowID],[StaffNum],[Name],[ProgrammeName],等等

ProgrammeName列引用Program Lookup表中的ProgrammeName。您需要设置字段名称"显示控件"在"查找"到combobox然后像前面提到的那样将Row Source设置为SQL语句,以便它知道从何处获取程序名称的值。

  

程序查找表:[UniqueRowID],[ProgrammeName],等等

这包含所有存在的值。易于更新和维护。

  

员工项目表:[UniqueRowID],[ItemName],等等

ItemName列引用Inventory Lookup表中的ItemName。您需要设置字段名称"显示控件"在"查找"到combobox然后像前面提到的那样将Row Source设置为SQL语句,以便它知道从哪里获取库存项的值。

  

库存查询表:[UniqueRowID],[ItemName],等等

这包含所有存在的值。易于更新和维护

或者

或者,创建另一个包含所需值的表。然后创建一个SQL语句:

INSERT INTO newTableName(newfield1, newfield2, newfield3, etc)
SELECT sourcetblName.sourceFieldName1.Value AS FieldName, sourcetblName.sourceFieldName2, sourcetblName.sourceFieldName3 FROM SourcetblName;