为什么别人的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号