Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA-需要附加到大文本中的行尾_Vba_Excel - Fatal编程技术网

VBA-需要附加到大文本中的行尾

VBA-需要附加到大文本中的行尾,vba,excel,Vba,Excel,我有一个系统,一次只能从表中读取50列数据。表中有150列我需要阅读。这个表有一百万行 到目前为止,我一直在做的是读取前50列并将所有100万行写入一个文本文件 接下来我需要做的是,读取下一个包含50列的块,并将100万到100万行附加到我已经写入的现有文本文件中 这就是我陷入困境的地方。我不确定如何写入文本文件中的特定行。我希望不必循环现有文本文件中的每一行,以获得需要附加到的行。有没有一种方法可以指定我需要附加到的行,而不必循环文本文件来查找正确的行?我将使用SQL OLEDB并使用记录集简

我有一个系统,一次只能从表中读取50列数据。表中有150列我需要阅读。这个表有一百万行

到目前为止,我一直在做的是读取前50列并将所有100万行写入一个文本文件

接下来我需要做的是,读取下一个包含50列的块,并将100万到100万行附加到我已经写入的现有文本文件中


这就是我陷入困境的地方。我不确定如何写入文本文件中的特定行。我希望不必循环现有文本文件中的每一行,以获得需要附加到的行。有没有一种方法可以指定我需要附加到的行,而不必循环文本文件来查找正确的行?

我将使用SQL OLEDB并使用记录集简单地输出数据。可能需要一些时间,但应该有效。尝试在循环中使用
LIMIT
FETCH
,以防结果无法一次性加载。或者,在SQL语句中添加一个循环,并获取高于或低于特定行ID的记录(如果您的记录ID是数字而不是散列),例如,
WHERE ID>[OLD_ID]和ID为什么不使用ms office的导出功能?例如,您可以将表格导出到csv文件,因为excel对行数有限制。您读取的“系统”到底是什么?那么,您如何将前50行写入文本文件,提供代码,我们可以处理它?您可以演示如何读取数据吗?你们怎么进口?
Dim fileName As String, textData As String, textRow As String, fileNo As Integer
fileNo = FreeFile

Open fileName For Output As #fileNo

Set rs = CreateObject("ADODB.Recordset")
sConn = "OLEDB;Provider=SQLOLEDB;Data Source=" & _
                serverInstance & ";Initial Catalog=" & database & _
                ";User ID=" & userId & ";Password=" & password & ";"
strSQL = "SELECT * FROM [table_name] "
rs.Open strSQL, strcon, 3, 3
rs.MoveFirst
Do
   textData = ""
   textData = textData & ";" & rs("Col1")
   textData = textData & ";" &  rs("Col2")
   textData = textData & ";" &  rs("Col3") & vbNewLine
   Print #fileNo, textData
   rs.MoveNext
Loop Until rs.EOF

Close #fileNo