Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Связь SQL сервера с MS Access  [new]
planet06
Member

Откуда:
Сообщений: 11
Здравствуйте форумчане.
Есть несколько вопросов по работе с БД на SQL сервере через MS Access, просто никогда этим не занималась, а теперь приходится...
Имеется Microsoft SQL Server сервер, файл MS Access mdb связанный с сервером через ODBC, файл MS Access mde (последний разумеется для пользователей).
1. Необходимо добавить столбцы в некоторые таблицы, связанные через ODBC с сервером. Вопрос: где лучше добавлять столбцы, скорее всего на сервере, так? Как добавлять столбы (через SQL Server Enterprise Manager или как-то иначе) ? Как обновить таблицы ODBC с новыми столбцами в mdb?
2. В Access есть odbc таблица Документы. Как сделать чтобы каждый отдел видел только то что заполняет в этой таблице через форму и только свои столбцы, а один отдел видел все записи по отделам и все столбцы...?
p.s.: Столбцы полагаю можно в форме кому-то показать, а кому-то нет, т.е. для каждого отдела создать форму в Access, так? Или можно проще как-то?
6 фев 14, 17:10    [15530074]     Ответить | Цитировать Сообщить модератору
 Re: Связь SQL сервера с MS Access  [new]
Volochkova
Member

Откуда:
Сообщений: 2321
link server до Access и никаких проблем.
7 фев 14, 04:38    [15532134]     Ответить | Цитировать Сообщить модератору
 Re: Связь SQL сервера с MS Access  [new]
aleks2
Guest
Volochkova
link server до Access и никаких проблем.

Волочкова как всегда пукнула в лужу.

planet06
Или можно проще как-то?

Изучи Access .ADP - проще будет.

Но и через ODBC ничего невозможного нема.
7 фев 14, 07:01    [15532200]     Ответить | Цитировать Сообщить модератору
 Re: Связь SQL сервера с MS Access  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2415
planet06,

" Как обновить таблицы ODBC с новыми столбцами в mdb?" - если найдете, как, напишите)

В крайний раз когда такое потребовалось (добавить столбцы, в Акцесс выводились таблицы для ввода пользователям коэффициентов), было мало времени на разбирательства, в итоге добавил столбцы конечно в MSSQL, а в акцессе удалил и создал заново "связанную таблицу"
7 фев 14, 09:10    [15532468]     Ответить | Цитировать Сообщить модератору
 Re: Связь SQL сервера с MS Access  [new]
planet06
Member

Откуда:
Сообщений: 11
aleks2
Но и через ODBC ничего невозможного нема.


Если не трудно, объясните пожалуйста, как это сделать...
нашла только эту статью: http://www.sql-ex.ru/help/select15.php

Таблица в которой нужно добавить столбец огромна... и боюсь что-нибудь напортачить... Сама БД старая создавалась лет 10-15 назад...
С Access'ом знакома, создавала БД но только локально на один комп с доступом нескольких пользователей, без подключения к сети (такая была на тот момент задача, но это было давно). Сейчас работаю с БД на Оракле (хорошо, что есть техподдержка с Ораклом), но т.к. больше никого нет, работаю одна, спросить что и как не у кого... :(

StarikNavy
В крайний раз когда такое потребовалось (добавить столбцы, в Акцесс выводились таблицы для ввода пользователям коэффициентов), было мало времени на разбирательства, в итоге добавил столбцы конечно в MSSQL, а в акцессе удалил и создал заново "связанную таблицу"


К сожалению, да, времени на разбор практически нет. Как Вы добавляли? По методу в ссылке или иначе?
7 фев 14, 10:08    [15532655]     Ответить | Цитировать Сообщить модератору
 Re: Связь SQL сервера с MS Access  [new]
Volochkova
Member

Откуда:
Сообщений: 2321
StarikNavy,

Я так поняла что, есть табличка в MS SQL
Ей добавить поле, а через диспетчер связанных таблиц обновится link табличка.

