将数据从表单保存到另一个表单

时间:2017-09-19 09:23:12

标签: ms-access

这是我的第一个问题:) 我在Access 2010中有一个表单,用户插入一些字段(文本框,组合框......)。当我通过点击访问掩码下方的左右箭头浏览记录时,一些值(即通过组合框选择的值)到期...... 我需要保存在表格中保存的组合框中选择的字段,我该怎么办? 另外,我希望在关闭并重新打开表单后,从组合框中选择的值将保留

我试过这个,但它不起作用:

Private Sub CasellaCombinata451_AfterUpdate()
    Me.CasellaCombinata451.DefaultValue = """" & Me!CasellaCombinata451 & """"
End Sub

随意询问更多信息

提前致谢 Beppe

1 个答案:

答案 0 :(得分:0)

这样做并不是一个好主意,但如果你愿意,你可以。

以下代码会永久更改表单,将最后一个值设置为新的默认值。

Private Sub CasellaCombinata451_AfterUpdate()
    DoCmd.OpenForm Me.Name, acLayout
    Me.CasellaCombinata451.DefaultValue = "=""" & Me.CasellaCombinata451.Value & """"
    DoCmd.Save
    DoCmd.OpenForm Me.Name
End Sub

此代码将视图更改为布局视图(因为在普通视图中,您无法永久更改窗体),然后更改窗体,然后保存,然后再将其更改为普通视图。此过程通常会保存当前记录,但仍保持在同一记录中导航,并且需要对数据库进行独占访问。

正如Minty建议的那样,如果你想为每个用户保存这些值,并使它们在数据库关闭后仍然存在,那么最好的方法就是将它们保存在表中。您可以使用DLookUp检索它们,并将它们设置为默认值。

如果在关闭并重新打开数据库后不需要它们,则TempVar是存储这些值的正确位置。

使用TempVar

实施

首先,将组合框的默认值设置为TempVars!previousValue。 然后,在更新后添加以下代码:

Private Sub CasellaCombinata451_AfterUpdate()
    TempVars!previousValue = Me!CasellaCombinata451
End Sub