|
45 Кб. |
|
| Разбираю пример Передача информации из Access в Excel и столкнулся с проблемой вывода даты в Excel .Вместо даты набор цифр. Подскажите как это победить. | |
|
| |
|
|
|
| Пример в работе посмотреть не могу
но в общем принцип примерно такой
при выгрузке вы выводите в ячейку которая имеет формат либо числовой либо общий
соответственно надо установить свойство ячейки правильно в формат дата/время
для этого в екселе надо записать макрос с действием изменения формата и посмотреть как это делает сам ексель (в редакторе vba) и перенести это в акс | |
|
| |
|
|
|
| Дело в том что каждый раз создается новый лист.
Похоже надо делать так Range("h:h").NumberFormat = "dd.mm.yyyy" | |
|
| |
|
|
|
|
| да оба работают.теперь как отменить сообщение и чтобы по умолчанию заменила и сохранила файл. | |
|
| |
|
|
|
|
Application.DisplayAlerts = False 'Excel
'Сохранение рабочей книги
Application.DisplayAlerts = True
|
| |
|
| |
|
|
|
| пробовал этот вариант тоже ругается на DisplayAlerts. в примере есть строка DoCmd.SetWarnings False '-но она почему то не работает | |
|
| |
|
|
|
| Дык, я же намекал на то, что Application это Excel, а как Вы получаете доступ к этому об'екту мне неизвестно (ибо Access отсутствует)
P.S. Если вышлите мне на почту только модуль, то напишу как адаптировать сие свойство под Ваш пример, кстати, от ненужного сообщения можно избавиться, если просто не допускать его появления, т.е. проверять наличие файла, и если файл существует, то удалять его (и только затем сохранять книгу) | |
|
| |
|
14 Кб. |
|
| В этом же примере сделал кнопку вывода данных в word но появляется ошибка.Что это за ошибка и как с ней бороться?
Dim app As Word.Application 'Приложение программы
'Dim obj As Object
Dim strDOC As String ' Имя документа
Dim strDOT As String ' Имя шаблона
Dim ctl As Control ' Управляющие элементы в форме
Dim s As String ' Вспомогательная строка
On Error GoTo 999
' Определяем имена шаблона и документа Word
With Application.CurrentProject
strDOT = .Path & "word.dot"
strDOC = .Path & "word.doc"
End With
' Управление документом Word
Set app = New Word.Application 'Новое приложение Word
app.Visible = True 'Отображаем документ
app.Documents.Add strDOT 'Добавляем шаблон
With app.ActiveDocument 'Выбираем активный документ
'Set obj = New Word.Application 'Новое приложение Word
'obj.Visible = True 'Отображаем документ
'obj.Documents.Add strDOT 'Добавляем шаблон
'With obj.ActiveDocument 'Выбираем активный документ
On Error Resume Next ' Отключаем ошибки
' Просматриваем все элементы формы, если
' такой закладки нет, то очищаем поток от ошибки
For Each ctl In Me.Controls
If ctl.ControlType = acTextBox Then
s = ctl.Name ' Определяем название элемента
.Bookmarks.Item(s).Range.Text = Me(s) 'Устанавливаем текст
Err.Clear ' Очищаем поток от ошибки при отсутствии элемента
End If
Next ctl
.SaveAs strDOC ' Сохраняем файл
On Error GoTo 999 ' Включаем обработку ошибки
End With
' app.Quit 'Закрываем приложение
Exit Sub
app.Quit
'obj.Quit
999:
MsgBox Err.Description 'Ошибка
Err.Clear | |
|
| |
|
|
|
| тут должна ошибка появиться
strDOT = .Path & "word.dot"
strDOC = .Path & "word.doc"
вот так вроде должно быть
strDOT = .Path & "\word.dot"
strDOC = .Path & "\word.doc" | |
|
| |
|
|
|
| Да я забыл ,ошибка появляется в access 2007 в 2003 нормально работает | |
|
| |
|
|
|
| а библиотека подключена (правильная) | |
|
| |
|
|
|
| word12 стала автоматом вместо word11.Преобразовал в 2007 таже ошибка. | |
|
| |
|
14 Кб. |
|
| Дык как эту ошибку побороть .Подскажите пожалуйста | |
|
| |
|
|
|
| Можно воспользоваться поздним связыванием ... и нафиг все референсы, точнее сказать, только Word
Dim objWord As Object
Dim ctlForm As Control
Dim strPath$, strTemp$
strPath = Application.CurrentProject.Path
If Len(Dir(strPath & "\word.dot")) = 0 Then
MsgBox "Шаблон word.dot изволит отсутствовать", , strPath
Exit Sub
End If
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
objWord.DisplayAlerts = 0 'wdAlertsNone
With objWord.Documents.Add(strPath & "\word.dot")
For Each ctlForm In Me.Controls
If ctlForm.ControlType = acTextBox Then
strTemp = ctlForm.Name
If .Bookmarks.Exists(strTemp) = True Then
.Bookmarks(strTemp).Range.Text = ctlForm.Text 'Me(strTemp)
End If
End If
Next
.SaveAs strPath & "\word.doc" '.Close -1 'wdSaveChanges
End With
'objWord.DisplayAlerts = -1 'wdAlertsAll
objWord.Quit -1 'wdSaveChanges
|
| |
|
| |
|
27 Кб. |
|
| Не хотит работать.База виснит Word в памяти висит. | |
|
| |
|
|
|
| скорее всего
----------у вас в памяти уже 1 экземпляр ворда висит
проверьте
ctrl+alt+del
список процессов
| |
|
| |
|
|
|
| сначала уберите все ссылки на библиотеку Word и только затем тестируйте | |
|
| |
|
|
|
|
'как минимум
objWord.Quit -1 'wdSaveChanges
Set objWord = Nothing
End Sub
|
| |
|
| |
|
|
|
| Set objWord = Nothing
это просто перестраховка | |
|
| |
|
|
|
| поставил ознакомительную версию 2010 все прекрасно работает.Попробую обновление поставить на 2007 результат сообщу. | |
|
| |
|