Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.61/23: Рейтинг темы: голосов - 23, средняя оценка - 4.61
October
1

ACCESS <-> MS SQL Server

12.12.2010, 12:17. Показов 4312. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите, как засадить данные в ComboBox на форме в ACCESS из таблицы в MS SQL Server 2000 ? Связь через ADODB.Connection.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.12.2010, 12:17
Ответы с готовыми решениями:

Как настроить MS SQL Server, чтобы через Access, можно было редактировать таблицы MS SQL Server?
ВОПРОС: Как настроить MS SQL Server, чтобы через Access, можно было редактировать таблицы MS...

Как средствами джавы реализовать просмотр базы данных Access, SQL Server, SQL Server Compact и запись в нее?
---

Передача параметров из Access в ХП SQL Server - MS Access
Привет всем, подскажите как правильно передать параметры в хранимую процедуру при ее вызове из...

[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed- User: Reason: Not defined as a valid user of a trusted SQL Server connection
Login failed- User: Reason: Not defined as a valid user of a trusted SQL Server connection Вот...

20
vivi
12.12.2010, 14:33 2
Прилинковываешь таблицу или представление в Access:
Но сначала надо создать соединение ODBC:
Пуск - Настройка - Панель управления - Администрирование - Источники данных ODBC.
Соединение будет иметь имя.
Далее в Access:
окно БД - вкладка Таблицы - связь с таблицами,тип файлов выбираешь ODBS Databases и имя твоего соединения.
Если хочешь чтоб прилинкованная таблица была обновляемой, надо при установлении связи указать уникальное поле. Если такого нет, то добавляешь в таблице на SQL искуственное поле счетчика.
Важно! При изменении структуры таблицы на SQL связь надо принудительно обновлять.

Прилинкованная таблица или представление будут иметь имя. Указываешь имя этого объекта в свойстве Источник строк элемента управления гна форме.
Если надо подробнее - спросите.
October
12.12.2010, 15:12 3
Vivi, Спасибо. Но это все сделано.И связь есть и все.
Но не могу весь список вонзить в Combobox.
Или только первое значение.
отрывок:
...
r1.movefirst
me.CBox1.value = r1!Name
me.refresh

Показывает только первое значение, а мне надо все.
Где r1 определяется как
set r1=cnn1.execute('select ...')
vivi
12.12.2010, 15:52 4
Поскольку вопрос в ветке про Access, то уточни, пожалуйста: Клиент у тебя на чем?
October
12.12.2010, 15:52 5
Клиент в форме на Access.
vivi
12.12.2010, 16:13 6
Счас разберемся.
Что ты называешь ComboBox?
Поле со списком?
October
12.12.2010, 16:23 7
Да. Поле со списком.
Клиент на Access.
vivi
12.12.2010, 16:33 8
Прости за мою непонятливость.
Объясни, чего ты хочешь иметь на выходе.
Поле со списком имеет источник строк и предназначено для выбора и использования выбранного значения.

Поле со списком присоеденено к одному полю (если результат выбора нужно хранить)или свободное, т.е. выбираемое значение не сохраняется.

А вот источник строк может быть представлен обширным набором записей -много записей и несколько столбцов.

У тебя проблема где? В источнике записей для раскрывающегося списка или ты хочешь результат выбора хранить в виде набора записей?
October
12.12.2010, 16:38 9
Я хочу иметь выбор и использование выбранного значения.
Так, чтобы, Поле со списком было присоеденено к ОДНОМУ СТОЛБЦУ.
-----
У тебя проблема где? В источнике записей для раскрывающегося списка или ты хочешь результат выбора хранить в виде набора записей?
----
Проблема в источнике записей. Не удается подцепить необходимый столбец таблицы на сервере к раскрывающемуся списку.
October
12.12.2010, 16:46 10
Поясню нагляднее. Под меню форума есть поля 'Искать' и второе (раскрывающийся список), в котором высвечено 'в новостях'. Предположим, что значения для второго поля берутся с сервера (из таблицы). Каким образом мне подцепить этот элемент АктивХ - раскрывающийся список к данным в таблице на сервере ? Повторяю, что клиент, где расположен раскрывающийся список - на Access.
vivi
12.12.2010, 16:55 11
Тогда надо воспользоваться средствами этого элемента управления.

Задать свойства : Источник строк, число столбцов, ширину столбцов.
Ничего не надо программировать! Все это элементарно делается визуальными средствами.
Лучше всего воспользоваться мастером (возникает, когда рисуешь новый элемент).

Если тебе надо динамически менять источник строк, ну, к примеру в зависимости от значения какого-нибудь соседнего поля, то это делается путем изменения свойств этого поля со списком в модуле формы средствами VBA - в ответ, например на событие 'после обновления' того, другого пля.

Источник строк это string. Его ты и формируешь в VBA. Он имеет вид SQL-запроса 'Select .... '. В предложении FROM пишешь имя прилинкованной таблицы и о коннекте не заботишься, ибо он в этой тбл хранится. А предложение WHERE динамически формируешь.

Удачи!

Напиши, получилось ли.
vivi
12.12.2010, 16:59 12
Причем здесь АктивХ? Воспользуйся родным полем со списком, который интегрирован в Access. Тут тот случай, когда не надо экзотики.
October
12.12.2010, 17:06 13
Я понимаю, о чем вы говорите. Но, дело в том, что здесь работа идет через Connection. Я не делаю линки таблиц. В разделе ТАБЛИЦЫ у меня не т ни одной таблицы, Все через ADODB.Connection.
В том-то и трудность. Если я сделаю линки таблиц с сервера, то при работе нескольких клиентов будет конфликт. (Правда он и так может быть, но так можно поковырять с транзакциями).
0 / 0 / 0
Регистрация: 25.03.2010
Сообщений: 210
12.12.2010, 17:20 14
RowSource = 'SELECT ODBC_Table.FieldName from ODBC_Table;'

или я чего-то не понял?
0
0 / 0 / 0
Регистрация: 25.03.2010
Сообщений: 210
12.12.2010, 17:20 15
а ещё после SELECT можно вставить DISTINCT, тогда ваще ништяк бует
0
October
12.12.2010, 17:32 16
To: poluthene
Попробовал, но выдает сообщение, что ядро не может найти входную таблицу OLEDB_project_type.
October
12.12.2010, 18:07 17
To: polithene
Как я понимаю, эту строку я вставил в источник строк в элементе управления. Она дает ошибку. Если вставить программно, думаю, все равно даст ошибку (причем, наверное, ту-же).
0 / 0 / 0
Регистрация: 25.03.2010
Сообщений: 210
13.12.2010, 11:39 18
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Dim rst As DAO.Recordset
Dim strServer As String
Dim strDB As String
Dim strTable As String
Dim strConnect As String
Dim strMsg As String

strConnect = 'ODBC:driver ={SQL server}; trusted_connection=yes;'

или

strConnect = 'ODBC:driver ={SQL server}; UID=' < UserName > ' PWD= ' < Password > ''

Set db = CurrentDb
Set rst = db.OpenRecordset('tblSQLTables', dbOpenSnapshot)

If rst.EOF Then
strMsg = 'NO TABLES!!!'
GoTo exithere
End If

Do Until rst.EOF
strServer = rst!sqlserver
strDB = rst!sqldatabase
strTable = rst!sqltable

Set tdf = db.CreateTableDef(strTable)
tdf.Connect = strConnect & 'Server=' & strServer & 'atabase=' & strDB & ';'
tdf.SourceTableName = strTable

db.TableDefs.Append tdf
rst.MoveNext
Loop

strMsg = 'tables are linked'
rst.Close
Set rst = Nothing
Set tdf = Nothing
Set db = Nothing

exithere:
MsgBox strMsg, , 'Linking sql tables'
HandleErr:
Exit Sub


взято из 'Access. Сборник рецептов для профессионалов'
авторы - К.Гетц, П.Литвин, Э.Берон
Работает на MSO XP, возможно не будет работать на ранних версиях.
Не забудь включить Tools > References > Microsoft DAO 3.6 object library

Удачи
0
0 / 0 / 0
Регистрация: 25.03.2010
Сообщений: 210
13.12.2010, 11:41 19
забыл написать.
код этот подсоединяет ВСЕ таблицы, думаю сам разберёшся, что к чему...
0
October
13.12.2010, 12:32 20
Спасибо, polythene.
Попробую. Сообщу как и что.
13.12.2010, 12:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.12.2010, 12:32
Помогаю со студенческими работами здесь

из access в ms sql server
есть программа которая работает с бд access мне необходимо ее переделать под ms sql server вот код...

Ms Access + MS SQL Server
Кто работал в такой связке, подскажите пожалуйста. Если я в Access делаю связные таблицы к SQL...

MS Access + MS SQL server
Кто работал в такой связке, подскажите пожалуйста. Если я в Access делаю связные таблицы к SQL...

Перенести БД из Access в SQL Server
Всем привет,нужно переконвертировать БД (прикреплена к теме) в Microsoft SQL Server 2008, пробую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru