powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Выгрузка из таблицы SQL в *.CSV через vbs
3 сообщений из 3, страница 1 из 1
Выгрузка из таблицы SQL в *.CSV через vbs
    #35637255
Kukolka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Товарищи, помогите. В VBS описан код выгрузки из некой таблицы на SQL в Excel. Поставлена задача выгружать не в Excel, а в файл *.CSV
Изначальный код таков:
'Создаём экселевский файл
Set objExcel = CreateObject("Excel.Application")
objExcel.SheetsInNewWorkbook = 1 'Один лист в книге
Set objWb = objExcel.Workbooks.Add
Set objWs = objWb.Worksheets(1)
objExcel.Visible = false
'Заполняем поля
objExcel.Cells(1, 1).Value = "Высшее подразд."
objExcel.Cells(1, 2).Value = "Подразд."
objExcel.Cells(1, 3).Value = "Код Подразд."
objExcel.Cells(1, 4).Value = "Описание"
objExcel.Cells(1, 5).Value = "Таб. номер"
objExcel.Cells(1, 6).Value = "Фамилия"
objExcel.Cells(1, 7).Value = "Имя"
objExcel.Cells(1, 8).Value = "Отчество"
objExcel.Cells(1, 9).Value = "Вход"
objExcel.Cells(1, 10).Value = "Точка прохода"
objExcel.Cells(1, 11).Value = "Норма"
objExcel.Cells(1, 12).Value = "Расписание Вход"
objExcel.Cells(1, 13).Value = "Нарушил распорядок на"
objExcel.Cells(1, 14).Value = "Расписание Выход"
objExcel.Cells(1, 15).Value = "Выход"


'Форматируем поля
objWs.Range("A1:O1").Font.Bold = True
objWs.Columns("A:O").AutoFit
'Подключаемся к базе данных
set Connection1 = CreateObject("ADODB.Connection")
Connection1.Open("Provider=SQLOLEDB;Data Source=********;" & _
"Trusted_Connection=no;Initial Catalog=*******;" & _
"User ID=sa;Password=********;")
'Set rs = Connection1.Execute("_kpp_to_galaxy_demo_2")
Set rs = Connection1.Execute("select parent.f$name, t$katpodr.f$name,left(t$katpodr.f$kod,5),t1.t_dis, t1.t_n, t1.fam,t1.imya, t1.otch,t1.t_e,t1.t_name_in,t1.t_time_in,t_g_in,t1.t_late_in,t1.t_g_out,t1.t_ex from kpp_galaxy_test t1 join t$lschet on t1.t_n = t$lschet.f$tabn join t$katpodr on t$lschet.f$cex = t$katpodr.f$nrec inner join t$katpodr parent on t$katpodr.f$cpodr = parent.f$nrec ")
'Копируем данные из запроса в эксель
objWs.Range("A2").CopyFromRecordset rs

'Форматим столбцы
objWs.Cells.Select
objExcel.Selection.Columns.AutoFit
objWs.Range("A1").Select


'Сваливаем отсюда и сейвим докуметн
filename = "c:\Отчёт за"+"_"+Cstr(left(Now-1,10))+".XLS"
On Error Resume Next
objWb.SaveAs(filename)
objWb.Close
Set rs = Connection1.Execute("delete from kpp_galaxy_test")
Set rs = Nothing
set objWb = nothing
set objExcel = nothing

//затем полученый файл рассылаем по списку рассылки по e-mail

'Запускаем на исполнение
ReadMail filename
...
Рейтинг: 0 / 0
Выгрузка из таблицы SQL в *.CSV через vbs
    #35638409
Фотография ICQRobot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kukolka,


Код: plaintext
objWb.SaveAs(filename)

заменяем на


Код: plaintext
objWb.SaveAs Filename:= "xxx.csv", FileFormat:=xlCSV
...
Рейтинг: 0 / 0
Выгрузка из таблицы SQL в *.CSV через vbs
    #35638486
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я сегодня добрый, пользуйтесь.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
dim Connection_String, SQL_Statement, Output_File_Name
Connection_String = "DSN=***;UID=***;PWD=****"
SQL_Statement ="select * from sometable"
Output_File_Name = "export.csv"


dim conn, rs, i, fso, fout, field_data
set fso = CreateObject("Scripting.FileSystemObject")
set fout = fso.CreateTextFile(Output_File_Name, True)
set conn = CreateObject("ADODB.Connection")
conn.Open Connection_String
set rs = conn.Execute(SQL_Statement)

for i= 0  to rs.Fields.Count- 1 
	if i> 0  then fout.Write ","
	fout.Write rs.Fields(i).Name
next
fout.WriteLine

do while not rs.eof
	for i= 0  to rs.Fields.Count- 1 
		if i> 0  then fout.Write ","
		field_data = trim(""&rs(i))
		if instr(field_data, ",") then field_data = """" & field_data & """"
		fout.Write field_data
	next
	fout.WriteLine
	rs.MoveNext
loop

rs.Close
conn.Close
fout.Close
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Выгрузка из таблицы SQL в *.CSV через vbs
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]