Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/35: Рейтинг темы: голосов - 35, средняя оценка - 4.54
11 / 11 / 0
Регистрация: 23.03.2011
Сообщений: 199
1

Экспорт в Excel выбором папки для сохранения

30.03.2014, 18:37. Показов 6387. Ответов 32
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Драсти!
Тысячу лет не притрагивался к VBA и БД вообще, все забыл, но появилась необходимость создать одну БД. Очень важно...
Помогите, пожалуйста, со следующим:
нужно экспортировать конкретную таблицу из Access в Excel, но необходимо самому указать, в какую папку совершить экспорт. Если воспользоваться макросом ЭкспортСФорматированием, то он по умолчанию сохраняет в Мои документы, но мне нужно самому указать куда сохранить.
Преобразованный макрос выглядит следующим образом:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Function экспорт_шаблона()
On Error GoTo экспорт_шаблона_Err
 
    DoCmd.OutputTo acOutputTable, "Реестр_шаблон", "ExcelWorkbook(*.xlsx)", "Реестр.xlsx", True, "", , acExportQualityScreen
 
 
экспорт_шаблона_Exit:
    Exit Function
 
экспорт_шаблона_Err:
    MsgBox Error$
    Resume экспорт_шаблона_Exit
 
End Function
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.03.2014, 18:37
Ответы с готовыми решениями:

Задание папки для сохранения файла в Excel VBA
здравствуйте форумчане! нужно решить следующую задачу: в VBA EXEL как задать программно папку для...

Автоматический Экспорт из excel в txt всех файлов из папки
Здравствуйте, у меня есть готовый макрос, который определенным образом обрабатывает открытую книгу...

Указание папки для сохранения файлов
Помогите создать программку которая бы назначала папки куда будут сохраняться файлы из...

Изменение стандартной папки для сохранения всех файлов (Ubuntu)
ОС: Linux Ubuntu ПО: Free Pascal Вопрос: FP изначально своей рабочей папкой считает...

32
Эксперт MS Access
2833 / 1375 / 215
Регистрация: 13.05.2011
Сообщений: 4,217
30.03.2014, 18:46 2
emlonlife, так на панели инструментов есть кнопка экспорта в эксель. вылетает мастер экспорта, а в нем есть и место куда сохранить.
0
11 / 11 / 0
Регистрация: 23.03.2011
Сообщений: 199
30.03.2014, 18:47  [ТС] 3
Вячеслав Я, ага, мне нужно через кнопку на форме.
0
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
31.03.2014, 11:05 4
emlonlife, Диалог выбора папки
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
  Dim dlgOpenFile As Object ' FileDialog
  Set dlgOpenFile = Application.FileDialog(4)
  With dlgOpenFile
    .Filters.Clear
    .InitialFileName = CurrentProject.Path
    .AllowMultiSelect = False
    .Title = "Выберите папку"
    If (.Show = -1) And (.SelectedItems.Count > 0) Then
        MyPath$ = .SelectedItems(1)
    End If
  End With
  Set dlgOpenFile = Nothing
1
11 / 11 / 0
Регистрация: 23.03.2011
Сообщений: 199
31.03.2014, 11:41  [ТС] 5
Rube, спасибо!
есть один минус - по умолчанию он выбирает папку, где находится БД и в поле "Имя папки" пишет текущее имя папки. И если в этот момент нажать на "Да", то он сообщит что данного пути не существует. Т.е. приходится либо удалять имя папки в поле "Имя папки" или выбирать другое место. Очень не удобно (если я хочу сохранить как раз в папку, где находится сама БД). Можно ли как-то исправить?
0
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
31.03.2014, 12:32 6
Исправьте .InitialFileName = CurrentProject.Path & "\", а то без слеша у меня почему то Мои документы по умолчанию выводил.
А поле "Имя папки" у меня пусто, видимо вы у себя что то изменили.
1
11 / 11 / 0
Регистрация: 23.03.2011
Сообщений: 199
31.03.2014, 12:49  [ТС] 7
После добавления & "\" имя папки тоже "опустело" Спасибо!
Чтобы не плодить топики, продолжу расспрашивать здесь..)
Подскажите, возможно ли как-то экспортировать в эксель с условным форматированием? Или может лучше создать макрос для эксель и хранить в книге макросов?

Условие следующее (Начиная с 2ой строки excel, в первой шапка таблицы):
1. если значение в ячейке $Pn<0, то заливаем ВСЮ строку красным цветом;
2. если значение в ячейке $Pn=0 или $Pn=$Mn, то заливаем ВСЮ строку зеленым цветом;
3. если значение в ячейке $Pn>0 и $Pn<>$Mn, то заливаем ВСЮ строку серым цветом.

Если вручную делать условное форматирование, то получаются следующие формулы:
1. =$P1<0
2. =ИЛИ(($P1=0);($P1=$M1))
3. =И(($P1>0);($P1<>$M1))

Как сделать макрос не знаю. При записи макроса - форматирование не сохраняется
0
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
31.03.2014, 13:38 8
Не советую делать условное форматирование, при большом кол-ве записей будут тормоза.
Лучше делать это из под VBA
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
    Dim wb As Workbook
    Set wb = Workbooks.Open(CurrentProject.path & "\Книга1.xls")
    wb.Application.Visible = True
    Set rng = Range("A1:B5")
    With rng
        .Interior.ColorIndex = 41 ' заливка цветом
        .Font.Bold = True ' шрифт жирный
        .Font.ColorIndex = 2 ' шрифт цвет
        .Font.Size = Range("A1").Font.Size + 1 ' увеличить шрифт на 1 ед. как в ячейке A1
    End With
    wb.Close False ' закрыть книгу не сохраняя
