Консультация № 115747
24.12.2007, 15:28
0.00 руб.
0 1 1
День добрый, ув. эксперты портала. Подскажите, плиззз! Функция экспорта из ACCESS в EXCEL.в 97 ACCESSE работает. Но мне надо в 2.0. она компилируется, ошибки не выдаются и ничего не происходит. ЧТО НЕ ТАК?
заранее благодарна. С НАСТУПАЮЩИМ НОВЫМ ГОДОМ!!!!

Приложение:
Function Export1 (Exporter As Long) As Integer Dim StcAQL As String Const stcSQL = "SELECT DISTINCTROW otchet.*,podr.sh_name FROM otchet INNER JOIN podr ON otchet.код_подразделения = podr.kod_podr WHERE datat Between data-5 And data+5 And datat<=date()+2"Dim db As Database, rs As Recordset, qd As QueryDef, rst As Recordset Set db = CurrentDB() Set rs = db.OpenRecordset(stcSQL)If rs.EOF Then MsgBox "Нет данных для копирования" ElseOn Error Resume Next db.QueryDefs.Delete "_tempQD" db.QueryDefs.Refresh On Error GoTo 0 Set qd = db.CreateQueryDef("_tempQD", stcSQL) db.QueryDefs.Refresh DoCmd TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "_tempQD", "C:otchet.xls" db.QueryDefs.Delete "_tempQD" db.QueryDefs.Refresh MsgBox "Скопирован отчет. Файл находится по адресу C:otchet.xls" End IfEnd Function

Обсуждение

Неизвестный
24.12.2007, 21:03
общий
это ответ
Здравствуйте, Yuryeva!
Этот код подразумевает использование библиотеки DAO, как ее подключить в Access 2.0 не подскажу, но сделать это надо.
Единственная обнаруженная ошибка, скорее похожа на опечатку, отмечена в коде.
В целом конструкция работоспособна, убедиться можно выполнив ее пошагово.
Евгений.

P.S. в Вашем коде присутствуют неиспользуемые переменные - это не есть хорошо.

Приложение:
Function Export1() ‘Exporter As Long) As Integer - не используемый аргумент и свойство ‘Dim StcAQL As String - не используемая переменнаяConst stcSQL = "SELECT DISTINCTROW otchet.*,podr.sh_name FROM otchet INNER JOIN podr ON otchet.код_подразделения = podr.kod_podr WHERE datat Between data-5 And data+5 And datat<=date()+2"Dim db As Database, rs As Recordset, qd As QueryDef ‘, rst As Recordset - не используемая переменная Set db = CurrentDb() Set rs = db.OpenRecordset(stcSQL)If rs.EOF Then MsgBox "Нет данных для копирования" ElseOn Error Resume Next db.QueryDefs.Delete "_tempQD" db.QueryDefs.Refresh ‘On Error GoTo 0 - не используемая команда Set qd = db.CreateQueryDef("_tempQD", stcSQL) db.QueryDefs.Refresh DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "_tempQD", "C:\otchet.xls" ‘в Вашей конструкции была ошибка - DoCmd TransferSpreadsheet ... db.QueryDefs.Delete "_tempQD" db.QueryDefs.Refresh MsgBox "Скопирован отчет. Файл находится по адресу C:\otchet.xls" End IfEnd Function
Форма ответа