powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Из Аксесса в шаблон Екселя - есть ли надежный способ?
6 сообщений из 56, страница 3 из 3
Из Аксесса в шаблон Екселя - есть ли надежный способ?
    #32498930
tim2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пункт1 не понял: ...но, может быть, временным путем
Т.е., в примере, проц-ру "MakeXLS_2" не выполнять, а в проц-ру "MakeXLS_1" добавить что-то, что либо сразу гонит в нужную папку без открытия (что сейчас в прц-ре и происходит), либо гонит во временную папку и открывает?
1. диалога о сохранении не будет(если только посмотреть)
2. Kill без закрытия Екселя тоже не получится...
Может я и запутался, но что-то не выходит каменная чаша.
...
Рейтинг: 0 / 0
Из Аксесса в шаблон Екселя - есть ли надежный способ?
    #32498955
tim2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
немного был не прав: вопрос о сохранении появляется, но, при согласии, не возникает диалога выбора папки - закрывается и все.
...
Рейтинг: 0 / 0
Из Аксесса в шаблон Екселя - есть ли надежный способ?
    #32499024
tim2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изгалился так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
OutPutch = DLookup( "[Папка]" ,  "Установки" )
If Right(OutPutch,  1 ) <>  "\"  Then OutPutch = OutPutch &  "\" 
RepVid = DLookup( "[ВыводОтчетов]" ,  "Установки" )
strFileName = Имя_Файла(FileName) &  ".xls" 
If Not RepVid Then 'без показа'
TempName =  "temp.xls" 
Else 'с показом'
TempName = strFileName
End If

Set rst = CurrentDb.OpenRecordset( "TXLS" )
   'Записываем в файл'
XLS = rst(FieldName).GetChunk( 0 , rst(FieldName).FieldSize)
Open OutPutch & TempName For Binary Access Write As # 1 
Put # 1 , , XLS
Close # 1 
rst.Close
If Not RepVid Then
Call MakeXLS_1()
Else
Call MakeXLS_2()
End If
MakeXLS_1():
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Set xlsApp = CreateObject( "Excel.Application" )
Set WB = xlsApp.Workbooks.Open(OutPutch & TempName)
Set xlsSheet = WB.Sheets( 1 )
'Что-то делаем'
'Результирующий файл
FileName = OutPutch & strFileName

'Если уже был такой, то удаляем
If Dir(FileName) <>  "" Then Kill FileName
'Сохраняем под нужным именем'
WB.SaveAs FileName
me1:
'Выходим'
.............
'Удаляем шаблон'
If Dir(OutPutch & TempName) <> " " Then Kill OutPutch & TempName
...
Рейтинг: 0 / 0
Из Аксесса в шаблон Екселя - есть ли надежный способ?
    #32499046
tim2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
MakeXLS_2():
Set xlsApp = CreateObject( "Excel.Application" )
Set WB = xlsApp.Workbooks.Open(OutPutch & TempName)
Set xlsSheet = WB.Sheets( 1 )
'Что-то делаем'
xlsApp.Visible = True
'Выходим'
.......
Здесь шаблон не удаляется. Вопрос о целевой папке не возникает, но док-нт попадает "куда надо".
...
Рейтинг: 0 / 0
Из Аксесса в шаблон Екселя - есть ли надежный способ?
    #32499361
фыыф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 CtrlAlt

мдя, надумал и во 2-й акес втащить (было такое 16-и разрядное) всю энту технологию.
Однако грабли.
- типа Byte нет.
При
Put #1, , XLS
, как я вычислил, если XLS - строка, происходит облом с байтами: 0 - выгружаются как 32. (все остальное вроде вполне работает, с некоторыми правкой/допуском, ес-но). А тут не могу сообразить, как наобмануть. И побайтно пробовал читать/писать и прочая.
...
Рейтинг: 0 / 0
Из Аксесса в шаблон Екселя - есть ли надежный способ?
    #32500079
фыыф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
победил (и в Аксессе2.0),
был неправ в пределах читки байтов
если кому понадобиться:
Код: 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.
'Вытаскивает шаблоны отчетов из бд
Function SaveXLS (oName As String, FileName As String) As Integer
Dim rst As Recordset, F As String, Db  As Database
Dim XLS As Integer'()  As Byte
    F =  "XL" 
    Set Db = CurrentDB()
    Set rst = Db.OpenRecordset( "TXLS" )
    rst.inDex =  "oName" 
    rst.Seek  "=" , oName
    If Not rst.NoMatch Then
        'Записываем в файл
        Dim ln As Long, i  As Long
        ln = rst(F).FieldSize()
        'XLS = rst(F).GetChunk( 0 , ln)
        '-----хер там 32<->0 почему - не понял
        Open FileName For Binary Access Write As #1
        ' -----побуквенно---
 
        For i =  0  To ln -  1 
            XLS = Asc(rst(F).GetChunk(i,  1 ))
            Put # 1 , i +  1 , XLS
        Next i
        '------
        'Put # 1 , , XLS
        Close # 1 
        SaveXLS = True
    Else
        SaveXLS = False
        Exit Function
    End If
    rst.Close
End Function
...
Рейтинг: 0 / 0
6 сообщений из 56, страница 3 из 3
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Из Аксесса в шаблон Екселя - есть ли надежный способ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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