|
Блокировка таблицы ядром
|
|||
---|---|---|---|
#18+
Добрый день. После экспорта отчета (через DoCmd.OutputTo , "...", acFormatXLS, ...) и его закрытия невозможно переименовать таблицу-источник отчета. Даже если закрыть все формы - получаю ошибку "Таблица не может быть заблокирована ядром". На сколько я понимаю остается открытым соединение таблицы и отчета. Как его закрыть? Recordset.Close тут не сработает же ("Это свойство доступно только в файлах ADP"). ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2018, 13:27 |
|
Блокировка таблицы ядром
|
|||
---|---|---|---|
#18+
Если экспортирую вручную через "Внешние данные -> Экспорт в Excel" никаких проблем нет. А автоматический экспорт через Sub Export_Click() дает ошибку. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2018, 13:34 |
|
Блокировка таблицы ядром
|
|||
---|---|---|---|
#18+
rpeu, для таких вопросов есть стандартна попытка после экспорта сделать DoEvents А если не помжоет, смотреть в процессах - висит там эксель или нет(ибо висит?) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2018, 13:42 |
|
Блокировка таблицы ядром
|
|||
---|---|---|---|
#18+
Озверинrpeu, для таких вопросов есть стандартна попытка после экспорта сделать DoEvents А если не помжоет, смотреть в процессах - висит там эксель или нет(ибо висит?) OpenForms = 0 В диспетчере пусто (если я конечно его закрою). Ану попробую автозапуск отключить, может поможет. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2018, 13:52 |
|
Блокировка таблицы ядром
|
|||
---|---|---|---|
#18+
rpeuПосле экспорта отчета (через DoCmd.OutputTo , "...", acFormatXLS, ...) и его закрытия невозможно переименовать таблицу-источник отчета 1. Для какой цели нужно "переименовать таблицу"? 2. Если после экспорта отчета в Ёксель вы получаете приемлемый вид на листе, значит отчет простейший (без заголовков и примечаний). Вопрос - экспорт именно отчета, а не запроса, например? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2018, 14:08 |
|
Блокировка таблицы ядром
|
|||
---|---|---|---|
#18+
rpeu, А с методом TransferSpreadsheet это проявляется? (кстати считаю переименование таблиц очень плохо-зачем Вам это) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2018, 14:11 |
|
Блокировка таблицы ядром
|
|||
---|---|---|---|
#18+
sdkurpeu, А с методом TransferSpreadsheet это проявляется? (кстати считаю переименование таблиц очень плохо-зачем Вам это) суть разве не в том, что таблица в итоге остается заблокирована? Переименование - это уже побочный эффект ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2018, 14:17 |
|
Блокировка таблицы ядром
|
|||
---|---|---|---|
#18+
Кривцов АнатолийrpeuПосле экспорта отчета (через DoCmd.OutputTo , "...", acFormatXLS, ...) и его закрытия невозможно переименовать таблицу-источник отчета 1. Для какой цели нужно "переименовать таблицу"? 2. Если после экспорта отчета в Ёксель вы получаете приемлемый вид на листе, значит отчет простейший (без заголовков и примечаний). Вопрос - экспорт именно отчета, а не запроса, например? 1. Таблица для определенного года. Выбранный год - "Таблица", остальные "Таблица <<год>>". Соответственно после выбора года их переименовывает. 2. Экспорт отчета, в котором есть группировка и ряд вычисляемых полей. Вид не до конца приемлемый. Вычисляемые поля экспортирует некорректно. DoCmd.OutputTo acOutputReport, "Номинации", acFormatXLS, CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\Номинация на " & NominationsDate & ".xls", True, , , acExportQualityScreen [quot sdku]rpeurpeu, А с методом TransferSpreadsheet это проявляется? А какой параметр в TableName вписать? У меня отчет с группировкой и вычисляемыми полями без сохранения всего в отдельную таблицу. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2018, 14:22 |
|
Блокировка таблицы ядром
|
|||
---|---|---|---|
#18+
Если не получится докопаться до причины блокировки - сделаю через ж: DoCmd.RunSavedImportExport, так не блокирует. Но надеюсь получится как-то закрыть подключение :) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2018, 14:59 |
|
Блокировка таблицы ядром
|
|||
---|---|---|---|
#18+
rpeu, Не вкурю что же Вы делаете-пока понял так:создать в Aксе отчет (с отбором нужных данных, в нем прописывайте какой хотите заголовок,а не меняйте имя таблицы) и импортировать его в Ёксель-так или нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2018, 15:20 |
|
Блокировка таблицы ядром
|
|||
---|---|---|---|
#18+
sdkurpeu, Не вкурю что же Вы делаете-пока понял так:создать в Aксе отчет (с отбором нужных данных, в нем прописывайте какой хотите заголовок,а не меняйте имя таблицы) и импортировать его в Ёксель-так или нет? Да, все так. Потом закрываю отчет и пытаюсь переименовать таблицу через DoCmd.Rename - получаю ошибку, таблица уже используется. Мне проще в 12 строк переименовать мои таблицы чем усложнять код зависимостью от выбранного года: Рабочая таблица: Табл Архив: Табл 2019 Я делаю так: Табл -> Табл 2018, Табл 2019 -> Табл. Теперь у меня рабочий 2019 год. В отдельной функции переименование. Могу хоть 10 лет туда впихнуть не меняя расчетную часть. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2018, 15:55 |
|
Блокировка таблицы ядром
|
|||
---|---|---|---|
#18+
Такое впечатление, что отчет исчезает с экрана, но остается открытым. Что у вас в коллекции Reports после закрытия? rpeuDoCmd.OutputTo acOutputReport, "Номинации", acFormatXLS, CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\Номинация на " & NominationsDate & ".xls",... Странный винегрет. Попробуйте путь к файлу собрать заранее, а не внутри команды OutputTo. rpeuЭкспорт отчета, в котором есть группировка и ряд вычисляемых полей. Вид не до конца приемлемый Посмотрите здесь rpeuМне проще в 12 строк переименовать мои таблицы чем усложнять код зависимостью от выбранного года: Ну и напрасно. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2018, 16:34 |
|
Блокировка таблицы ядром
|
|||
---|---|---|---|
#18+
Кривцов АнатолийТакое впечатление, что отчет исчезает с экрана, но остается открытым. Что у вас в коллекции Reports после закрытия? Reports.Count = 0 Кривцов АнатолийСтранный винегрет. Попробуйте путь к файлу собрать заранее, а не внутри команды OutputTo. Не помогло ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2018, 17:41 |
|
Блокировка таблицы ядром
|
|||
---|---|---|---|
#18+
rpeusdkurpeu, Не вкурю что же Вы делаете-пока понял так:создать в Aксе отчет (с отбором нужных данных, в нем прописывайте какой хотите заголовок,а не меняйте имя таблицы) и импортировать его в Ёксель-так или нет?Да, все так.Ну так и сделайте: "создать в Aксе отчет (с отбором нужных данных, в нем прописывайте какой хотите заголовок,а не меняйте имя таблицы" и в конце процедуры VBA напишите Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2018, 20:16 |
|
Блокировка таблицы ядром
|
|||
---|---|---|---|
#18+
sdkurpeuпропущено... Да, все так.Ну так и сделайте: "создать в Aксе отчет (с отбором нужных данных, в нем прописывайте какой хотите заголовок,а не меняйте имя таблицы" и в конце процедуры VBA напишите Код: vbnet 1.
Я так и делаю. Таблица остается в использовании После(!) закрытия отчета, если в отчете использовался DoCmd.OutputTo! После ручного экспорта и закрытия отчета проблем с переименовыванием таблицы нет. Баг Access? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2018, 10:48 |
|
Блокировка таблицы ядром
|
|||
---|---|---|---|
#18+
rpeu, так Вы пробовали TransferSpreadsheet или нет-не понял.(насчет аргументов-читайте HELP) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2018, 13:06 |
|
Блокировка таблицы ядром
|
|||
---|---|---|---|
#18+
Вдогонку:rpeu.....После экспорта отчета (через DoCmd.OutputTo , "...", acFormatXLS, ...) когда Вы выполняете экспорт вручную(говорите что все работает) используется метод TransferSpreadsheet, а OutputTo это не совсем экспорт ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2018, 13:21 |
|
Блокировка таблицы ядром
|
|||
---|---|---|---|
#18+
Тьфу,еще не всеКривцов Анатолий...А какой параметр в TableName вписать? У меня отчет с группировкой и вычисляемыми полями без сохранения всего в отдельную таблицу.Сохранять отчет в таблицу-полный нонсес. Читать HELP религия не позволяет. имяТаблицы - Строковое выражение, представляющее имя таблицы Microsoft Access, в которую импортируются или связываются данные или из которой данные экспортируются. Допускается также указание имени запроса на выборку Microsoft Access, результаты которого экспортируются в электронную таблицу. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2018, 13:34 |
|
Блокировка таблицы ядром
|
|||
---|---|---|---|
#18+
sdkuВдогонку:rpeu.....После экспорта отчета (через DoCmd.OutputTo , "...", acFormatXLS, ...) когда Вы выполняете экспорт вручную(говорите что все работает) используется метод TransferSpreadsheet, а OutputTo это не совсем экспорт С экспортом через TransferSpreadsheet проблема не проявляется, но не подходит результат. При ручном экспорте используется OutputTo. Попробуйте сами оба варианта и сравните. Буду пытаться выяснить какой процесс блокирует таблицу. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2018, 17:38 |
|
Блокировка таблицы ядром
|
|||
---|---|---|---|
#18+
rpeu, А зачем вообще так усложнять 1. Создайте где нибудь заготовку в xls с правильно отформатированными полями. в красках и с картинками, как душе угодно. 2. Копируйте эту заготовку в нужную вам папку с нужным названием. 3. Сливайте в файл инфу с РекордСета. Запрос составить сможете. Примерно так. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
У меня все клиенты в восторге. Работает быстро, просто летает, если конечно запрос не перегружен. Можно усложнитъ и забивать каждое поле по отдельности, или из несколких запросов в разные разделы заносить. Я таким макаром даже графики рисовал. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2018, 10:25 |
|
|
start [/forum/topic.php?fid=45&msg=39725802&tid=1611049]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
63ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 303ms |
total: | 458ms |
0 / 0 |