1 (изменено: alexii, 2012-06-29 15:04:32)

Тема: VBA: Выбрать данные из SQL и вставить результат в Excel

Здравствуйте
имеется БД - MS SQL 2005, понадобился начальству отчет

на первом листе
с3 дата1
с4 дата2
с5 номер

вывожу на второй лист

простой запрос выполняется на ура
простой это select * from db where 1=1

1) подскажите как подставить данные с первой страницы
2) помогите привести запрос в формат VBA

код запроса

DECLARE @НомерСклада INT
DECLARE @ВидТовара INT
DECLARE @DD1 DATETIME
DECLARE @DD2 DATETIME

SET @НомерСклада=101  --если NULL то по всем складам
SET @ВидТовара=NULL    -- если NULL то по всем товарам
SET @DD1='20120601'   
SET @DD2='20120607'   
SELECT Р.НомерСклада, Р.Дата,ТР.ВидТовара, НМ.Наименование, ТР.КолШт AS КолВо,ТР.КолШт*ТР.Цена AS Сумма 
FROM ankstr.dbo.Расходы Р WITH (NOLOCK)
INNER JOIN ankStr.dbo.ТоварыРасходов ТР WITH (NOLOCK) ON ТР.Расход = Р.Расход
INNER JOIN ankDic.dbo.Номенклатура НМ WITH (NOLOCK) ON НМ.ВидТовара = ТР.ВидТовара
WHERE Р.Линия=3 AND (Р.НомерСклада=@НомерСклада OR @НомерСклада IS NULL)
AND (ТР.ВидТовара=@ВидТовара OR @ВидТовара IS NULL)
AND Р.ДатаОтгрузки BETWEEN @DD1 AND @DD2
AND ТР.КолШт < '0.05'

2

Re: VBA: Выбрать данные из SQL и вставить результат в Excel

пробую для начала без параметров

sqlstring = "SELECT Р.НомерСклада, Р.Дата,ТР.ВидТовара, НМ.Наименование, ТР.КолШт AS КолВо,ТР.КолШт*ТР.Цена AS Сумма " & _
"FROM ankstr.dbo.Расходы Р " & _
"INNER JOIN ankStr.dbo.ТоварыРасходов ТР ON ТР.Расход = Р.Расход; " & _
"INNER JOIN ankDic.dbo.Номенклатура НМ WITH ON НМ.ВидТовара = ТР.ВидТовара; " & _
"WHERE Р.Линия=3 AND Р.НомерСклада='101' " & _
"AND Р.ДатаОтгрузки BETWEEN '20.06.2012' AND '28.06.2012' " & _
"AND ТР.КолШт < '0.05'"

вот на этой команде

.CommandText = Array(sqlstring)

пишет Type mismatch