以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  高级功能研发区  (http://weistock.com/bbs/list.asp?boardid=5)
----  字符串比较怎么就是不对呢?  (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=4938)

--  作者:guotx2010
--  发布时间:2011/1/21 16:54:55
--  字符串比较怎么就是不对呢?

我要比较最近登录的账号与前一个账号是否相同,分别用两个变量来表示,明明两个变量的值是一样的,怎么系统就是判断为不一样呢?

 

public AccountCode        \'记录已经登录的账号

Sub GetAccountCode()

    dim sAccount            \'记录可能更换了的账号
    sAccount=cstr(Trim(ORDER.ACCOUNT(1)))
    If sAccountID=AccountCode Then       \'就是这句,当两个变量是相同的值的时候,这里总是返回false
          Exit Sub
    Else
          AccountCode=sAccount
          GetOrder
    End if 

End Sub

 

这就是我的代码


--  作者:xyhsoft
--  发布时间:2011/1/21 20:44:45
--  

 sAccount=cstr(Trim(ORDER.ACCOUNT(1)))
    If sAccountID=AccountCode Then

 

     sAccountID------变量名是什么?或是 sAccountID=AccountCode 类型不对

[此贴子已经被作者于2011-1-21 20:47:13编辑过]

--  作者:guotx2010
--  发布时间:2011/1/21 22:05:26
--  

都是字符型,VBS中定义变量并不指定类型呀,order.Account(1)返回的是字符变量,sAccountID也是字符变量。

 

解决了,原来是我自己写多了个ID,定义的变量与比较用的变量名不一样,金字塔也不检查这些未定义的变量,应该象Access一样可以设置变量必须定义才行。

 

[此贴子已经被作者于2011-1-21 22:20:25编辑过]

--  作者:王锋
--  发布时间:2011/1/22 18:22:31
--  

这不是金字塔的问题,楼主应该好好学学VBS的语法

 

Option Explicit 语句  语言参考

--------------------------------------------------------------------------------

描述
用于 Script 级强制要求显式声明该 Script 中的所有变量。
语法
Option Explicit
说明
如果使用 Option Explicit,该语句必须出现在 Script 的任何过程之前。
使用 Option Explicit 语句时,必须使用 Dim、Private、Public 或 ReDim 语句显式声明所有变量。如果试图使用未经声明的变量名,则会出现错误。
--------------------------------------------------------------------------------
 
提示 可用 Option Explicit 避免拼错已存在的变量名称。对于作用范围不清楚的变量,使用此语句可避免发生混淆。

 

[此贴子已经被作者于2011-1-22 18:23:23编辑过]