Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

编号转换请教?

sunny  发表于:2011-05-27 17:41:19  
复制

点击下载此附件

 

规律:
1.编号每6位为一区段,刚好6位就转换为1,转换的关键是先判断编号有几个区段,第一区段永远转换为1,再判断第二个区段以后的区段末位数值
第二区段以后的区段末位数值从0~9转换为0~10

 

2.编号有2个区段时:

100000  100000             100000  100001 

1      .     1-->1.1            1       2-->1.2  ...

 

 

3.编号有3个区段时:            

100000  100000  100000              100000  100000  100001  

1      .     1       1-->1.1.1      1            1       2-->1.1.2 ...

 

100000  100001  100000              100000  100001  100000  

1      .     2       1-->1.2.1      1            1       2-->1.2.1 ...

 

Top
aslxt 发表于:2011-05-27 22:35:37

参考:

SELECT 表4.编号, "1" & IIf(Len([编号])>6,"." & Mid([编号],8,5)+1) & IIf(Len([编号])>12,"." & Mid([编号],14,5)+1) & IIf(Len([编号])>18,"." & Mid([编号],20,5)+1) & IIf(Len([编号])>24,"." & Mid([编号],26,5)+1) AS 新编号
FROM 表4



aslxt 发表于:2011-05-27 22:39:20
规则不一定对,只是提供一种用查询获得结果的思路

茼蒿 发表于:2011-05-27 23:05:54

做好了,看附件,给我个好评哦

点击下载此附件

sunny 发表于:2011-05-28 10:20:18

SELECT 表4.编号, "1" & IIf(Len([编号])>6,"." & Mid([编号],8,5)+1) & IIf(Len([编号])>12,"." & Mid([编号],14,5)+1) & IIf(Len([编号])>18,"." & Mid([编号],20,5)+1) & IIf(Len([编号])>24,"." & Mid([编号],26,5)+1) AS 新编号
FROM 表4



如果区段增加,代码还得再加判断

 

能做成模块最好了



赵文斌 发表于:2011-05-28 18:05:54

Public Function bhzh(bhid As String) As String
   Dim i, a As Integer
   Dim str, b As String
   str = ""
   a = Len(bhid) / 6
  
  If a > 1 Then
  For i = 1 To a
   
    If Mid(bhid, i * 6 + 2, 5) <> "" Then
    b = Val(Mid(bhid, i * 6 + 2, 5)) + 1
    Else
    b = ""
    End If
    str = str & "." & b
  Next i
  str = "1" & Left(str, Len(str) - 1)
  Else
  str = "1"
  End If
   bhzh = str
End Function

 

 

在命令按键单击代码里加入下面代码即可:

   DoCmd.RunSQL "update 表1 set nbh=bhzh([bh])"
   Me.Refresh


你在查询里也可以直接用这个自定义模块函数。



总记录:5篇  页次:1/1 9 1 :