Access 2010 VBA文本框内容输出文件的格式修正问询
Access 2010 VBA:输出文本到文件时去除引号并仅保留第一行
你的问题根源在于两个细节:一是Write #1语句会自动给字符串套双引号,二是原文本里的换行符被Write额外处理了。这里给你针对性的修改方案,直接解决问题:
1. 替换Write #1为Print #1
Write语句的设计初衷是输出带格式的数据(比如给字符串加引号、自动处理分隔符),而Print会直接输出原始文本,不会额外添加任何格式符号,刚好匹配你的需求。
2. 提取文本的第一行内容
原文本包含CRLF换行符,我们需要截取第一个换行符之前的内容,确保只输出第一行。可以用InStr定位换行符位置,再用Left截取,同时加个判断避免没有换行符时出错。
修改后的完整代码如下:
Private Sub ProcessButton_Click() MsgBox ("Into Process Button Click") ' Assign found line to variable Dim Outline As String Dim lineBreakPos As Integer ' 提取第一行内容 Outline = Me.TextboxFound.Value lineBreakPos = InStr(Outline, vbCrLf) If lineBreakPos > 0 Then Outline = Left(Outline, lineBreakPos - 1) End If 'Save record to file strFile_Path = OutputFile Open strFile_Path For Append As #1 Print #1, Outline ' 用Print代替Write,避免添加引号 Close #1 ' Update db table ' Clear Fields Me.TextBoxPod.Value = Null Me.TextBoxDate.Value = Null Me.TextboxFound.Value = Null Me.TextBoxPod.SetFocus End Sub
改动说明
- 用
Print #1替代Write #1:彻底解决双引号自动添加的问题,输出的就是你需要的原始文本。 - 第一行提取逻辑:通过
InStr找到第一个vbCrLf的位置,截取之前的内容;如果文本里没有换行符,就直接用原内容,不会触发错误。
这样修改后,输出到文本文件的内容就会是10101010102 LINE1 DATA(不带引号,且只保留第一行),完全符合你的需求。
内容的提问来源于stack exchange,提问作者onlyf
相关产品推荐
相关产品推荐

