假如有一表“A”,设计了两个表视图,分别叫“视图1”和“视图2”,再建一个主窗口,窗口名为“A”,添加一个button,名为“视图切换”,
问题:我想实现单击该按钮后进行“视图1”和“视图2”的相互切换,同时提示当前的视图名称。
如何实现?
谢谢!
按钮代码:
Static Name As string
If Name = "视图1"
Name = "视图2"
Else
Name = "视图1"
End if
Tables("表名").OpenView(Name)
e.Sender.Text = Name
[此贴子已经被作者于2008-12-2 16:34:42编辑过]
也可通过判断某列如A是否可见来切换.
with CurrentTable
if .Cols("A").Visible Then
.OpenView("视图2")
Else
.OpenView("视图1")
End If
End with
[此贴子已经被作者于2008-12-2 16:52:38编辑过]
以下是引用ybil在2008-12-2 16:43:00的发言:
也可通过判断某列如A是否可见来切换.
with CurrentTable
if .Cols("A").Visible = True Then
.OpenView("视图2")
Else
.OpenView("视图1")
End If
End with
NND,还是这个代码厉害一些。
以下是引用狐狸爸爸在2008-12-2 16:52:00的发言:
NND,还是这个代码厉害一些。
狐爸!看来你要把ybil版主招入你的团队了,绝对是高手嘛,我是越来越佩服了。
窗口AfterLoad事件改为:
Tables("表A") .OpenView("视图1")
Forms("窗口1").Controls("Button1").Text = "视图1"
[此贴子已经被作者于2008-12-3 12:45:06编辑过]
你组合套用的代码没有看出有任何问题。
我大胆做个推断,你的视图1已经包含了A列,所以当代码检测到A列为可见时,执行了打开视图1的命令,而实际上A列就在视图1中,自然就不能切换了。
最简单的方法是更改列视图名称,或将代码改成:
with CurrentTable
if .Cols("A").Visible = True Then
.OpenView("视图2")
e.Sender.Text = "视图2"
Else
.OpenView("视图1")
e.Sender.Text = "视图1"
End If
End with