Access交流中心

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

xml导入的多种考虑。。。

幽助  发表于:2019-01-08 15:31:23  
复制

单位提供给客户的XML文件,因为文件名里的序列号发生过和文件里面的序列号不匹配的情况,想在出货前,自行确认序列号是否一致。

想了很多方法XML无法直接导入到ACCESS中,所以想通过批处理先转换TXT,或者CSV文件后批量导入到ACCESS中进行系统确认。

确认:导入时获取文件名中的序列号(通过位数获取),然后再与导入内容里面的序列号进行匹配确认

因为是大量的XML文件,强烈要求不要导一个确认一个。

求大神支持。。。

XML文件如下:xml

xml内容解说:

1、文件名中的“003052515011”为序列号

2、文件内容中的“”RawLotId="003052515011"为序列号

想实现:

1、文件名获取的序列号和文件内容的序列号匹配确认

2、要批量导入后实现结果显示

折腾好多天了,一直没搞定,求大神赐教!

 

Top
伊西军 发表于:2019-01-08 17:11:25

还没实践 不过可以参考下这个思路

以文本的形式读取这个xml文件  然后赋值给字符串 然后将字符串根据回车符号通过split赋值给数组 然后遍历数组的元素 找到"like '*RawLotId=*'"的元素 然后再想办法对比序列号应该就可以了



西出阳关无故人 发表于:2019-01-08 17:38:50
Private Sub Command0_Click()
    Dim F
    Dim TextLine
    With Application.FileDialog(3)
        .AllowMultiSelect = True
        .Filters.Clear
        .Filters.Add "xml文件", "*.xml"
        If .Show Then
            For Each F In .SelectedItems
                Open F For Input As #1    ' 打开文件。
                Do While Not EOF(1)    ' 循环至文件尾。
                    Line Input #1, TextLine    ' 读入一行数据并将其赋予某变量。
                    'Debug.Print TextLine    ' 在立即窗口中显示数据。
                    If Trim(TextLine) Like "RawLotId=*" Then'判断是否符合序列号标记的内容,你还可以增加其他的判断规则。
                        MsgBox Replace(Replace(TextLine, "RawLotId=", ""), """", "") '这里你可以改为insert into ...语句进行数据保存。
                    End If
                Loop
                Close #1    ' 关闭文件。
            Next
        End If
    End With
End Sub


西出阳关无故人 发表于:2019-01-08 17:44:19

测试一下,MsgBox Replace(...)的文本就是你要的序列号。

你也可以把序列号插入表格:

currentdb.execute "insert into 表名称(序列号) values ('" & Replace(Replace(TextLine, "RawLotId=", ""), """", "") & "')"

然后再用表的序列号进行匹配确认。


至于判断某行是否为序列号的文本行,还可以判断字符串的长度,比如

len(trim(textline))=23

或对提取的数据判断是否为12个字符,或用IsNumeric函数判断提取的字符串是否为数字。

总之,判断的依据要正确、全面,才能准确。



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