|
OLE Excel как шаблон
|
|||
---|---|---|---|
#18+
Уважаемый форум, Поиск не помог. Проблема: есть ОЛЕ-объект на форме, в котором открывается Эксель-файл. Этот файл служит шаблоном для программного заполнения. Есть код, который вызывает этот файл для заполнения. Проблема в ругани Аксесса (ошибка 1004) для кода: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
В старом Офисе 2003 работало на ура. Сейчас Access 2013, Windows 7 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2018, 13:27 |
|
OLE Excel как шаблон
|
|||
---|---|---|---|
#18+
1004 - противная ошибка, бороться приходится шаманскими методами с большим бубном. А зачем вы сохраняете объект таким способом? Активация ОЛЕ объекта довольно длительная операция, для того, чтобы просто сохранить файл она не нужна. Я обычно храню шаблоны в таблице в полях типа Attachment, при старте приложения выгружаю их все на диск (быстрая операция), а при необходимости просто копирую эти файлы в рабочий каталог, заполняю данными и сохраняю. Работает очень быстро. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2018, 13:36 |
|
OLE Excel как шаблон
|
|||
---|---|---|---|
#18+
Укажите правильный формат - xlOpenXMLWorkbook (51). ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2018, 13:38 |
|
OLE Excel как шаблон
|
|||
---|---|---|---|
#18+
MrShin1004 - противная ошибка, бороться приходится шаманскими методами с большим бубном. А зачем вы сохраняете объект таким способом? Активация ОЛЕ объекта довольно длительная операция, для того, чтобы просто сохранить файл она не нужна. Я обычно храню шаблоны в таблице в полях типа Attachment, при старте приложения выгружаю их все на диск (быстрая операция), а при необходимости просто копирую эти файлы в рабочий каталог, заполняю данными и сохраняю. Работает очень быстро. У меня шаблоны тоже в таблице. Прога выбирает из них подходящий, сохраняет копию и заполняет ее и т.д. А можно Ваш код посмотреть? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2018, 13:44 |
|
OLE Excel как шаблон
|
|||
---|---|---|---|
#18+
IFKА можно Ваш код посмотреть? Код чего? Извлечения из таблицы или заполнения? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2018, 13:45 |
|
OLE Excel как шаблон
|
|||
---|---|---|---|
#18+
MrShin, извлечения из таблицы и сохранения на диске ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2018, 13:50 |
|
OLE Excel как шаблон
|
|||
---|---|---|---|
#18+
Вот код извлечения из таблицы. Тип данных - Attachment, не OLE Public Function Get_File(lng_FileID As Long, Optional str_Destination As String, Optional str_FileName As String) As String ' extracts and saves file from attachment field On Error GoTo ErrorHandler Dim rst As DAO.Recordset Dim rstA As DAO.Recordset Dim str_SQL As String Dim str_FullPath As String Dim db as DAO.Database Get_File = "Error" Set db = CurrentDb str_SQL = "SELECT tbl_SystemFiles.ID, tbl_SystemFiles.FileDescription, tbl_SystemFiles.ExportFileName, tbl_SystemFiles.FileLocation, tbl_SystemFiles.Attachments " _ & "FROM tbl_SystemFiles " _ & "WHERE (((tbl_SystemFiles.ID)=" & lng_FileID & "));" Set rst = db.OpenRecordset(str_SQL, dbOpenSnapshot) If rst.RecordCount > 0 Then Set rstA = rst("Attachments").Value If str_FileName = "" Then str_FileName = rst!ExportFileName End If If str_Destination = "" Then str_Destination = rst!FileLocation End If If Right(str_Destination, 1) = "\" Then str_FullPath = str_Destination & str_FileName Else str_FullPath = str_Destination & "\" & str_FileName End If On Error Resume Next Kill str_FullPath MakeMultiDir str_Destination rstA("FileData").SaveToFile str_FullPath If err = 0 Then Get_File = str_FileName End If On Error GoTo 0 End If Exit_ErrorHandler: On Error Resume Next rst.Close Set rst = Nothing rstA.Close Set rstA = Nothing Exit Function ErrorHandler: Select Case err.Number Case 70 MsgBox str_FullPath & " is currently in used. Please close the file and try again." Case Else gbl_DSS_Framework.DisplayUnhandledErrorMsgBox err, "bas_Get_File", "Get_File", Erl End Select Resume Exit_ErrorHandler End Function ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2018, 13:52 |
|
OLE Excel как шаблон
|
|||
---|---|---|---|
#18+
Сорри, тэг не поставил сорскода. Ну, думаю, понятно будет. Там на поле второй рекрдсет открывать нужно ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2018, 13:54 |
|
|
start [/forum/topic.php?fid=45&msg=39605507&tid=1611671]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
84ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 198ms |
0 / 0 |