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

Импорт из экселя, обработка данных, экспорт в эксель с открытием файловых диалогов

22.02.2012, 13:21. Показов 10523. Ответов 31
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В моей таблице есть столбец "Наименование, характеристики". В этом столбце указан тип оборудование и его описание, например: "Монитор DELL со звуковой панелью". Я хочу создать Запрос для вывода всех наименований из этого столбца, содержащих слово DELL. Я создала Макрос с Макрокомандой НайтиЗапись, Образец поиска DELL, совпадение С любой частью поля. Как мне теперь правильно создать Запрос в MS Access 2003?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.02.2012, 13:21
Ответы с готовыми решениями:

Импорт данных з экселя в аксесс
в пред. версии Аксес был макрос - загрузить даные из єкселя в аксес, в новой версии 2010 не вижу,...

Экспорт и импорт из экселя в DbGrid
Ребят подкиньте исходничек наипростейший с 2 кнопками и гридом чтоб из экселя в таблицу вводить...

Многоячеечный импорт/экспорт в эксель
Доброго времени суток! Подскажите, пожалуйса, возможно ли создать из многоуровнего php массива...

Экспорт данных из Экселя
Здравствуйте! Посоветуйте, пожалуйста, как из эксел-файла считать данные в Матлаб? Необходимо,...

31
0 / 0 / 0
Регистрация: 22.02.2012
Сообщений: 13
28.02.2012, 13:55  [ТС] 21
Author24 — интернет-сервис помощи студентам
Как сделать переменную TableName глобальной?

Есть две кнопки: Импорт и Обработка. В обработчике Импорта данные из экселя сохраняюся с использованием переменной TableName (создаётся таблица с именем по умолчанию NewTable с импортированными из экселя данными). При обработке данных с помощью кнопки Обработка Access ругается если использовать переменную TableName и нормально работает если в SQL-запросе использовать только имя таблицы NewTable. Это неудобно, т.к. есть вероятность, что при импорте таблице будет задано другое имя (не NewTable).

Добавлено через 6 минут
Да, и можно ли всё-таки сделать чтобы при выполнении
Visual Basic
1
ParamNew = InputBox("Введите название столбца: Наименование | Количество| Цена | Стоимость", "Параметр", " ")
(или чего-то подобного) вместо пустого поля для заполнения вручную появлялся список, состоящий из заголовков импортированной таблицы NewTable?

Добавлено через 8 минут
Можно ли сделать так, чтобы при нажатии Кнопки появлялся список имён таблиц для обработки (чтобы имя выбранной таблицы записать в переменную TableName)? Может, тогда и не надо делать TableName глобальной? Просто использовать это имя переменной для удобства, а по сути это будут разные переменные в разных обработчиках.
0
2092 / 1168 / 39
Регистрация: 05.11.2009
Сообщений: 1,605
28.02.2012, 17:09 22
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от Nika5 Посмотреть сообщение
Можно ли сделать так, чтобы при нажатии Кнопки появлялся список имён таблиц
Visual Basic
1
ПолеСоСписком0.RowSource = "SELECT Name FROM MSysObjects WHERE MSysObjects.Type = 1 AND MSysObjects.Flags = 0"
Цитата Сообщение от Nika5 Посмотреть сообщение
список, состоящий из заголовков импортированной таблицы NewTable?
Уже ответила, и даже пример приложила, в чем проблема?
3
0 / 0 / 0
Регистрация: 22.02.2012
Сообщений: 13
28.02.2012, 17:49  [ТС] 23
Пример очень хороший. Но я немного другое имела ввиду. В Вашем примере список располагается на форме, а можно ли сделать, чтобы он был "всплывающим"? Так же как и когда "всплывает" диалог с пустым полем для введения параметра, но только вместо пустого поля чтобы был тот список.
0
2092 / 1168 / 39
Регистрация: 05.11.2009
Сообщений: 1,605
28.02.2012, 17:55 24
"Всплывающим" может быть MsgBox либо InputBox, для более сложных запросов, например, выбора значения со списка, надо создавать форму и включать в нее все, что нужно. Форму можно сделать похожей на форму-запрос с помощью различных свойств. Для 2007 аксесса, например, задайте Всплывающее окно = Да, также можно убрать кнопки перехода, разеделительные линии, области перехода, кнопку закрытия, задать подпись и т.д.
Запустить такую форму можно командой
Visual Basic
1
DoCmd.OpenForm "Название формы"
Пример в приложении
Вложения
Тип файла: rar Пример формы-запроса.rar (14.2 Кб, 46 просмотров)
2
Эксперт MS Access
7398 / 4535 / 295
Регистрация: 12.08.2011
Сообщений: 14,023
29.02.2012, 02:18 25

