vb6升级到vb.net? 小心!
[ 2008-10-06 22:56:22 | 作者: progame ]
这些天在搞堪比火箭和飞船的系统对接, 话说打虎亲兄弟, 上阵父子兵, VB6, C#, VB.Net一齐上, 好一番鸡飞狗跳真热闹
Com Class, Interop Forms Toolkit, MS毕竟不止顾着宠小儿子, 也给那些大的留了些活路, 现在用来效果还真不错, 使得VB6有老树开花第二春的感觉了, 有了庞大的framework类库, 有了更庞大的易于反编译的第三方组件和类库, 生活又开始阳光灿烂起来了, 开发效率还是.Net高了很多很多, 但是弄着弄着发现一个问题了
因为调用了scriptcontrol执行脚本, 但没有format函数, 于是用addobject加入了一个自定义类的实例, 里面的format函数其实转而调用的是VBA.Format, 也用了这么久, 现在迁移到VB.Net, 却发现gloal.miscrosoft.visiualbaisic.format函数和原来的VBA.format行为太不一致了, 心想, 这下如何是好? 傻眼了!
google吧, 找到一个, 还行, 效率是差点, 但将就能用:
Com Class, Interop Forms Toolkit, MS毕竟不止顾着宠小儿子, 也给那些大的留了些活路, 现在用来效果还真不错, 使得VB6有老树开花第二春的感觉了, 有了庞大的framework类库, 有了更庞大的易于反编译的第三方组件和类库, 生活又开始阳光灿烂起来了, 开发效率还是.Net高了很多很多, 但是弄着弄着发现一个问题了
因为调用了scriptcontrol执行脚本, 但没有format函数, 于是用addobject加入了一个自定义类的实例, 里面的format函数其实转而调用的是VBA.Format, 也用了这么久, 现在迁移到VB.Net, 却发现gloal.miscrosoft.visiualbaisic.format函数和原来的VBA.format行为太不一致了, 心想, 这下如何是好? 傻眼了!
google吧, 找到一个, 还行, 效率是差点, 但将就能用:
Function Format(vExpression, sFormat)
set fmt = CreateObject("MSSTDFMT.StdDataFormat")
fmt.Format = sFormat
set rs = CreateObject("ADODB.Recordset")
rs.Fields.Append "fldExpression", 12 ' adVariant
rs.Open
rs.AddNew
set rs("fldExpression").DataFormat = fmt
rs("fldExpression").Value = vExpression
Format = rs("fldExpression").Value
rs.close: Set rs = Nothing: Set fmt = Nothing
End Function
set fmt = CreateObject("MSSTDFMT.StdDataFormat")
fmt.Format = sFormat
set rs = CreateObject("ADODB.Recordset")
rs.Fields.Append "fldExpression", 12 ' adVariant
rs.Open
rs.AddNew
set rs("fldExpression").DataFormat = fmt
rs("fldExpression").Value = vExpression
Format = rs("fldExpression").Value
rs.close: Set rs = Nothing: Set fmt = Nothing
End Function
1

