Access和VBA读取文本文件,每行超过255个字符

时间:2012-05-24 19:32:28

标签: vba ms-access-2007

我正在尝试使用VBA在Access中读取文本文件。代码如下:

Open "C:\Test\test.txt" For Input As #1
Dim MyString as String
Dim x as integer
x = 0 
For x = 0 to 100
  Input #1, MyString
  MsgBox MyString
Next x

所以这段代码的目的是迭代遍历文本文件,逐行读取并打印出来。但是文本行有可能超过255个字符。有没有办法读取超过255个字符的行并将它们存储在VBA中?谢谢。

编辑:文本文件示例

1110;        TESTING     ; 1111;        TESTING2    ; 5;       999990981; 10-30-2011;               12-01-2011;                 133370001;  133370001;  133370001;  133370001;  133370001;  133370001;  133370001;  133370001;  133370001;  133370001;  133370001;  133370001; F;         13371; 1;       TEST1                          ;  000000000;    133370001;  0;      TEST         ; TESTTES                             ; TEST        ; 501;     10001;     0;       00001;    
 1112;        TESTING     ; 1113;        TESTING2    ; 3;       999990982; 10-02-2011;                10-30-2011;                 133370002;  133370002;  133370002;  133370002;  133370002;  133370002;  133370002;  133370002;  133370002;  133370002;  133370002;  133370002; F;         13372; 2;       TEST2                          ;  000000000;    133370002;  0;      TEST1        ; TESTTESTT                           ; TES         ; 502;     10002;     0;       00002;    
 1113;        TESTING     ; 1114;        TESTING2    ; 21;      999990983; 03-01-2011;                10-02-2011;                 133370003;  133370003;  133370003;  133370003;  133370003;  133370003;  133370003;  133370003;  133370003;  133370003;  133370003;  133370003; F;         13373; 3;       TEST3                          ;  000000000;    133370003;  0;      TTESTTESTT   ; TESTTESTTES                         ; TESTTES     ; 503;     10003;     0;       00003;    

3 个答案:

答案 0 :(得分:2)

Sub ReadLines()

    Dim sInput As String
    Dim i As Long

    Open "C:\Users\dick\test.txt" For Input As #1

    Do While Not EOF(1)
        Input #1, sInput
        Debug.Print Len(sInput), sInput
    Loop

End Sub

我得到了

468          1110; ...
469          1112; ...
469          1113; ...

所以我没有看到这种限制

答案 1 :(得分:0)

使用Input #让我很难过,这似乎很奇怪。我没有收到错误,但我收到了一些字符串。我试着查看文本的每一行,看看是否有异常,但我找不到任何异常。最后,我尝试了@Matt Donnan使用TextStream的方法并且这项工作。谢谢大家,抱歉花时间。

答案 2 :(得分:0)

我认为问题与MsgBox的大小限制有关。 Debug.Print将打印到立即窗口(可通过Ctrl + G访问)。