|
4#
楼主 |
发表于 2005-11-27 19:30:00
|
只看该作者
几十万条记录,没有固定的格式,都是中英文、符号、数字交叉
如果有规律都好弄了,现在记录的规律就是没有,而且记录数太多.所以会要寻代码解决,或查询公式解决问题.我在EXCEL中也发布了求助,而且自己编写了一部分代码,就是没有办法显示出结果.中断程序可以部分显示,已经可以达到要求,但最后的结果没有.
需要处理的记录达几十万条,在EXCEL中单个工作表最多可以处理6万多条,把这么多的记录要分成若干个表,然后重复若干次操作,这样是非常累的.而且在EXCEL中通配符没有ACCESS中丰富.所以想在ACCESS中集中处理.或在EXCEL中用自定义公式一次性达到目的.这样即使表格多几个问题也不大了.现在把我的思路(EXCEL中的代码)写出来,请大家修改.谢谢.
Private Function cs(A As Range) As String
Application.Volatile
Dim lo, strtyp1, strtyp2, c, d As Integer
Dim lu%, hw$, hx$
Dim hw, hx
lo = LenB(A)
For lu = 1 To lo
hw = Mid(A, lu, 1)
hx = Mid(A, lu + 1, 1)
c = Asc(hw)
d = Asc(hx)
'对当前字符进行判断
If c > 255 Or c < 0 Then '判断汉字 并赋值
strtyp1 = 1
Else
If (c >= 0 And c < 48) Or (c >= 58 And c <= 255) Then '判断字母 并赋值
strtyp1 = 2
Else
If c < 58 And c >= 48 Then '判断数字 并赋值
strtyp1 = 3
End If
End If
End If
'对下一个字符进行判断
If d > 255 Or d < 0 Then
strtyp2 = 1
Else
If (d >= 0 And d < 48) Or (d >= 58 And d <= 255) Then
strtyp2 = 2
Else
If d < 58 And d >= 48 Then
strtyp2 = 3
End If
End If
End If
'比较前后两个字符,如果类型不一致,则加一个分隔符
If strtyp1 > strtyp2 Or strtyp1 < strtyp2 Then
hw = hw & "\"
cs = cs & hw
'lu = lu + 1
'lo = lo + 1
Else
hw = hw
cs = cs & hw
End If
'cs = cs & hw
Next
'cs = cs & hw
End Function
<COLGROUP>
<COL style="WIDTH: 332pt; mso-width-source: userset; mso-width-alt: 14144" width=442>
自己没有解决的问题:
1、循环的次数,加了“\”以后应该动态改变,目前没有实现
2、最后一个记录,没有hx该如何处理?
3、增加了“\”以后,再取出来的字符是否有问题?比如说:软件\O…,再取第3位就变成了"\",而不是O了
[此贴子已经被作者于2005-11-27 11:46:00编辑过]
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|