1
11 / 11 / 0
Регистрация: 23.03.2011
Сообщений: 199
31.03.2014, 13:45  [ТС] 9
Rube, а разве методом перебора ячеек не дольше будет?
Это же цикл? Таблица будет большой (не меньше 1000 строк и десятки столбцов).
0
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
31.03.2014, 15:09 10
Цитата Сообщение от emlonlife Посмотреть сообщение
Таблица будет большой (не меньше 1000 строк и десятки столбцов).
Пф, для VBA это семачки. А вот форматирование условное точно увеличит вес файла в разы.
Цикл конечно, а что делать. А зачем всю строку заливать (опять вес файла!)? Можно только данные.
0
11 / 11 / 0
Регистрация: 23.03.2011
Сообщений: 199
31.03.2014, 15:16  [ТС] 11
Rube, не, нужно именно строку. для наглядности.
оке, пока отложим... придется, видимо, с циклом.

Появился вопрос более важный. Есть куча накладных в Excel. Очень много. Их нужно импортировать в 1 таблицу Access (посредством диалога - выбрать нужные файлы и произвести импорт. имя файла (оно же номер накладной) записать в одну из столбцов). По прошлым наработкам (нарыл тут же на форуме, добрые люди помогали) VBA в Access вот это очень помогло бы, НО. Не могу разобраться, как именно там проверка идет на то подходит ли книга или нет для импорта. В данном случае мне нужно все столбцы импортировать. Вот не могу разобраться теперь как
0
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
31.03.2014, 15:33 12
Цитата Сообщение от emlonlife Посмотреть сообщение
как именно там проверка идет на то подходит ли книга или нет для импорта.
Проверка заголовков обычная.
1
11 / 11 / 0
Регистрация: 23.03.2011
Сообщений: 199
31.03.2014, 16:10  [ТС] 13
Цитата Сообщение от Rube Посмотреть сообщение
Проверка заголовков обычная.
ага, точно. А как брать не 1 столбец, а все?

Добавлено через 10 минут
зы. накладные ТОРГ-12. Может есть уже готовое решение...?
0
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
31.03.2014, 16:17 14
Цитата Сообщение от emlonlife Посмотреть сообщение
А как брать не 1 столбец, а все?
Циклом, кол-во столбцов же известно.
Затем проверка всех ячеек на IsEmpty, IsDate, IsNumeric и т.д. и только потом заливка в БД.
1
11 / 11 / 0
Регистрация: 23.03.2011
Сообщений: 199
31.03.2014, 17:11  [ТС] 15
Rube, можно небольшой пример?

Добавлено через 50 минут
возможен ли вообще импорт товарной накладной ТОРГ-12 или я занимаюсь ерундой?
0
Эксперт MS Access
17486 / 7248 / 1651
Регистрация: 21.06.2012
Сообщений: 13,863
31.03.2014, 17:26 16
Цитата Сообщение от emlonlife Посмотреть сообщение
озможен ли вообще импорт товарной накладной ТОРГ-12 или я занимаюсь ерундой?
Можно, только зачем? Чтобы напечатать - так для этого есть отчеты. Чтобы послать по почте - для этого в старых версиях были снимки отчетов, сейчас, насколько я помню, экспорт в PDF файл.
1
11 / 11 / 0
Регистрация: 23.03.2011
Сообщений: 199
31.03.2014, 17:32  [ТС] 17
ltv_1953, очень нужно
описывать долго, если коротко - для сверки данных. т.е. нужно кол-во позиций из накладных сверить с кол-вом позиций в других документах. из-за невозможности этого сделать несем убытки

Добавлено через 1 минуту
сами накладные в электронном виде присылаются нам партнером (выгружают из 1с). вот и нужно эти данные сравнить с другими.
0
Эксперт MS Access
17486 / 7248 / 1651
Регистрация: 21.06.2012
Сообщений: 13,863
31.03.2014, 18:06 18
Если Т12 имеют фиксированную структуру (шапка - столько строк, затем товарная часть, признак окончания товарной части?), то посмотрите здесь Импорт данных из Excel в Access и здесь (выбор таблицы)Импорт из экселя, обработка данных, экспорт в эксель с открытием файловых диалогов или выложите образец такой Т12.

Добавлено через 15 минут
Была похожая проблема - у филиалов в одной организации не было удаленного доступа к серверу (телефонная линия - "воздушка"). Они присылали месячные отчеты по продажам в фиксированном формате (эксель), выгружая их из 1С. С такими отчетами будет проще работать, чем с отдельными Т12.
1
11 / 11 / 0
Регистрация: 23.03.2011
Сообщений: 199
31.03.2014, 18:08  [ТС] 19
ltv_1953, пример прикрепляюПоступление М-000026025 от 02.03.2014.xls
0
11 / 11 / 0
Регистрация: 23.03.2011
Сообщений: 199
31.03.2014, 19:03  [ТС] 20
Цитата Сообщение от ltv_1953 Посмотреть сообщение
С такими отчетами будет проще работать, чем с отдельными Т12
к сожалению, такой возможности нет.
0
31.03.2014, 19:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.03.2014, 19:03
Помогаю со студенческими работами здесь

Передача параметров командной строке с выбором места сохранения
Добрый вечер/день/ночь, жителям форума. Сталкнулся с такой проблемой. Есть форма...

Как скачать картинку себе на диск с выбором места сохранения?
Как сделать действие, обратно-противоположное действию &lt;input type=file&gt; ? Т.е. нужно выбрать...

Ошибки сохранения форматирования из Excel 2007 v Excel 2003
Как востановить форматы ячеек при сохранении в Excel 2007 на формат Excel 2003, Проблема следующая:...

Экспорт данных из Memo в txt файл через диалог сохранения
Здравствуйте, как сделать, чтоб при нажатии кнопки можно было выбрать файл, в который бы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru