база книга библиотека excel
1. Импорт таблиц.
Сначала я продемонстрирую простой импорт таблиц в Excel из MS SQL Server. Для этого заходим в MS Excel, выбираем вкладку «Данные» и в этой вкладке нажимаю из других источников → с сервера SQL Server. Откроется следующее окно:
В этом окне нам нужно правильно указать имя своего сервера и нажать кнопку «Далее».
Откроется следующее диалоговое окно:
Здесь мы выбираем БД и таблицу, которую хотим импортировать в Excel. Откроется ещё одно окно, но я думаю, что в нем ничего менять не нужно.
Нажимаем кнопку «Готово» и Excel просит нас указать область, в которую будет записана таблица.
Нажимаем «ОК», получаем результат:
2. Создание макросов
Во 2 части приложения я покажу, как связать таблицу Excel с базой данных SQL Server. В результате будет возможен ввод запроса в форму и запись результата на лист в Excel. Все действия я не буду описывать подробно, как в первой части.
Последовательность действий:
1) начинаем запись макроса в Excel
2) загружаем таблицу в Excel, как было написано в 1 части
3) завершаем запись макроса
4) заходим в макрос, редактируем там код на VBA, добавляем форму, связываем всё это. Главное, что меня тормозило и из-за чего не работало всё, это то, что в свойстве «CommandType» нужно поменять параметр с xlCmdTable на xlCmdSql.
После выполнения всех этих действий всё готово. Далее я покажу демонстрацию работы с созданным мною макросом. Заходим в документ «Книга1», в котором находится макрос. Сразу при открытии система нам предлагает ввести запрос в форму, которая изображена ниже:
В этой форме можно вводить любые запросы к таблице Author. Простейший запрос SELECT * FROM Author. Вводим его в форму, и если все нормально, то система выдает сообщение, показанное ниже:
Это сообщение означает, что всё выполнено успешно. Результат отображен на рисунке ниже:
Также в форме запроса можно написать запросы и сложнее, например SELECT * FROM Author WHERE AVT_KOD>.
Результат:
Приложение 1
Код макроса на VBA
Sub Auto_Open()
UserForm1. Show
End Sub
Sub мой_макрос(SQLstr)
'
' мой_макрос Макрос
' Смоленцев Александр 273 (1) группа. 26.05.2011
'очистка листа
'–
'
Cells. Select
Sheets («Лист3»).Select
Cells. Select
Selection. ClearContents
Range («A1»).Select
'
'–
'
With ActiveSheet. ListObjects. Add (SourceType:=0, Source:=Array (_
«OLEDB; Provider=SQLOLEDB.1; Integrated Security=SSPI; Persist Security Info=True; Data Source=ACER-PC\SQLEXPRESS; Use Procedure for Prepare» _
_
«=1; Auto Translate=True; Packet Size=4096; Workstation ID=ACER-PC; Use Encryption for Data=False; Tag with column collation when poss» _
«ible=False; Initial Catalog=University_Library»), Destination:=Range («$A$1») _
).QueryTable
CommandType = xlCmdSql
CommandText = SQLstr
RowNumbers = False
FillAdjacentFormulas = False
PreserveFormatting = True
RefreshOnFileOpen = False
BackgroundQuery = True
RefreshStyle = xlInsertDeleteCells
SavePassword = False
SaveData = True
AdjustColumnWidth = True
RefreshPeriod = 0
PreserveColumnInfo = True
SourceConnectionFile = _
«C:\Пользователи\Александр\Мои документы\Мои источники данных\ACER-PC_SQLEXPRESS University_Library Author.odc»
ListObject. DisplayName = _
«Лист3»
Refresh BackgroundQuery:=False
End With
MsgBox «Запрос выполнен»
End Sub
Размещено на Allbest.ru