Vba 将表单绑定到正在本地数据库上打开表的记录集

Vba 将表单绑定到正在本地数据库上打开表的记录集,vba,ms-access-2010,Vba,Ms Access 2010,我试图通过在ms access 2010中将数据绑定到表单来显示记录集中的数据。记录集正在通过currentdb(非外部)打开查询。这是我的代码,它在Form_Load()事件上执行: 我认为表单对记录集没有约束力。我试着搜索了一天多,但尽管我正确设置了controlsource属性,我还是不明白为什么没有显示任何内容。 我说的我的记录集不是ADODB记录集!!它只是一个从本地数据库(具有链接表)获取数据的记录集对象 p、 s:我尝试在Open event的表单中执行相同的操作,但这导致ms a

我试图通过在ms access 2010中将数据绑定到表单来显示记录集中的数据。记录集正在通过currentdb(非外部)打开查询。这是我的代码,它在Form_Load()事件上执行:

我认为表单对记录集没有约束力。我试着搜索了一天多,但尽管我正确设置了controlsource属性,我还是不明白为什么没有显示任何内容。 我说的我的记录集不是ADODB记录集!!它只是一个从本地数据库(具有链接表)获取数据的记录集对象


p、 s:我尝试在Open event的表单中执行相同的操作,但这导致ms access崩溃

,所以显然我把你引入歧途了。。。虽然
“选择1作为测试”
是一个完全有效的查询,但表单似乎不喜欢它。相反,试试这个

创建一个名为“tblTest”的表,添加一个文本字段“test”,并添加一些项目

创建一个空白的连续表单并称之为“frmTest”。添加一个文本框控件并将其称为“txtest”

添加一个Form_Open event code builder并按如下方式定义:

Private Sub Form_Open(Cancel As Integer)
    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT * from tblTest")
    Set Me.Recordset = rs
    Me.txtTest.ControlSource = "test"
End Sub

这样行吗?

您的表单是如何设置的?它是一个数据表,一个带字段的普通表单,还是有一个子表单来显示记录?它是一个带字段的连续表单。虽然我也愿意将其显示为数据表。我确信使用连续表单是可以的,但只需找出如何使其工作:)您如何将控件绑定到字段?使用代码:Me.TxtBox1.ControlSource=“EmpName”如果我直接从属性框绑定表单,上面的行似乎可以工作。但是,由于我的查询非常复杂,并且有一个动态生成的临时表,所以我需要在vba中使用一个可以轻松修改的记录集来进行查询。我听说,我以前遇到过这个问题,必须用同样的方法来解决。你看到了什么错误或行为让你知道它不起作用?例如,表单是否打开,然后是否显示多行,这些行是空的还是有数据,等等-故障发生在哪里?嘿,令人惊讶的是,它在重新启动access后工作了。这个简单的查询也在我的表单上运行。我会处理复杂的那个,看看是否有效。参数Cancel as Integer似乎是解决此问题的关键。它现在只处理form_open事件,而不处理form_load。很高兴听到您找到了它!
Private Sub Form_Open(Cancel As Integer)
    Dim rs As Recordset
    Set rs = CurrentDb.OpenRecordset("SELECT * from tblTest")
    Set Me.Recordset = rs
    Me.txtTest.ControlSource = "test"
End Sub