在vb.net中从多个窗体将数据插入数据库中的一条记录

在vb.net中从多个窗体将数据插入数据库中的一条记录,vb.net,winforms,ms-access,Vb.net,Winforms,Ms Access,我在同一个应用程序中有四个表单,我有一个Ms access数据库,该数据库必须插入应用程序中的三个表单中的数据,并且数据必须插入到一个记录中,但不同的字段中 像这样: form1将数据插入五个字段, form2必须将数据存储在字段6中, form3必须将数据存储在字段7中, 上述所有插入必须发生在一个记录中 我已经在form1和form2中编写了插入代码,但实际情况是:用户输入很好地插入了前五个字段的数据库中,这是form1,问题是,当我导航到form2时,数据插入了正确的字段,但插入了错误的记

我在同一个应用程序中有四个表单,我有一个Ms access数据库,该数据库必须插入应用程序中的三个表单中的数据,并且数据必须插入到一个记录中,但不同的字段中

像这样: form1将数据插入五个字段, form2必须将数据存储在字段6中, form3必须将数据存储在字段7中, 上述所有插入必须发生在一个记录中


我已经在form1和form2中编写了插入代码,但实际情况是:用户输入很好地插入了前五个字段的数据库中,这是form1,问题是,当我导航到form2时,数据插入了正确的字段,但插入了错误的记录(即下一条记录).我没有写任何可能实现我愿望的代码,只是需要指导。提前感谢。

您可以在打开表单时指定where条件,以便在正确的记录上打开表单:

DoCmd.OpenForm "frmEmployee", WhereCondition:="EmployeeID=3"
当然,每个记录都需要唯一标识每个记录的主键(在我的示例中为
EmployeeID

如果从另一个显示相同记录的表单打开表单,则必须从此表单中获取记录id:

DoCmd.OpenForm "frmEmployee", WhereCondition:="EmployeeID=" & Me!EmployeeID

如果您只允许用户编辑这一条记录,最好将表单属性设置为:

在“格式”选项卡中:

Allow Form View = Yes
Allow Datasheet View = No
Allow PivotTable View = No
Allow PivotChart View = No
Allow PivotChart View = No
Record Selectors = No       (not necessary since we allow only one record)
Navigation Buttons = No     (not necessary since we allow only one record)
在“数据”选项卡中:

Allow Filters = No
Allow Edits = Yes
Allow Deletions = No
Allow Additions = No
Data Entry = No       (If set to yes this opens the form on a new empty record)

谢谢Olivier,但是…我的数据库自动创建ID,应用程序可以被多次使用,因此我不确定使用哪一个唯一变量,以便插入可以继续存储在同一条记录中。你说你在
form1
中输入五个字段,然后打开
form2
继续输入同一条记录的其他字段。如果
form1
绑定到表,请在打开第二个表单之前设置
Dirty=False
。这将存储记录。现在您可以像这样访问自动id字段:
Me!NameOfIDField
。但是你应该考虑使用<代码> TabMeult/Cuff>几个标签页而不是使用多个表单。谢谢奥利维尔,就是这样,任务完成了。