Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / По нажатию кнопки на форме выполнить запрос и выгрузить результат в Excel / 10 сообщений из 10, страница 1 из 1
24.11.2015, 17:20
    #39112464
Crey-hen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По нажатию кнопки на форме выполнить запрос и выгрузить результат в Excel
Добрый день!
С Access никогда не работала. Задумала автоматизировать часть своей работы с его помощью, но так закопалась, что и работать стало некогда. Буду благодарна за помощь.
Пишу подробно, потому что не пойму, на что внимание обратить.
Сейчас пока всего 3 таблица про экспорт и импорт страны. Таблицы:
country (с названиями стран и идентификатором),
code (там кода ТН ВЭД - десятизначное число, но поле текстовое, потому что код может начинаться с "0" и это важно, т.е. 0210 и 210 - разные товары; ещё в таблице название кода и идентификатор),
2009 (поля с экспортом и импортом, идентификатором страны и кодом ТН ВЭД).

Есть запрос (пока только про импорт):
SELECT country.country_name, [2009].im_t, [2009].im_unit, [2009].im_doll, code.code
FROM country INNER JOIN (code INNER JOIN 2009 ON code.code=[2009].code) ON country.Код=[2009].country_code
WHERE (code.code=forms!FZapros.ved and country.country_name=forms!FZapros.Spcon);

Хотелось бы, что выбрав в форме FZapros страну из списка (Spcon) и введя код ТН ВЭД (а чаще только часть его) в поле (ved), выполнялся этот запрос, а результат выгружался в Excel.

Есть 3 вопроса:
1) Со списком все хорошо, а вот в поле чаще всего мне нужно не подробное десятизначное значение, а покрупнее. Т.е. надо, чтобы я ввела "0210", а мне выдавалось "0210000201", "0210000203", "0210000209" и т.д.
2) Никак не пойму, как подвязать выполнение запроса к кнопке на форме. Сейчас запрос выполняется, если выбрать-ввести значения на форме, но неудобно же) нужно идти запрос, просматривать его в режиме таблицы.
3) Можно как-то результат запроса сразу выгружать в файл Excel? Пусть каждый раз это будет новый файл, удалю его потом и всё.

Спасибо!
...
Рейтинг: 0 / 0
24.11.2015, 18:01
    #39112514
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По нажатию кнопки на форме выполнить запрос и выгрузить результат в Excel
Crey-hen,
Like,TransferSpreadsheet и CurrentDb.QueryDefs("ИмяЗапроса").SQL = "strSQL"
...
Рейтинг: 0 / 0
27.11.2015, 00:56
    #39114521
Crey-hen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По нажатию кнопки на форме выполнить запрос и выгрузить результат в Excel
sdku, спасибо за ответ.
с Like с синтаксисом разобралась. и сейчас ищется по части кода ТН ВЭД.
а с выгрузкой никак не выходит.
пишу в процедуре на нажатие кнопки:
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "Сводный запрос", "C:\Test.xls"
не работает.
а про CurrentDb.QueryDefs совсем ничего не могу понять. в английском хелпе разобраться не могу. можно, хоть пару слов для чего это "CurrentDb.QueryDefs("ИмяЗапроса").SQL = "strSQL""
...
Рейтинг: 0 / 0
27.11.2015, 11:48
    #39114752
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По нажатию кнопки на форме выполнить запрос и выгрузить результат в Excel
Crey-hen,
...
Рейтинг: 0 / 0
30.11.2015, 02:07
    #39115939
Crey-hen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По нажатию кнопки на форме выполнить запрос и выгрузить результат в Excel
sdku,
спасибо огромное! заработало) где тут ставить плюсы в карму?
при чем работает даже без этой страшной строчки с CurrentDb.QueryDefs. я так и не поняла, зачем в VB переписывать уже готовый запрос.
а можно сделать так, чтобы этот экселевский файл, в который результат запроса сохраняется, у меня сразу открывался?
...
Рейтинг: 0 / 0
30.11.2015, 10:21
    #39116080
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По нажатию кнопки на форме выполнить запрос и выгрузить результат в Excel
Crey-hen,
это в общий модуль
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Option Compare Database
Option Explicit

Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
                (ByVal Hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
                ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Const SW_SHOWMAXIMIZED = 3
Public Const SW_SHOWDEFAULT = 10
Public Const SW_SHOWNOACTIVATE = 4
Public Const SW_SHOWNORMAL = 1

Function StartOfFile(strNameFile As String)
Dim intResult As Integer
intResult = ShellExecute(Application.hWndAccessApp, "open", strNameFile, 0, 0, SW_SHOWNORMAL)
If intResult = 31 Then
    MsgBox "Незарегестрированный тип файла"
End If
End Function


Существующую процедуру дополнить строкой:
Код: vbnet
1.
StartOfFile ("d:\zapros.xlsx") ' путь тот же, что и в TransferSpreadsheet


А Вы не хотите создать отчет и уже потом делать с ним что пожелаете
...
Рейтинг: 0 / 0
30.11.2015, 10:27
    #39116086
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По нажатию кнопки на форме выполнить запрос и выгрузить результат в Excel
Вдогонку:Crey-hen... я так и не поняла, зачем в VB переписывать уже готовый запрос.
А что, за все время существования БД Вы параметр менять не будете?
...
Рейтинг: 0 / 0
30.11.2015, 11:55
    #39116180
По нажатию кнопки на форме выполнить запрос и выгрузить результат в Excel
Crey-henа можно сделать так, чтобы этот экселевский файл, в который результат запроса сохраняется, у меня сразу открывался? Зная путь к файлу, его можно открыть методом FollowHiperlink объекта Application.
Еще файл Excel можно создать методом DoCmd.OutputTo. Он умеет и сразу открывать созданный файл.
...
Рейтинг: 0 / 0
01.12.2015, 16:57
    #39117582
Crey-hen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По нажатию кнопки на форме выполнить запрос и выгрузить результат в Excel
sdku,
снова спасибо! мне теперь нужно время, чтобы понять все эти многа букв) и всё переварить.

sdkuВдогонку:Crey-hen... я так и не поняла, зачем в VB переписывать уже готовый запрос.
А что, за все время существования БД Вы параметр менять не будете?

нет, конечно. но я прямо в запросе ссылаюсь forms!FZapros.Spcon (страна т.е.) но вообщем, не суть.
...
Рейтинг: 0 / 0
01.12.2015, 16:59
    #39117586
Crey-hen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
По нажатию кнопки на форме выполнить запрос и выгрузить результат в Excel
Анатолий ( Киев ),

спасибо! попробую.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / По нажатию кнопки на форме выполнить запрос и выгрузить результат в Excel / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]