powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / По нажатию кнопки на форме выполнить запрос и выгрузить результат в Excel
10 сообщений из 10, страница 1 из 1
По нажатию кнопки на форме выполнить запрос и выгрузить результат в Excel
    #39112464
Crey-hen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
С 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
По нажатию кнопки на форме выполнить запрос и выгрузить результат в Excel
    #39112514
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Crey-hen,
Like,TransferSpreadsheet и CurrentDb.QueryDefs("ИмяЗапроса").SQL = "strSQL"
...
Рейтинг: 0 / 0
По нажатию кнопки на форме выполнить запрос и выгрузить результат в Excel
    #39114521
Crey-hen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku, спасибо за ответ.
с Like с синтаксисом разобралась. и сейчас ищется по части кода ТН ВЭД.
а с выгрузкой никак не выходит.
пишу в процедуре на нажатие кнопки:
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, "Сводный запрос", "C:\Test.xls"
не работает.
а про CurrentDb.QueryDefs совсем ничего не могу понять. в английском хелпе разобраться не могу. можно, хоть пару слов для чего это "CurrentDb.QueryDefs("ИмяЗапроса").SQL = "strSQL""
...
Рейтинг: 0 / 0
По нажатию кнопки на форме выполнить запрос и выгрузить результат в Excel
    #39114752
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Crey-hen,
...
Рейтинг: 0 / 0
По нажатию кнопки на форме выполнить запрос и выгрузить результат в Excel
    #39115939
Crey-hen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,
спасибо огромное! заработало) где тут ставить плюсы в карму?
при чем работает даже без этой страшной строчки с CurrentDb.QueryDefs. я так и не поняла, зачем в VB переписывать уже готовый запрос.
а можно сделать так, чтобы этот экселевский файл, в который результат запроса сохраняется, у меня сразу открывался?
...
Рейтинг: 0 / 0
По нажатию кнопки на форме выполнить запрос и выгрузить результат в Excel
    #39116080
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
По нажатию кнопки на форме выполнить запрос и выгрузить результат в Excel
    #39116086
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вдогонку:Crey-hen... я так и не поняла, зачем в VB переписывать уже готовый запрос.
А что, за все время существования БД Вы параметр менять не будете?
...
Рейтинг: 0 / 0
По нажатию кнопки на форме выполнить запрос и выгрузить результат в Excel
    #39116180
Crey-henа можно сделать так, чтобы этот экселевский файл, в который результат запроса сохраняется, у меня сразу открывался? Зная путь к файлу, его можно открыть методом FollowHiperlink объекта Application.
Еще файл Excel можно создать методом DoCmd.OutputTo. Он умеет и сразу открывать созданный файл.
...
Рейтинг: 0 / 0
По нажатию кнопки на форме выполнить запрос и выгрузить результат в Excel
    #39117582
Crey-hen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,
снова спасибо! мне теперь нужно время, чтобы понять все эти многа букв) и всё переварить.

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

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

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


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