MS Access VBA替换XML文档中的符号
我一直在尝试使用下面的代码,它是上面代码的编辑版本,允许我选择多个文件。问题是。。。1第一个文件替换并保存2。第二个文件替换,同时添加第一个文件3的内容。第三个文件将替换,同时添加前2个文件4的内容。等等 有什么建议吗MS Access VBA替换XML文档中的符号,xml,vba,replace,Xml,Vba,Replace,我一直在尝试使用下面的代码,它是上面代码的编辑版本,允许我选择多个文件。问题是。。。1第一个文件替换并保存2。第二个文件替换,同时添加第一个文件3的内容。第三个文件将替换,同时添加前2个文件4的内容。等等 有什么建议吗 Private Sub Command483_Click() Dim qdf As DAO.QueryDef Set qdf = CurrentDb.QueryDefs("DeleteDetailsTable") qdf.Execute Dim StrFileName As
Private Sub Command483_Click()
Dim qdf As DAO.QueryDef
Set qdf = CurrentDb.QueryDefs("DeleteDetailsTable")
qdf.Execute
Dim StrFileName As String
Dim fd As FileDialog
Dim vrtSelectedItem As Variant
Dim sBuf As String
Dim sTemp As String
Dim iFileNum As Integer
Dim sFileName As String
DoCmd.SetWarnings False
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.InitialFileName = "c:\saample\*.xml"
If .Show = -1 Then
For Each vrtSelectedItem In .SelectedItems
sFileName = vrtSelectedItem
iFileNum = FreeFile()
Open sFileName For Input As iFileNum
Do Until EOF(iFileNum)
Line Input #iFileNum, sBuf
sTemp = sTemp & sBuf & vbCrLf
Loop
Close iFileNum
sTemp = Replace(sTemp, "&", "and")
iFileNum = FreeFile
Open sFileName For Output As iFileNum
Print #iFileNum, sTemp
Close #iFileNum
DoCmd.SetWarnings True
Next vrtSelectedItem
Else
End If
End With
Set fd = Nothing
DoCmd.SetWarnings True
DoCmd.SetWarnings False
Exit Sub
End Sub
问题在于:
Do Until EOF(iFileNum)
Line Input #iFileNum, sBuf
sTemp = sTemp & sBuf & vbCrLf
Loop
每次通过每个vrtSelectedItem的
循环都会将内容添加到sTemp
(这就是为什么每次编写时它都包含以前所有文件的内容)
您只需在每次迭代开始时清除(重置)sTemp
即可修复此问题:
For Each vrtSelectedItem In .SelectedItems
sFileName = vrtSelectedItem
iFileNum = FreeFile()
' Add the next line
sTemp = ""
Open sFileName For Input As iFileNum
Do Until EOF(iFileNum)
Line Input #iFileNum, sBuf
sTemp = sTemp & sBuf & vbCrLf
Loop
我只是测试了一下,效果非常好。谢谢您。