当窗体打开时在不同的选项卡上启用“保存”按钮
我在窗体上有一个选项卡控件,并且几个不同的选项卡上都有保存按钮。一旦用户保存数据(通过VBA中的SQL语句),我将.enabled = false设置为使其不能再次使用该按钮,直到移至全新记录(这是整个表单上的按钮单击)。当窗体打开时在不同的选项卡上启用“保存”按钮
因此,当我的表单打开时,我要引用启用所有这些保存按钮的子,因为打开的事件将意味着新的记录。虽然我得到一个错误,说它不存在或关闭。
有什么想法?
感谢
编辑:
Sub Example()
error handling
Dim db as dao.database
dim rs as dao.recordset
dim sql as string
SQL = "INSERT INTO tblMain (Name, Address, CITY) VALUES ("
if not isnull (me.name) then
sql = sql & """" & me.name & ""","
else
sql = sql & " NULL,"
end if
if not insull(me.adress) then
sql = sql & " """ & me.address & ""","
else
sql = sql & " NULL,"
end if
if not isnull(me.city) then
sql = sql & " """ & me.city & ""","
else
sql = sql & " NULL,"
end if
'debug.print(sql)
set db = currentdb
db.execute (sql)
MsgBox "Changes were successfully saved"
me.MyTabCtl.Pages.Item("SecondPage").setfocus
me.cmdSaveInfo.enabled = false
,然后再cmdSave需要得到重新上了一个新的记录(其中的方式,这种形式是未绑定)启用,所以这一切发生的时候表格被重新打开。我试过这个:
Sub Form_Open()
me.cmdSaveInfo.enabled = true
End Sub
这就是我得到上述错误的地方。所以这也不是在表单打开时关注的标签。这是为什么我得到这个错误?当标签不显示时,我无法启用或禁用控件?
您不能使用表单打开事件来操纵控件,它们尚未在该阶段启动。使用表单加载事件。
不应该有必要将焦点设置为选项卡,或者甚至在使用控件时引用它。您会注意到控件必须具有对表单唯一的名称,并且添加选项卡不会更改此选项。
我建议你设置一些表单级变量:booBtn_1_enabled作为布尔值,booBtn_2_enabled作为布尔值。根据需要将它们设置为T或F;显然,所有的T当表单被打开。挑选回顾这些变量并相应地设置所述控件的窗体事件(可能是当前事件,但优选一个,则触发较少):
Me.btnBtn_1.Enabled = booBtn_1_enabled
Me.Repaint
类似的东西,但显然Me.btnBtn_1可能需要更复杂的参考。
这不应该是必需的,OP正在经历的问题是由于使用了错误的事件。 – Fionnuala 2010-08-03 08:28:58
你可以在这里添加子吗?您可能无法访问Form.Open事件中的非活动选项卡的属性... – Zoltan 2010-03-25 23:15:59
为什么编程Access默认提供的功能,而无需编程? – 2010-03-29 01:34:41