Если необходимо чтобы что то вносилось в Access, то лучше через LinkServer SQL - ACCESS получайте данные запросами в MS SQL.
Уроните базу в MS SQL - накажут, а за Access может и не так то больно будет.
7 фев 14, 11:11    [15533043]     Ответить | Цитировать Сообщить модератору
 Re: Связь SQL сервера с MS Access  [new]
aleks2
Guest
planet06
Таблица в которой нужно добавить столбец огромна... и боюсь что-нибудь напортачить... Сама БД старая создавалась лет 10-15 назад...


Если у вас задача: добавить раз в столетие 1 столбец в таблицу.
Нема смысла париться и изучать ODBC pass-through query.
http://support.microsoft.com/kb/303968

Запустите SSMS, али EM, и в дизайнере таблиц добавьте ваш столбец В КОНЕЦ СПИСКА.
Источник данных на Access просто перелинкуйте.
И фсе.
7 фев 14, 11:20    [15533102]     Ответить | Цитировать Сообщить модератору
 Re: Связь SQL сервера с MS Access  [new]
planet06
Member

Откуда:
Сообщений: 11
Volochkova

Я так поняла что, есть табличка в MS SQL
Ей добавить поле, а через диспетчер связанных таблиц обновится link табличка.

Если необходимо чтобы что то вносилось в Access, то лучше через LinkServer SQL - ACCESS получайте данные запросами в MS SQL.
Уроните базу в MS SQL - накажут, а за Access может и не так то больно будет.


Данные вносят через mde файл, которые потом сохраняются на сервере. А вот если сделать как Вы предлагаете :
Volochkova
... через LinkServer SQL - ACCESS получайте данные запросами в MS SQL....

то куда они буду сохраняться на сервере если там такого столбца нет? А его потом должен видеть и тот кто создал и исполнитель...

лучше попробую как предложил aleks2
aleks2
Запустите SSMS, али EM, и в дизайнере таблиц добавьте ваш столбец В КОНЕЦ СПИСКА.
Источник данных на Access просто перелинкуйте.
И фсе.

Попробую через ЕM... Мне кажется это логичней будет... Добавить столбец в конец таблицы, а в access уже можн изменить порядок... жаль нет тестовой базы для тренировок...

Еще вопросик, может подскажете, где прописываются ID пользователей? Нужно добавить еще доступ для других пользователей. В коде форм MVB встречаются ID'шники, но где они находятся, чтобы добавить новых ну никак не могу найти. Таблиц с пользователями и их ID нет ни на Access ни на сервере... где их могли спрятать...?
7 фев 14, 12:37    [15533746]     Ответить | Цитировать Сообщить модератору
 Re: Связь SQL сервера с MS Access  [new]
baracs
Member

Откуда: Москва
Сообщений: 7217
planet06
Еще вопросик, может подскажете, где прописываются ID пользователей? Нужно добавить еще доступ для других пользователей. В коде форм MVB встречаются ID'шники, но где они находятся, чтобы добавить новых ну никак не могу найти. Таблиц с пользователями и их ID нет ни на Access ни на сервере... где их могли спрятать...?
В системе нет формы для заведения новых учеток (пользователей)?
А как "старые" пользователи получают доступ к системе?
7 фев 14, 13:17    [15534115]     Ответить | Цитировать Сообщить модератору
 Re: Связь SQL сервера с MS Access  [new]
planet06
Member

Откуда:
Сообщений: 11
baracs,
В коде формы Главной прописаны доступы к кнопкам
Private Sub Btn_Podtv_Click ()
If me.user="ОК" and (Me.pwd = "пароль") Then
user1= "1"
me.f_user = "1"
Me.Btn1.Enabled=True
Me.Btn.2.Visible = False

