我在这里找到了几个答案,但没有任何接缝可供选择。
问题:一个包含两列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.AddRecord
或Me.SubForm1.AddItem
以便之前的记录仍在那里并添加新记录?
可以吗?如果不能用子表单完成,可以用listbox完成吗?
答案 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中设置,添加的第一项是标题,如果列表框行源类型设置为'值'则无法从记录集设置它,并且必须这样才能添加项目......