Forms 使用最后一行不同字段中的条目自动填充Access 2010表单

Forms 使用最后一行不同字段中的条目自动填充Access 2010表单,forms,vba,Forms,Vba,我正在制作一个access 2010表单,它将用作前端,在同一数据库中填充一个平面表。 访问表单具有“发件人”和“收件人”字段。当用户填写条目并单击“前进到新行新鲜表单”时,我希望新鲜表单中的“发件人”字段自动填充最后一个条目的“收件人”字段。 因此,为了澄清,我想知道如何制定一个程序,以便当用户填写表单时,将表单用作填充平面表格的前端-新行中的“发件人”字段将自动填充最后一行中的“收件人”。这些是从到的测量值,因此第一行中的从:0.00米到:1.00米将变为从:自动填充最后一个到字段,新的到字

我正在制作一个access 2010表单,它将用作前端,在同一数据库中填充一个平面表。 访问表单具有“发件人”和“收件人”字段。当用户填写条目并单击“前进到新行新鲜表单”时,我希望新鲜表单中的“发件人”字段自动填充最后一个条目的“收件人”字段。 因此,为了澄清,我想知道如何制定一个程序,以便当用户填写表单时,将表单用作填充平面表格的前端-新行中的“发件人”字段将自动填充最后一行中的“收件人”。这些是从到的测量值,因此第一行中的从:0.00米到:1.00米将变为从:自动填充最后一个到字段,新的到字段为空白,以便手动输入。 我对VBA等非常陌生。因此,如果您可以指定什么是,表,字段,而不是使用我可能不知道在我的特定情况下的等效示例,那将非常感谢

多谢各位

更新:

嗨,马克!我很惊讶这个社区的存在。我真的很感谢你抽出时间来帮助我。恐怕为了让我明白这一点,你得把它再哑一点。我从来没有接受过这方面的训练

我尝试的是在design视图中单击FROM文本字段。我进入活动,在更新后字段中单击。。。然后选择代码生成器。在我输入的代码中:

    Dim rst as DAO.Recordset  
    Dim sSql as String  
    Dim myValue as String  
    ssql = "select * from [HEADER]"  
    Set rst = currentdb.openrecordset(ssql)  
    with rst  
    .movelast  
    myValue = !TO  
    .addNew  
    .edit  
    !FROM = myValue  
    .update  
    end with  
    rst.close  
    set rst = nothing  

它还不起作用。我知道这可能是我忽略了什么。我以前从未做过这样的事。我想我确实需要使用上一个场景,因为我不希望From和在表单中是相同的,我需要From来自前一行的to。关于我犯了什么错误有什么建议吗?

您可能想看看在“更新后”事件的“收件人”字段中添加一些代码

在这个过程中,假设您的“to”字段被称为txtTo,而您的from字段被称为txtFrom,您可以这样做:

me.txtFrom.value = me.txtTo.value
me.txtFrom.refresh
Dim rst as DAO.Recordset
Dim sSql as String
Dim myValue as String
ssql = "select * from [your table]"
Set rst = currentdb.openrecordset(ssql)
  with rst
    .movelast
      myValue = !ToFieldNameHere
        .addNew
          .edit
            !fromFieldNameHere = myValue
          .update
  end with
rst.close
set rst = nothing
如果txtFrom和txtTo位于子窗体中,则必须引用以下字段:

MainForm!subform!txtFrom.Value = MainForm!subForm!txtTo.value
但是,如果您是从表而不是未绑定的文本框中调用这些,则会有点复杂,您需要打开记录集,添加一个新的记录集,然后从我的头顶将最后一个记录的值写入新的记录集,例如

me.txtFrom.value = me.txtTo.value
me.txtFrom.refresh
Dim rst as DAO.Recordset
Dim sSql as String
Dim myValue as String
ssql = "select * from [your table]"
Set rst = currentdb.openrecordset(ssql)
  with rst
    .movelast
      myValue = !ToFieldNameHere
        .addNew
          .edit
            !fromFieldNameHere = myValue
          .update
  end with
rst.close
set rst = nothing
然后刷新相关的控件,这样在您的例子中文本框,如果它绑定到一个表,您也会将它放在To表单的after update事件中


让我知道你进展如何

我想我把这件事说得比它需要的更难。我找到了解决我问题的办法。对于阅读本文的其他人,我的解决方案是将字段的默认值输入到: =DLastfield,table 默认情况下,此自动填充字段为我选择的最后一个字段。在本例中,此字段与自动填充字段不同。 我对这一点太陌生了,不知道如何正确地使用上面建议的代码,但我非常感谢您花时间回复

干杯