繁体   English   中英

如何创建一个临时表并将其设置为子窗体的记录源?

[英]How to create a temporary table and set it up as the record source for a subform?

我试图使用CreateTableDef方法创建一个临时表,并在加载父窗体时将该表设置为我的访问数据库中子窗体的记录源:

Private Sub Form_Load()

Dim db As Database
Dim tblDef As TableDef
Set db = CurrentDb
Set tblDef = db.CreateTableDef("tblMyTable")
tblDef.Fields.Append tblDef.CreateField("Field1", dbText)
tblDef.Fields.Append tblDef.CreateField("Fields", dbText)
tblDef.Fields.Append tblDef.CreateField("Field3", dbText)

db.TableDefs.Append tblDef
db.TableDefs.refresh

Me.sfrm.Form.RecordSource = "SELECT * FROM tblmyTable"
Me.sfrm.Form.Requery

End Sub

但是,当执行到达:Me.sfrm.Form.RecordSource =“ SELECT * FROM tblIHC”时,它会引发运行时错误2467:“您输入的表达式引用了已关闭或不存在的对象。”

感谢帮助。 另外,我还需要设置子窗体的源对象属性吗? 而如果是这样的话。

使用currentDB.Execute("CREATE TABLE tblMyTable (Field1 Text, field2 Text, field3 Text);"容易得多currentDB.Execute("CREATE TABLE tblMyTable (Field1 Text, field2 Text, field3 Text);"

但是作为记录源,您尝试添加一个; 在选择结束时?

您有两个子表单吗?

它应显示为:

Me!IHCResults_subform.Form.RecordSource = "SELECT * FROM tblmyTable"
Me!IHCResults_subform.Form.Requery

并且,如果是这样,则不需要最后一行。 更改记录源时,子窗体将重新查询。

还要记住,当您打开窗体时,首先打开(隐藏)子窗体,然后关闭,然后打开父窗体,然后打开子窗体。 因此,子窗体最初必须包含有效的记录源。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM