我正在尝试使用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:“您输入的表达式是指关闭或不存在的对象。“
帮助表示赞赏。另外,我是否还需要设置子窗体的源对象属性?如果是这样的话。
答案 0 :(得分:0)
简单使用currentDB.Execute("CREATE TABLE tblMyTable (Field1 Text, field2 Text, field3 Text);"
但是对于记录来源,您是否尝试在Select?
的末尾添加;
答案 1 :(得分:0)
你有两个子表格吗?
应该是:
Me!IHCResults_subform.Form.RecordSource = "SELECT * FROM tblmyTable"
Me!IHCResults_subform.Form.Requery
如果是这样,则不需要最后一行。更改记录源时,子表单将重新查询。
另外请注意,当您打开表单时,首先打开(隐藏)子窗体,然后关闭,然后打开父窗体,这将打开子窗体。因此子表单最初必须包含有效的记录源。