Работа с базой данных через MS Excel 2007




база книга библиотека 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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-06-26 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: