浏览模式: 普通 | 列表
1

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吧, 找到一个, 还行, 效率是差点, 但将就能用:
 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
1