Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Microsoft Access - программирование и готовые решения


Выпуск 103. Использование линкованных таблиц

Подписка:      "Microsoft Access - программирование и готовые решения"
Дата:               02.06.2014
Сайт:               http://www.leadersoft.ru/


Введение

Microsoft Access использует язык программирования VBA для обращения к данным. Этот язык применяют тогда, когда интерфейс не позволяет сделать некоторые объекты в базе данных. Например, рассмотрим процесс привязки к таблицам

 

VBA

Привязка к таблицам

В Microsoft Access есть функции привязки к таблицам, т.е. используя драйвер ODBC или другой, Вы можете создать ссылку на таблицу на файл, сервер и т.п. типа MySQL, SQL Server, FoxPro и т.п. В дальнейшем использовать эту таблицу как родную для чтения, редактирования или сохранения данных. Ниже дан код, который позволяет обновить связи таблиц через VBA. Таблицы, которые надо изменить, находятся в таблице Access “Список прилинкованных таблиц”. Таким образом, можно автоматически обновлять много таблиц и с разными северами, достаточно сохранить их в списке. Также можно доработать код, чтобы линкованные таблицы создавались автоматически по параметрам из списка.

 

Обновление/создание связанных таблиц

Private Function dao_CreateTableLinks() As Long

On Error GoTo 999

Dim i As Long

Dim TB As DAO.TableDef

Dim rst As ADODB.Recordset, myConnection As String, SrcTable As String

' Открываем запрос с таблицами

Set rst = ad.OpenRecordset("SELECT * FROM [Список прилинкованных таблиц]")

If rst.RecordCount = 0 Then

ad.CloseRecordset rst

Exit Function

End If

' Настройка таймера

SysCmd acSysCmdInitMeter, "Идёт обновление связанных таблиц", rst.RecordCount

cnt = 0

For i = 0 To rst.RecordCount - 1

' Обновляем привязанную таблицу

Set TB = db.TableDefs(rst!НазваниеТаблицы)

TB.Connect = CurrentConnection.ConnectionString ' Или указываем новое соединение

TB.RefreshLink

' Изменение прогрессбара

SysCmd acSysCmdUpdateMeter, cnt

rst.MoveNext

Next

Set con = Nothing

' Закрываем запрос с таблицами

rst.Close

Set db = Nothing

SysCmd acSysCmdRemoveMeter

Exit Function

999:

SysCmd acSysCmdRemoveMeter

MsgBox Err.Description

Err.Clear

End Function

Лицензия на источник информации

    Все права на статью принадлежат Leadersoft.ru. Статья предназначена только для публикации среди подписчиков subscribe.ru. Никто без письменного разрешения leadersoft.ru не может продавать, перепечатывать, сдавать в аренду или другим образом извлекать выгоду, используя информацию из этой и других статьях данной рассылки.

 


В избранное