首页 > 解决方案 > VBA 拆分函数不允许 Null

问题描述

我是一个菜鸟,需要帮助我如何更改代码以允许 null,因为会有 null 值。我从另一篇文章中提取了这段代码并对其进行了调整以适应我的目的。我正在创建一个表并从一个表部分拆分代码,然后将它们分解为已创建的表,SplitCodes_Part。它一直在脚本的 codelist = split(!code,",") 部分显示错误无效使用 null。零件表中的代码字段可以有多个代码,用逗号分隔,没有空格。我想将它们分成单独的行。

前:

在此处输入图像描述

后:

在此处输入图像描述

下面的代码:

Sub split()


    Dim dbb As DAO.Database
    Dim tdff As DAO.TableDef
    Dim fldd As Field
    Set dbb = CurrentDb()
    Set tdff = db.CreateTableDef("SplitCodes_Part")
    Set flddA = tdff.CreateField("ID", dbText, 250)
    Set flddB = tdff.CreateField("Bookid", dbText, 250)
    Set flddC = tdff.CreateField("Imagefile", dbText, 250)
    Set flddD = tdff.CreateField("Code", dbText, 250)
    Set flddE = tdff.CreateField("ext_Remark", dbText, 250)
    flddE.AllowZeroLength = True
    tdff.Fields.Append flddA
    tdff.Fields.Append flddB
    tdff.Fields.Append flddC
    tdff.Fields.Append flddD
    tdff.Fields.Append flddE
    tdff.Fields.Refresh
    dbb.TableDefs.Append tdff
    dbb.TableDefs.Refresh

    Dim rss As DAO.Recordset
    Dim rss_out As DAO.Recordset
    Dim x As Long
    Dim SplitCodes() As Variant

    Set rss = CurrentDb.OpenRecordset("SELECT id, bookid, imagefile, code, ext_remark from part")
    Set rss_out = CurrentDb.OpenRecordset("SplitCodes_Part")
    With rss
        Do
            CodeList = Split(!Code, ",")
            For x = LBound(CodeList) To UBound(CodeList)
                rss_out.AddNew
                rss_out!Code = CodeList(x)
                rss_out!imagefile = rss!imagefile
                rss_out!bookid = rss!bookid
                rss_out!id = rss!id
                rss_out!EXT_REMARK = rss!EXT_REMARK
                rss_out.Update
                rss_out.AddNew

            Next x
            .MoveNext
        Loop Until .EOF
    End With
    rss_out.Close
    Set rs_out = Nothing
    rss.Close
    Set rss = Nothing
    dbb.TableDefs.Refresh



End Sub

标签: vbams-access

解决方案


过滤掉具有代码的记录:

Set rss = CurrentDb.OpenRecordset("Select ID, Bookid, Imagefile, Code, ext_remark From part Where Code Is Not Null")

推荐阅读