Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: A2007 запрос из VBA
 
 автор: Cerber   (28.03.2010 в 11:16)   личное сообщение
 
 

Помогите пожалуйста!
имеется запрос

SELECT Veteran_Un.Surname AS Фамилия, Veteran_Un.Name_s AS Имя, Veteran_Un.Patronumic_Name AS Отчество, Veteran_Un.Date_Birthday AS [День рождения]
FROM Veteran_Un
WHERE ((Veteran_Un.Surname) Like '*' & [Введите фамилию] & '*');

Необходимо запускать этот запрос из VBA
по типу

Dim qd As DAO.QueryDef
Set qd = CurrentDb.CreateQueryDef("")
qd.SQL = "SELECT DISTINCT Veteran.Area FROM Veteran;"
qd.OpenRecordset
Set qd = Nothing

Благодарю всех за помощь

  Ответить  
 
 автор: Анатолий (Киев)   (30.03.2010 в 11:01)   личное сообщение
 
 

Set qd = CurrentDb.CreateQueryDef("")
qd.SQL = "SELECT ... [Введите фамилию] & '*');"
qd.Parameters("Введите фамилию") = "Фамилия"
Set rs = qd.OpenRecordset

  Ответить  
 
 автор: Cerber   (05.04.2010 в 11:13)   личное сообщение
 
 

Спасибо за помощь !
Немного модифицировал запрос

...
str_Vol_01 = InputBox("Введите фамилию")
...
qd.SQL = "SELECT ... [Введите фамилию] & '*');"

qd.Parameters("[Введите фамилию]").Value = str_Vol_01

Снова тупик; помогите тормозу !
теперь результаты этого запроса необходимо выыести в формате Excel

Заранее благодарен

  Ответить  
 
 автор: kot_k_k   (06.04.2010 в 08:44)   личное сообщение
 
 

qd.SQL = "SELECT ... [Введите фамилию] & '*');"

возможно нужно & Chr(34) & "*" & [Введите фамилию] & Chr(34) & "*"

он орет на отсутствие кавычек перед и после строкового аргуметна, Chr(34) можно заменить на одинарную кавычку, но она плохо видится на форуме

  Ответить  
 
 автор: Анатолий (Киев)   (06.04.2010 в 13:59)   личное сообщение
 
 

Полученный Recordset можно вставить на лист методом Excel-я CopyFromRecordset. Примеров можете найти немеряно.

Если вы имеете фамилию в переменной, то можно собрать SQL выражение запроса на создание таблицы прямо в процедуре и выполнить экспорт в Excel.

str_Vol_01 = InputBox("Введите фамилию")
strSQL = "SELECT Veteran_Un.Surname AS Фамилия, Veteran_Un.Name_s AS Имя, Veteran_Un.Patronumic_Name AS Отчество, Veteran_Un.Date_Birthday AS [День рождения]
INTO Экспорт IN 'C:\Файл.xls' [Excel 8.0;] FROM Veteran_Un WHERE ((Veteran_Un.Surname) Like '*" & str_Vol_01 & "*');"
CurrentDB.Execute strSQL

Но это пример для Акса97-2003. В А2007 другое расширение у файла и другая строка подключения (вместо [Excel 8.0;]).

  Ответить  
 
 автор: Cerber   (16.04.2010 в 08:45)   личное сообщение
 
 

Решение вопроса:
1 Создаем объект Excel
2 Активизируем Excel
3 Выполняем запрос
4 передача полученных данных в Excel
. . .
objQuerySheet.Cells(1, 1).CopyFromRecordset rs
. . .
5 зачистка памяти для освобождения ресурсов системы

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList