You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 05:12:05