在VBA中向子表单添加新记录

时间:2017-02-12 14:41:52

标签: vba access

我在这里找到了几个答案,但没有任何接缝可供选择。

问题:一个包含两列ID和Name的数据库表; 我有一个文本框(让我们称之为TextBox1)和表单上的子表单(SubForm1),我想将ID写入TextBox(或使用条形码阅读器),查询表On Change并将找到的记录添加到子表单。我有一个查询,它的工作原理,我无法做的是保持以前发现的记录被覆盖。我搜索了解决方案,没有任何接缝适合。我是VBA的新手,非常感谢任何帮助。谢谢。

到目前为止我所拥有的:

Dim SQL As String

Dim rs As Recordset

SQL = "SELECT *  FROM MyTable WHERE MyTable.ID =" & Chr$(34) & Me.TextBoxID.Text & Chr$(34)

Set rs = CurrentDb.OpenRecordset(SQL)

并查询wokrs,但我不知道如何做

之类的事情

Me.SubForm1.AddRecordMe.SubForm1.AddItem以便之前的记录仍在那里并添加新记录?

可以吗?如果不能用子表单完成,可以用listbox完成吗?

1 个答案:

答案 0 :(得分:1)

我是用列表框做的,但它很丑,如果有人有子表单的解决方案,请发布。代码:

Private Sub TexBox1_Change()

  Dim SQL As String

  Dim rs As Recordset

  SQL = "SELECT *  FROM MyTable WHERE MyTable.ID =" & Chr$(34) & Me.TextBox1.Text & Chr$(34)

    Set rs = CurrentDb.OpenRecordset(SQL)

 Me.ListBox1.AddItem(rs.fields(0) & ";" & rs.fields(1))

End Sub

'列表框的标题在Form_Load中设置,添加的第一项是标题,如果列表框行源类型设置为'值'则无法从记录集设置它,并且必须这样才能添加项目......