Тема: Nav + SQL
Показать сообщение отдельно
Старый 17.04.2008, 12:02   #12  
Технологии как Искусство is offline
Технологии как Искусство
Участник
 
37 / 10 (1) +
Регистрация: 04.02.2008
Цитата:
Сообщение от smoyk Посмотреть сообщение
Интересно Я у randrews спрашивал как это делается, но он промолчал((
Например, так:
в новом файле экселя запускаем импорт внешних данных (Данные-Импорт внешних данных-Импортировать данные...)
На выходе получаем на листе объект QueryTable. Он нам и понадобится.

Далее, допустим, надо построить отчет, на вход которого подается дата (например, товарные остатки на дату).
Дата будет в ячейке $A$1

Тогда пишем следующий макрос и привязываем его к какой-нибудь кнопке на листе:

Код:
	Dim dtmReport As Date
	Dim strSQL As String

	dtmReport = Range("$A$1").Value
	
	strSQL = "EXECUTE dbo.Proc_Get_Inventory " & "'" & Year(dtmReport) _
	& "-" & Month(dtmReport) & "-" & Day(dtmReport) & "'"
	
	Range("D14").Select
	With Selection.QueryTable
		.RefreshStyle = xlInsertDeleteCells
		.Connection = Array(Array( _
		"ODBC;Description=Navision;DRIVER=SQL Server;SERVER=192.168.1.1;UID=ВАШ ЛОГИН;;APP=Microsoft Data Access Components;WSID=MYWORKSTATION" _
		), Array("OV;DATABASE=MYCOMPANY"))
		.CommandText = Array(strSQL)
		.Refresh BackgroundQuery:=False
	End With
Запускаем макрос, получаем данные. Вместо ХП в переменную strSQL можно написать какой-нибудь свой запрос.