【问题标题】:If/Then with RadioButton如果/那么与 RadioButton
【发布时间】:2011-03-01 16:28:25
【问题描述】:

在我的 VBA 代码中,我查询了一个 SQL 表。我想添加一个 if/then 语句,因此如果选择了一个单选按钮,它会拉出某个值,如果选择了另一个单选按钮,它会拉出一个不同的值。我的if是radiobutton1,我的else是radiobutton2,虽然else只能取其他值。

这是代码的具体部分:

strSQL = strBeginSQL1(strRiskSegment, "Detail")
strSQL = strSQL & "a.field1, b.field1, "
strSQL = strSQL & "a.field2, b.field2, a.field3, b.field3,"

如果我的 if/then 用于 field3(单选按钮将指向 field4。)

此时如何添加 if/then 语句?我以为会是:

strSQL = strBeginSQL1(strRiskSegment, "Detail")
strSQL = strSQL & "a.field1, b.field1,"
strSQL = strSQL & "a.field2, b.field2, If radiobutton2.true then a.field4, b.field4, else a.field3, b.field3,"
strSQL = strSQL & "a.field5, b.field5,"

我该怎么办?

【问题讨论】:

    标签: vba radio-button if-statement case


    【解决方案1】:

    你应该使用存储过程。

    例如,仅构建两个不同的 strSql & 语句可能会使您的代码更简洁

    strSQL = strBeginSQL1(strRiskSegment, "Detail")
    strSQL = strSQL & "a.field1, b.field1,"
    if (radiobutton2.value = true) then
    strSQL = strSQL & "a.field4, b.field4"
    else if (radiobutton3.value = true)
    strSql = strSQL & "a.field3, b.field3"
    endif
    strSQL = strSQL & "a.field5, b.field5,"
    

    但这是一种糟糕的方式,您应该将这些变量传递给存储过程。

    【讨论】:

    • 我试过这个但我得到:运行时错误'438';对象不支持该属性或方法
    • 呃,只是语法错误。它是 (radiobutton2.value = true) 感谢您的帮助!
    • 没问题,只是出于好奇,这个项目可以选择存储过程吗?
    • 不明白为什么不这样做。我对他们不是很熟悉,仅此而已。下周关于这个主题的培训应该会有所帮助,项目会有很多更新,所以也许在第 2 阶段我们会清理一下代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-02
    • 2011-05-04
    • 2017-12-12
    相关资源
    最近更新 更多