И так далее... для каждого отдела, кому-то видны кнопки, кому-то нет... Раньше было только два отдела. Теперь нужно еще двоих туда добавить... В форму то я прописала и в главной они выбираются и заходят в базу, но вот с главной таблицей проблемы... т.к. в коде формы для таблицы прописаны помимо user1= "1" еще и ID_User который по умолчанию выводит строчку с айдишником отдела который ввел данные в эту строку. И теперь даже если в форме прописать user1=нужному отделу то без айдишников ничего не выходит... :(
7 фев 14, 14:13    [15534609]     Ответить | Цитировать Сообщить модератору
 Re: Связь SQL сервера с MS Access  [new]
baracs
Member

Откуда: Москва
Сообщений: 7217
planet06
If me.user="ОК" and (Me.pwd = "пароль") Then
"ОК" - это отдел кадров? O, mein Gott!
planet06
...но вот с главной таблицей проблемы... т.к. в коде формы для таблицы прописаны помимо user1= "1" еще и ID_User который по умолчанию выводит строчку с айдишником отдела который ввел данные в эту строку.
Что значит "ID_User выводит строчку с айдишником"?
Это что: переменная, функция, поле таблицы?..
7 фев 14, 15:03    [15535025]     Ответить | Цитировать Сообщить модератору
 Re: Связь SQL сервера с MS Access  [new]
planet06
Member

Откуда:
Сообщений: 11
baracs
"ОК" - это отдел кадров? O, mein Gott!

Что значит "ID_User выводит строчку с айдишником"?
Это что: переменная, функция, поле таблицы?..


ОК - да, отдел кадров, они были добавлены канцелярией. Но теперь для оформления заявок нужно и другие отделы добавить. Строчка с айдишником отдела Ячейка в таблице (поле в области данных ), т.е. сразу видно какой отдел вел эти данные по айдишнику...
7 фев 14, 15:37    [15535311]     Ответить | Цитировать Сообщить модератору
 Re: Связь SQL сервера с MS Access  [new]
planet06
Member

Откуда:
Сообщений: 11
baracs
"ОК" - это отдел кадров? O, mein Gott!

Что значит "ID_User выводит строчку с айдишником"?
Это что: переменная, функция, поле таблицы?..


ОК - да, отдел кадров, они были добавлены c канцелярией. Но теперь для оформления заявок нужно и другие отделы добавить. Строчка с айдишником отдела Ячейка в таблице (поле в области данных ), т.е. сразу видно какой отдел вел эти данные по айдишнику...
7 фев 14, 15:38    [15535316]     Ответить | Цитировать Сообщить модератору
 Re: Связь SQL сервера с MS Access  [new]
Glory
Member

Откуда:
Сообщений: 104751
planet06
ОК - да, отдел кадров, они были добавлены c канцелярией. Но теперь для оформления заявок нужно и другие отделы добавить. Строчка с айдишником отдела Ячейка в таблице (поле в области данных ), т.е. сразу видно какой отдел вел эти данные по айдишнику...

Просьба вопросы по Access обсуждать в форуме по Access
7 фев 14, 15:39    [15535320]     Ответить | Цитировать Сообщить модератору
 Re: Связь SQL сервера с MS Access  [new]
planet06
Member

Откуда:
Сообщений: 11
Glory,

Извините, пожалуйста, но просто связь идет вместе с таблицей на SQL сервере и данные вместе с айдишниками заносятся в таблицу на сервер. Вот я и не могу понять где айдишники скрыты на сервере или в Access.
7 фев 14, 15:46    [15535371]     Ответить | Цитировать Сообщить модератору
 Re: Связь SQL сервера с MS Access  [new]
Glory
Member

Откуда:
Сообщений: 104751
planet06
но просто связь идет вместе с таблицей на SQL сервере и данные вместе с айдишниками заносятся в таблицу на сервер.

Это вы установили по коду

Private Sub Btn_Podtv_Click ()
If me.user="ОК" and (Me.pwd = "пароль") Then
user1= "1"
me.f_user = "1"
Me.Btn1.Enabled=True
Me.Btn.2.Visible = False

вы санчала узнайте, откуда ваш код берет данные, а потом уже делайте заявления про "связи с sql server"
7 фев 14, 15:55    [15535456]     Ответить | Цитировать Сообщить модератору
 Re: Связь SQL сервера с MS Access  [new]
planet06
Member

Откуда:
Сообщений: 11
Glory
Это вы установили по коду

Private Sub Btn_Podtv_Click ()
If me.user="ОК" and (Me.pwd = "пароль") Then
user1= "1"
me.f_user = "1"
Me.Btn1.Enabled=True
Me.Btn.2.Visible = False

вы санчала узнайте, откуда ваш код берет данные, а потом уже делайте заявления про "связи с sql server"


В том то и дело что в коде в Access нигде id пользователей не прописаны. Пытаюсь узнать если они прописаны на сервере, то где...? В БД на SQL сервере прописан стандартный юзер sa ... Могут ли они где-то на серваке еще скрываться...?
7 фев 14, 16:01    [15535508]     Ответить | Цитировать Сообщить модератору
 Re: Связь SQL сервера с MS Access  [new]
Glory
Member

Откуда:
Сообщений: 104751
planet06
Пытаюсь узнать если они прописаны на сервере, то где...?

Вот и ищите. Откуда известно, сколько у вас таблиц и что они хранят

planet06
Могут ли они где-то на серваке еще скрываться...?

Вы предлагаете угадать, как в вашем приложении организована система доступа ?
7 фев 14, 16:05    [15535548]     Ответить | Цитировать Сообщить модератору
 Re: Связь SQL сервера с MS Access  [new]
planet06
Member

Откуда:
Сообщений: 11
Но все равно спасибо за советы... Поспрашиваю на форуме Access'а. Просто уже всю неделю пытаюсь разобраться с этой БД... Вся уже на нервах...
7 фев 14, 16:06    [15535558]     Ответить | Цитировать Сообщить модератору
 Re: Связь SQL сервера с MS Access  [new]
Glory
Member

Откуда:
Сообщений: 104751
Начните с коннекта, который ваше приложение использует для доступа к sql server
Если все ваши пользователи соединяются с sql server под одним логином, то система прав доступа реализована в самом приложении
7 фев 14, 16:08    [15535575]     Ответить | Цитировать Сообщить модератору
 Re: Связь SQL сервера с MS Access  [new]
planet06
Member

Откуда:
Сообщений: 11
Glory
Начните с коннекта, который ваше приложение использует для доступа к sql server
Если все ваши пользователи соединяются с sql server под одним логином, то система прав доступа реализована в самом приложении


Точно, Вы правы!!! Спасибо огромное!!! Как же я до этого раньше не додумалась...
7 фев 14, 16:14    [15535616]     Ответить | Цитировать Сообщить модератору
 Re: Связь SQL сервера с MS Access  [new]
baracs
Member

Откуда: Москва
Сообщений: 7217
planet06
Строчка с айдишником отдела Ячейка в таблице (поле в области данных )
Ищите запросы, которые делают INSERT и UPDATE в эту таблицу.
7 фев 14, 16:29    [15535741]     Ответить | Цитировать Сообщить модератору
 Re: Связь SQL сервера с MS Access  [new]
planet06
Member

Откуда:
Сообщений: 11
baracs
Ищите запросы, которые делают INSERT и UPDATE в эту таблицу.


Спасибо!!! А где их искать на сервере или в access? Просто и там и там их очень много... Некоторые просто видимо были созданы как черновики, но не были удалены...
7 фев 14, 16:34    [15535771]     Ответить | Цитировать Сообщить модератору
 Re: Связь SQL сервера с MS Access  [new]
baracs
Member

Откуда: Москва
Сообщений: 7217
planet06
А где их искать на сервере или в access? Просто и там и там их очень много...
Боюсь, что и там и там.

Можно использовать трассировку SQL Profiler-ом событий SP:StmtCompleted и SQL:StmtCompleted с фильтром LIKE %TableName% по колонке, содержащей текст запроса (TextData).
Возможно, в MS SQL 2000 эта колонка называется по другому - не помню уже.
7 фев 14, 17:39    [15536234]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить