为什么别人的VB中可以使用Trim函数,而我的VB中使用起来就出错了!大侠请回答!!!



------
为什么别人的VB中可以使用Trim函数,而我的VB中使用起来就出错了!大侠请回答!!!
------
看看你的工程引用,多半有问题  
------
清具体说明!!!
------
老兄,把错误paste上来瞧瞧............

------
也許你的vb有問題。重新setup
------
有两个解决办法:
1,沐浴,吃斋,面向西雅图方向叩拜,并口念盖茨大仙之名,每日三次.
2,将你的代码及错误提示Paste到CSDN,自有各路大仙显灵.
------
Option   Explicit

Public   now_data   As   String
Public   now_year   As   String
Public   now_month   As   String
Public   now_day   As   String
Public   now_hour   As   String
Public   now_mini   As   String
Public   now_sec   As   String

Public   ex   As   New   Excel.Application
Public   exwbook   As   Excel.Workbook
Public   exsheet   As   Excel.Worksheet
Public   exdest   As   New   Excel.Application
Public   exwbookdest   As   Excel.Workbook
Public   exsheetdest   As   Excel.Worksheet

Public   op   As   String
Public   oppass   As   String
Public   oplevel   As   Integer
Public   fMainForm   As   frmMain


Sub   Main()
        Dim   fLogin   As   New   frmLogin
       
        now_data   =   Now
        now_year   =   "20 "   &   Left(Trim(now_data),   2) < < <提示编译错误:找不到工程或库。
        If   Right(Left(Trim(now_data),   5),   1)   =   "- "   Then
        now_month   =   "0 "   &   Right(Left(Trim(now_data),   4),   1)
        Else
        now_month   =   Right(Left(Trim(now_data),   5),   2)
        End   If
        now_day   =   Right(Left(Trim(now_data),   8),   2)
        now_hour   =   Left(Right(Trim(now_data),   8),   2)
        now_mini   =   Left(Right(Trim(now_data),   5),   2)
        now_sec   =   Right(Trim(now_data),   2)
               
        frmSplash.Show   1
        frmSplash.Refresh
        Set   fMainForm   =   New   frmMain
        Load   fMainForm
        Unload   frmSplash
        fMainForm.Show
        fLogin.Show   vbModal
        If   Not   fLogin.OK   Then
                '登录失败,退出应用程序
                End
        End   If
        Unload   fLogin
       
       
End   Sub

Sub   opendatasource(strsql   As   String)

Dim   sourcn   As   ADODB.Connection
Dim   sourdata   As   ADODB.Recordset
Dim   sourstr   As   String
Dim   count   As   Integer
Dim   i   As   Integer
Dim   str1   As   String

str1   =   App.Path   &   "\czdata.mdb "
'Me.MousePointer   =   vbHourglass
sourstr   =   "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source= "   &   str1   &   ";Persist   Security   Info=False "
Set   sourcn   =   New   ADODB.Connection
Set   sourdata   =   New   ADODB.Recordset
sourcn.Open   sourstr
sourdata.Open   strsql,   sourcn,   adOpenKeyset,   adLockOptimistic,   adCmdText
sourdata.MoveFirst

'sourdata.Close
'Me.MousePointer   =   vbNormal

End   Sub

------
now_data   =   Now
        now_year   =   "20 "   &   Left(Trim(now_data),   2) < < <提示编译错误:找不到工程或库。
       
这个地方没有错啊,你是不是其它地方定义的变量类型不对,我就找不到excel类,你引用的是哪个类,有没有错,用对象浏览器看一下。

------
uninstall   ---->   setup   vb
------
now_data   =   Now
now_year   =   "20 "   &   Left(Trim(now_data),   2)   中   now_data   是日期型变量,不能做字符串处理。可以写作now_year   =   "20 "   &   Left(Trim(cstr(now_data)),   2)   。
                                                                                    -----
------
不要瞎胡闹了,我告诉你是引用有问题!如果不是,我给你分!!!
------
snowguy   说的对
------
你用now_year   =   "20 "   &   Left(Trim(now_data),   2)来取得年份是很不保险的,如果别人机器上默认的就是长日期格式,就会取出“2020”
其实你用Year(Date),Month(Date)就能很方便的取出月份和日期

至于不能用Trim,我看也不是引用问题,VisualBasic   For   Application的引用是去不掉的,可能是你的MSVBVM60.DLL文件出了问题。
------
不是引用的问题,程序中只是引用了excel   9.0&access9.0lib而已,VB也没有什么问题,我在单位的其他的机器中试过也存在这个问题。

我自己现在的解决方法是:利用其他的一个vb的setup(和我的程序有点关系)的程序运行一遍(他有一些dll和ocx程序,然后在运行我的程序就可以了。你说怪不怪!

我认为可能是vb6的bug来的上面的程序也许在vb5.0就不会有这个问题.(我自己没有试,因为我没有装vb5).好象VB6不怎么好用,太多BUG了!
------
now_year=format(date(), 'yyyy ')     or  
now_year   =   "20 "   &   Left(Trim( " "   &   now_data),   2)
------
这种问题我也遇到过。特别是要打开已有的工程时,有时会出现这样、那样的问题。
我的解决办法是:重生成一个新的工程,再把这个工程下的内容都复制过去。很管用的,虽然比较苯一点。
应该跟设置没有关系的。
------
新建一个标准工程试试   TRIM,
if   不行   then  
      重装   VB
Else  
      比较一下 "引用 "的区别
end   if
------
你的引用有问题!仔细差差!ADO的版本是不是一致,Excel的版本对不对!
------
to   A_SOSO:
我会看看这种办法的!!
------
你可能是没有引用OLE   Automation
------
我现在是利用在一部可以运行的机器上用vb自己带的打包文件生成了一个打包的文件(好大啊,程序只有1m,打包20m),然后在在其他的机器上安装就可以了!(应该是BUG来的)
------
这个问题是你引用了VBA所造成的。
Public   ex   As   New   Excel.Application
编译器有时也犯傻,怪不得老盖。不信你去掉上一行试试。还有SPACE等函数都不能用,因为VBA中和VB这些函数都重名。
有两个办法解决
1。在TRIM前指明函数库,如VBA.space,类似,你可以用vb中得OBJECT   BROWSER看看你的运行库。不然再问了。
2。先把引用去掉,执行一下,然后再把引用加上。倒霉的编译器就会分得请顺序了,要不然把你输出到EXCEL的那块做一个DLL,也可以。

------
绝对不是TRIM的问题,我也认为应该是引用的问题。
------
是引用的问题。
------
A_soso对
我以前也遇到同样的问题,用同样的方法解决
------
就是VBA的问题,他引用了VBA,我也碰到过,先把引用去掉,再加载就可以了!或者写成VBA.trim()也可(^_^).
------
WEE   和   bachelor   说得很对!
------
是装了其它软件覆盖了一些VB文件,重装VB
------
不应该是我覆盖了一些vb文件的问题,如果是这样的话,老BILL的东西也太难用了!既要顾虑到程序的应用,方法,还要注意你只能再最后装他,且不能再装其他的东西。
另,现在vb6有没有升级的文件???vb7什么时候出来啊!
------
原因很简单,别人的机器上安装了sp4而你的机器上没有。在装有sp4的机器上打开过程序并编译,就不能在没装sp4的机器上打开了。否则会出现你的问题》
------
怎么还没解决啊?
------
老兄啊,咱哥俩可是同命相连那,区别是我的TRIM好用,但是RIGHT不好用,而且LEFT和MID都好用,你说气不气人,而且不止一个工程出现这个问题,哎,MS的东东可真烂
------
to   withstudy:
是阿,MS的东西真的好烂!还是用delphi好点,可是我们的程序是用vb写的,如果不是这样的话,我早就用delphi来写过了!!
------
TO   DAIVER
说句实话,我还是欣赏BCB,只是我的C语言的功底太薄,而且VB我用的年头多了,有什么工作已经习惯用VB来作了,要不然我早就换了
------
千万别说Delphi好,得不到的葡萄总是好的。你们的问题VB坏了的可能性太大,别拿坏了的VB和别人比。不管怎么说,Microsoft的产品是最贴近用户的,操作最方便,应此他才能成功。我最讨厌别人骂Microsoft,很简单的原因,Microsoft是最成功的软件公司,这就够了。我们该学习而它不是批评。
BTW:我是个Delphi程序员。
------
  我朋友的vb一用picture属性就退出,也不提示保存,
从装vb无用,format也不行,
谁知道为什么?:(
------
有一篇论文就是说vb的trim函数的这个问题的,vb就是有这个问题(但不是bug).解决方法就是自己用vb编一个实现此功能的函数。
------
引用有问题
------
装最新的Sevices   Pack就行了
------
干脆自己写个函数得了

Public   Function   Trim(Str   as   String)   As   String
        Trim=Left$(Str,InStr(1,Str,Chr(0))-1)
End   Function
------
我朋友的vb一用picture属性就退出,也不提示保存,
从装vb无用,format也不行,
谁知道为什么?:(  
--------------------------------------------------
呵呵,这个问题的答案我知道,但是我不知道是为什么~~
只要把在“区域设置”里把中国改为美国就好了
我想应该是差个补丁,具体是什么我现在也不知道~~~


------
????
------
原因是字符集不同结果就不同!是半角uncode还是ANSI还是DBCS还是全角uncode?不同的字符集有不同的结果!!!看看你的机子上是什么字符集。
------
vb的trim函数不能够去掉字符串中的null,只能去掉 "   ",所以如果你的字符串中不但含有 "   ",还含有null时,你要自已写个函数去解决。
------
我也遇到过这样的情况,实际上我把机器重新启动一次,然后把程序中的TRIM删除再写一遍就好了,至于原因真不知道是什么,反正与MS有关
------
你到底要实现什么样的功能呢,你如果要实现长格式的日期输出。可以使用下面的方法。
strout=format   (strin, "Long   Time ")
------
我也遇到过这个问题,不过当时是编译别人的程序出现的。
当时我还以为我没睡醒呢,后来VB她自己就好了
就照前面那堆大侠说的做,自己写这个函数。
------
是引用的问题,我试过打开引用菜单,会看到有一个项目是   miss   xxxx,把它去掉就行了。
------
是引用的问题,VB会自动转换类型的
------
看看引用,我也常常出现这个问题只要把那引用的勾勾去掉就行了    
------
引用的问题
我用vba.trim 就可以了
桂ICP备07017180号