Не по теме:

я сегодня по ходу пришёл на форум для того, чтобы Амели спасибки понаставить

0
Ameli
29.02.2012, 08:16
  #26

Не по теме:

ну а че, дело нужное!))

1
0 / 0 / 0
Регистрация: 22.02.2012
Сообщений: 13
01.03.2012, 12:26  [ТС] 27
Как записать выбранное в ПолеСоСписком значение в переменную TableName и чтобы эта переменная была видна в обработчике Кнопка2?

Visual Basic
1
2
3
4
5
6
7
8
Option Compare Database
 
Private Sub Form_Load()
ПолеСоСписком0.RowSource = "SELECT Name FROM MSysObjects WHERE MSysObjects.Type = 1 AND MSysObjects.Flags = 0"
 
TableName = ПолеСоСписком0.RowSource ‘запись в переменную TableName  выбранного в ПолеСоСписком0.RowSource значения  
 
End Sub
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Private Sub Кнопка2_Click()
 
 
ParamNew = InputBox("Введите название столбца: Наименование | Количество | Цена | Стоимость", "Параметр", "  ")
 
 
Param = InputBox("Введите параметр", "Параметр", "  ")
 
 
DoCmd.RunSQL "SELECT  * INTO Temp FROM  " & TableName & "  WHERE " & ParamNew & " Like '*" & Param & "*'"
‘ ругается на FROM, похоже не видит переменную TableName
 
End Sub
0
2092 / 1168 / 39
Регистрация: 05.11.2009
Сообщений: 1,605
01.03.2012, 12:47 28
Запускается форма для выбор таблицы, обработка загрузки:
Visual Basic
1
2
3
Private Sub Form_Load()
ПолеСоСписком0.RowSource = "SELECT Name FROM MSysObjects WHERE MSysObjects.Type = 1 AND MSysObjects.Flags = 0"
End Sub
- загоняем в источник строк поля со списком названия таблиц.
На форме должна быть кнопка ОК, на ее нажатие:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub КнопкаОК_Click()
'Если не выбрано название таблицы выдать сообщение
If IsNull(ПолеСоСписком0) Then 
MsgBox "Не выбрано название таблицы!"
'В противном случае записать выбранное значение на главную форму, с кот. запускаем импорт/экспорт
'Предварительно надо создать на ней поле, например, "TableName" (скрытое)
Else: Forms![Название формы]![TableName] = Me![ПолеСоСписком0]
'Дальше надо запустить еще одну форму/запрос с выбором поля выбранной таблицы из списка
DoCmd.OpenForm "Название формы-запроса2"
DoCmd.Close acform,"Назание формы-запроса"
End If
End Sub
В форме-запросе2 будет код, аналогичный этому, на обработку кнопки ОК, после выбора поля, записываем его также в заранее созданное поле на главной форме FieldName, т.о. на главной форме будут сохранены и название таблицы, и название поля, а дальше используй их, где нужно.
Попробуй, если что, выкладывай, что получилось
1
0 / 0 / 0
Регистрация: 22.02.2012
Сообщений: 13
01.03.2012, 15:23  [ТС] 29
Что-то у меня не работает: не может найти ни одну форму, и я не знаю как создать скрытое поле
Вложения
Тип файла: rar 7_Импорт-Экспорт.rar (102.9 Кб, 24 просмотров)
0
2092 / 1168 / 39
Регистрация: 05.11.2009
Сообщений: 1,605
01.03.2012, 16:48 30
Лучший ответ Сообщение было отмечено как решение

Решение

1) С импортом все нормально - данные из файла эксель импортируются в таблицу с введенным именем. Кстати, если обрабатывать затем надо эту же таблицу, то нет смысла делать отдельную кнопку Обработка и выбирать таблицу из списка. Пока сделала раздельно, двумя кнопками.
2) Кнопка Обработка:
Visual Basic
1
2
3
4
'Очищаем поле с названием таблицы
Me![TableName] = Null
'Открываем форму-запрос таблицы
DoCmd.OpenForm "Выбор названия таблицы"
3) Кнопка ОК на форме "Выбор названия таблицы":
Visual Basic
1
2
3
4
5
6
7
8
9
10
'Если не выбрано название таблицы выдать сообщение
If IsNull(ПолеСоСписком0) Then
MsgBox "Не выбрано название таблицы!"
'В противном случае записать выбранное значение на главную форму
Else: Forms![Главная форма]![TableName] = Me![ПолеСоСписком0]
'Ошибка была потому что на главной форме это должно быть просто поле
'Запускаем вторую форму-запрос
DoCmd.OpenForm "Выбор названия поля"
DoCmd.Close acForm, "Выбор названия таблицы"
End If
4) На загрузку формы "Выбор названия поля":
Visual Basic
1
2
3
Private Sub Form_Load()
ПолеСоСписком5.RowSource = Forms![Главная форма]![TableName]
End Sub
Для этого поля со списком5 Тип источника строк - Список полей!
Т.о. получаем в списке поля выбранной таблицы
5) Кнопка ОК формы Выбор названия поля
Visual Basic
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
'Если не выбрано название поля выдать сообщение
If IsNull(ПолеСоСписком5) Then
MsgBox "Не выбрано название поля!"
Else
'Запрос параметра
Param = InputBox("Введите параметр", "Параметр", "dell")
'Создаем таблицу Temp и добавляем в нее записи выбранной таблицы с условием отбора: выбранное поле содержит введенный параметр
DoCmd.RunSQL "SELECT  * INTO Temp FROM  " & Forms![Главная форма]!TableName & "  WHERE " & Me![ПолеСоСписком5] & " Like '*" & Param & "*'"
 
'Файловый диалог для выбора пути и имени файла для сохранения таблицы Temp
Dim FName2 As String
With Application.FileDialog(msoFileDialogSaveAs)
.Title = "Укажите путь и имя файла для сохранения"
.AllowMultiSelect = False
.InitialFileName = "Результат" 'Название файла по умолчанию
result = .Show
FName2 = .SelectedItems(1)
End With
 
'Экспортируем таблицу Temp в эксель с выбранным названием и заданным путем сохранения
DoCmd.TransferSpreadsheet acExport, , "Temp", FName2 & ".xls", True
 
'Удалим временную таблицу
DoCmd.DeleteObject acTable, "Temp"
'Закроем текущую форму
DoCmd.Close acForm, "Выбор названия поля"
End If
Чтобы скрыть поле, в свойствах Вывод на экран = Нет
Вложения
Тип файла: rar 7_Импорт-Экспорт.rar (28.9 Кб, 63 просмотров)
3
Эксперт MS Access
7398 / 4535 / 295
Регистрация: 12.08.2011
Сообщений: 14,023
02.03.2012, 03:38 31
Ameli, По-моему черезчур жирно уже, за это деньги брать надо! ТС вообще палец о палец не ударила и не прочла даже справки по тем функциям, что ей предоставили. Гольная халява.
0
Ameli
02.03.2012, 08:47     Импорт из экселя, обработка данных, экспорт в эксель с открытием файловых диалогов
  #32

Не по теме:

alvk, я согласна, я слишком добрая

3
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.03.2012, 08:47

Экспорт данных из экселя в блокнот
Добрый день форумчане. Такой вопрос, а есть ли какая-нибудь функция или функционал, который...

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

Создать команду меню с открытием диалогов окна ?
При выборе команды Input открывается диалоговое окно, содержащее: • два поля ввода типа TextBox с...

обработка файловых структур данных
1. Создать файл, содержащий сведения о том, какие из пя-ти предлагаемых дисциплин по выбору желает...


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

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