sql server - How to transfer a large ADO recordset in Access 2013 to a CSV file? -
sql server - How to transfer a large ADO recordset in Access 2013 to a CSV file? -
i'm running performance issues when transferring big ado recordset access 2013 new csv file.
my requirements are: 1) file must contain column names 2) recordset can contain more 500,000 records 3) file must comma delimited 4) records have alphanumeric strings contain commas 5) programme must create new csv file (not update pre-existing one) note: info stored in recordset because it's queried ms-sql server
i'm relatively new vba programming help appreciated. read getrows loops run origin end of file can efficient process exporting big recordsets csv. thanks
this current implementation violates number of requirements:
'write info text file dim f adodb.field dim myfilesystemobject object dim txtfile object set myfilesystemobject = createobject("scripting.filesystemobject") set txtfile = myfilesystemobject.createtextfile(strpath & ".txt", true) adrs each f in .fields txtfile.write (f.name) txtfile.write chr(9) next txtfile.writeline txtfile.write adrs.getstring(adclipstring) .close end txtfile.close
you can seek (though don't know performance affected; question seems twofold - how results , how can efficiently).
'write info text file dim f adodb.field dim myfilesystemobject object dim txtfile object dim str string set myfilesystemobject = createobject("scripting.filesystemobject") set txtfile = myfilesystemobject.createtextfile(strpath & ".txt", true) adrs each f in .fields txtfile.write (f.name) txtfile.write chr(9) next txtfile.writeline 'add in leading double quote, double quote text qualifier throughout, , changing carriage returns double quote/carriage return/double quote. str = chr(34) & replace(replace(adrs.getstring, vbtab, chr(34) & "," & chr(34)), vbcr, chr(34) & vbcr & chr(34)) 'write file removing lastly extraneous double quote. txtfile.write mid(str, 1, len(str) - 1) .close end txtfile.close all code doing adding " origin of string, changing previous tab characters "," , changing carriage returns "[cr]". replace in write function should remove lastly extraneous ". text delimiter should protect embedded commas. again, not sure of performance, seems can , running specs, @ least.
edit: if doesn't want be, can check out sql server's bcp utility well.
sql-server vba csv ado
Comments
Post a Comment