在MS Access 2016中从字符串字段提取7位数字ID的方法咨询
提取Access评论字段中的7位连续数字ID方案
一、修改VBA公共函数
原函数会提取所有数字并拼接,无法区分连续的7位ID。以下是修改后的函数,专门识别并提取字符串中连续7位数字,若存在多个符合条件的ID,将以逗号分隔返回:
Public Function Extract7DigitDonorID(strInput As Variant) As String Dim strResult As String Dim currentDigits As String Dim z As Integer Dim ch As String If IsNull(strInput) Then Extract7DigitDonorID = "" Exit Function End If strInput = CStr(strInput) For z = 1 To Len(strInput) ch = Mid(strInput, z, 1) ' 累积连续数字 If ch Like "[0-9]" Then currentDigits = currentDigits & ch Else ' 遇到非数字时,检查当前累积的数字是否为7位 If Len(currentDigits) = 7 Then If strResult <> "" Then strResult = strResult & ", " strResult = strResult & currentDigits End If currentDigits = "" ' 重置累积 End If Next z ' 处理字符串末尾的连续数字 If Len(currentDigits) = 7 Then If strResult <> "" Then strResult = strResult & ", " strResult = strResult & currentDigits End If Extract7DigitDonorID = strResult End Function
函数说明
- 遍历输入字符串,累积连续的数字字符
- 遇到非数字字符时,检查累积的数字长度是否为7:是则加入结果,否则重置累积
- 处理字符串末尾可能存在的7位数字序列
- 支持返回多个7位ID(用逗号分隔),适配评论中可能存在多个关联ID的场景
二、在Access查询中使用
创建或修改查询,添加一个计算字段调用上述函数,示例如下:
SELECT 捐赠者表.ID, 捐赠者表.评论字段, Extract7DigitDonorID([评论字段]) AS 关联原记录ID FROM 捐赠者表;
注意事项
- 将
[评论字段]替换为你实际的评论字段名称 - 如果只需要提取第一个出现的7位ID,可以修改函数,找到第一个符合条件的ID后直接返回,无需继续遍历
内容的提问来源于stack exchange,提问作者Tim O
相关产品推荐
相关产品推荐

