以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 这段代码有错吗?不能执行!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=1243)

--  作者:wcs
--  发布时间:2008/11/26 10:45:00
--  [求助] 这段代码有错吗?不能执行!
if  CurrentTable.name <> "会计凭证总表" then
    Forms("更新数据").Close()
    if CurrentTable.name = "会计凭证总表" then
    Forms("更新数据").open()
    end if
end if

我在项目属性-事件-currenttableschanged中,写入上面的代码,意思是:
如果当前表不是“会计凭证总表”,就关闭窗口“更新数据”。
如果当前表是"会计凭证总表",就打开窗口“更新数据”,

现在第一个如果可以正确执行,第二个就不行了,无法打开窗口。

各位看看,这是是怎么回事?

--  作者:don
--  发布时间:2008/11/26 11:00:00
--  

If 语句

If语句有三种形式

单分支形式:

If 条件 Then
    代码

End If

条件成立的话,则执行代码。
例如在命令窗口输入下面的代码:

Dim Mark As Integer = 61
If
Mark >= 60 Then
    Output.Show(
"及格")
End
If

执行之后,上述的代码会得到结果"及格",如果将变量Mark的值改为59,则不会返回任何内容。

双分支形式:

If 条件 Then
    代码1

Else

    代码2

End
If

条件成立,则执行代码1,不成立,则执行代码2。
例如,在命令窗口输入下面的代码:

Dim Mark As Integer = 61
If
Mark >= 60 Then
    Output.Show(
"及格")
Else

    Output.Show(
"不及格")
End If

执行之后,上述的代码会得到结果"及格",如果将变量Mark的值改为59,则会得到结果"不及格"。

多分支形式:

If 条件1 Then
    代码1

ElseIf
条件2 Then
    代码2

ElseIf
条件3 Then
    代码3

    .....
Else

    代码X

End If

条件1成立,执行代码1,条件2成立,执行代码2,其余类推,所有条件均不成立,则执行代码X。
例如在代码窗口输入:

Dim Mark As Integer = 90
If
Mark >= 90 Then
    OutPut.Show(
"优秀")
ElseIf
Mark >= 80 Then
    OutPut.Show(
"良好")
ElseIf
Mark >= 60 Then
    OutPut.Show(
"及格")
Else

    OutPut.Show(
"不及格")
End
If


--  作者:czy
--  发布时间:2008/11/26 11:02:00
--  
if  CurrentTable.name <> "会计凭证总表" then
    Forms("更新数据").Close()
Else
    Forms("更新数据").open()
end if

--  作者:wcs
--  发布时间:2008/11/26 11:10:00
--  

哈哈,我改了一下,就好了:
if  CurrentTable.name = "会计凭证总表" then
    Forms("更新数据").open()
    Tables("会计凭证").OpenView("通常")
else Forms("更新数据").close()
end if

但是,我想在当前表是"会计凭证总表"时,打开它的子表"会计凭证",的视图"通常",加了这一句:
Tables("会计凭证").OpenView("通常")
但这一句好像没有起到作用。


--  作者:wcs
--  发布时间:2008/11/26 11:12:00
--  
好了,我已发现问题,要这样:
Tables("会计凭证总表.会计凭证").OpenView("通常")