Jak mogę wykonać procedurę przechowywaną w programie Microsoft Excel i uzyskać wszystkie dane, które zwraca?
microsoft-excel
vba
sql-server-2008
data-transfer
Safran Ali
źródło
źródło
Odpowiedzi:
Jest to zadanie dla połączenia ADODB w VBA. Oto link z przykładowym kodem do prostego zapytania SELECT, ale to również będzie obsługiwać procedury przechowywane.
http://www.ozgrid.com/forum/showthread.php?t=83016&page=1
Kluczowe elementy to potrzeba zadeklarowania
ADODB.Connection
,ADODB.Recordset
i ciąg połączenia, który pasuje do twojej bazy danych. Po otwarciu połączenia wykonuje się instrukcję SQL przy użyciu składni podobnej do następującej (pobranej z linku):Następnie przenieś dane z zestawu rekordów (
rst
, powyżej) do zakresu za pomocąRange.CopyFromRecordSet
.źródło
Nie jestem pewien co do najnowszego wcielenia programu Excel, ale w 2000 i 2003 roku wszystko, co można zrobić, to uzyskać dostęp do widoku i wyświetlać jego dane na arkuszu programu Excel.
Główną zaletą procedury składowanej byłaby możliwość sparametryzowania wyniku, ale do tego potrzebny byłby jakiś interfejs użytkownika i potrzebny byłby sposób programowej modyfikacji definicji zapytania po pierwszym zdefiniowaniu w programie Excel. Nie znaleźliśmy sposobu, aby to zrobić, ale używanie widoków zapewniało wystarczającą funkcjonalność do tego, co musieliśmy zrobić.
źródło
Ten VBA jest bardzo podobny do odpowiedzi @ Excellll i użyłem go z dobrym skutkiem w mojej pracy.
Użyj tej małej funkcji użyteczności:
I tu jest wielka funkcja (przepraszam za wyrównanie paragrafów)
Mam nadzieję że to pomoże.
źródło