组织机构代码 组织机构代码是对中华人民共和国内依法注册、依法登记的机关、企、事业单位、社会团体和民办非企业单位颁发一个在全国范围内唯一的、始终不变的代码标识。 建立代码统一标识制度的意义: 对单位法人实行组织机构代码和自然人实行社会保障号码制度,是国家整个经济和社会实现现代化管理的基本制度,尽快建立这一制度对建立社会主义市场经济体制和推动社会进步具有十分重要的意义,且具有紧迫性。 组织机构代码编制规则: 1.全国组织机构代码由八位数字(或大写拉丁字母)本体代码和一位数字(或大写拉丁字母)校验码组成。 本体代码采用系列(即分区段)顺序编码方法。 校验码按照以下公式计算: 式中: MOD——代表求余函数; i——代表代码字符从左至右位置序号; Ci——代表第i位上的代码字符的值(具体代码字符见附表); C9——代表校验码; Wi——代表第i位上的加权因子,其数值见下表: 当C9的值为10时,校验码应用大写的拉丁字母X表示;当C9的值为11时校验码用0表示。 2.代码的表示形式 为便于人工识别,应使用一个连字符“—”分隔本体代码与校验码。机读时,连字符省略。表示形式为: xxxxxxxx—X 3.自定义区 为满足各系统管理上的特殊需要,规定本体代码PDY00001至PDY99999为自定义区,供个系统编制内部组织机构代码使用。自定义区内编制的组织机构代码不作为个系统之间信息交换的依据。 附表:代码字符集 代码字符 机器处理字符数值 0 0 1 1
2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 A 10 B 11 C 12 D 13 E 14 F 15 G 16 H 17 I 18 J 19 K 20 L 21 M 22 N 23 O 24 P 25 Q 26 R 27 S 28 T 29 U 30 V 31 W 32 X 33 Y 34 Z 35 vb计算公式 Public Function CODE9(str_in As String) As String Dim w(8) As Integer ‘W权位 w(1) = 3 w(2) = 7 w(3) = 9 w(4) = 10 w(5) = 5 w(6) = 8 w(7) = 4 w(8) = 2 Dim c As String Dim zz, z As Integer str_in = UCase(str_in) ‘转换成大写字母 For i = 1 To 8 c = (Mid(str_in, i, 1)) If (c >= "A" And c <= "Z") Then ‘A-Z字符 z = (Asc(c) - 55) * w(i) ElseIf (c >= "0" And c <= "9") Then ‘0-9字符 z = Val(c) * w(i) Else CODE9 = Err ‘不能输入其他字符错误码 Return End If zz = zz + z Next jav = 11 - (zz Mod 11) If jav = 10 Then C9 = "X" ElseIf jav = 11 Then C9 = "0" Else C9 = Mid(Str(jav), 2, 1) ‘删除文本前导空格 End If CODE9 = Mid(str_in, 1, 8) + C9 End Function