Access & MS SQL

Hammer

Как без прилинкования сервера MS SQL и использования запроса к серверувыполнить запрос к MS SQL из Aceess?Знаю, что надо напистьчто-то, типаselect [Items].* from ItemsIN [ODBC;Driver=SQL SERVER;Server=MySERVER;Database=MyDatabase;Uid=MyUid;Pwd=MyPwd].Таблица Items находится на MS SQL MySERVER в БД MyDatabase
23 ответа

Hammer

dim Cnn as new Adodb.connectiondim rs as new adodb.recordsetcnn.open "driver={SQL Server};server=;uid=;pwd=;database="rs.open "select * from mytable " , cnn ,3,2,1присвоить результат набору записей формыset me.recordset = rs


Hammer

вот у меня возникла такая же задачапопробовала запустить из Access макросdim Cnn as new Adodb.connectiondim rs as new adodb.recordsetcnn.open "driver={SQL Server};server=serv9;uid=sa;pwd=sa;database=teh0"rs.open "select * from tab1" , cnn ,3,2,1set me.recordset = rsругается на me====================и еще вопрос ... если я запускаю этот макрос из базы Access, увижу ли я после выполнения макроса среди запросов(таблиц) этой базы запрос(таблицу) с именем tab1 ?


Hammer

>> ругается на meГде находится этот код?В модуле формы или в общем модуле?


Hammer

этот код находится в моей базе Access prob.mdb -> макросы


Hammer

me можно использоват только в модулях класса(модуль формы является частным случаем модуля класса)


Hammer

этот код находится в моей базе Access prob.mdb -> макросы
Прапорщик построил роту солдат и говорит:- Сегодня мы будем изучать рацию на танке!!! У кого есть какие-то вопросы?В строю стоит щупленький солдатик в очках и спрашивает:- Товарищ прапорщик! Скажите, а рация на лампах или транзистрорах?Прапор:- Для дураков повторяю, рация на ТАНКЕ!!!


Hammer

так не поняла я как мне запустить этот модуль в макросе базы Access, чтобы ошибка не выдавалась


Hammer

этот код находится в моей базе Access prob.mdb -> макросы
Ну уж в макросах этот код точно НЕ находится.


Hammer

Прапорщик построил роту солдат и говорит:- Сегодня мы будем изучать рацию на танке!!! У кого есть какие-то вопросы?В строю стоит щупленький солдатик в очках и спрашивает:- Товарищ прапорщик! Скажите, а рация на лампах или транзистрорах?Прапор:- Для дураков повторяю, рация на ТАНКЕ!!!
вместо анекдотов - дал бы лучше дельный совет по сабжу


Hammer

база prob.mdb-пр кн мыши -редактор VB- Project Exploer -Modules ну так что делать с ошибкой ?


Hammer

код надо поместить в форму на событие загрузка


Hammer

Ладно, пока опустим вопрос - в макросах или нет.Может, она модули макросами называетВот это строка
set me.recordset = rs
хочет "присвоить" рекордсету текущей формы рекордсет rsформы, похоже, у тебя нет - в этом проблема


Hammer

база prob.mdb-пр кн мыши -редактор VB- Project Exploer -Modules ну так что делать с ошибкой ?
если офис >=2000то делай такdim Cnn as new Adodb.connectionCnn.CursorLocation=adUseClientдалее по тексту "все должно работать".


Hammer

формы в базе у меня нетесть только таблицы и запросытак вот мне нужно с SQL сервера поместить в базу ещё одну таблицуВОТ И ВСЁ


Hammer

формы в базе у меня нетесть только таблицы и запросытак вот мне нужно с SQL сервера поместить в базу ещё одну таблицуВОТ И ВСЁ
ой, а тохда хто такой me в "я попробовала запустить из Access макрос" ?тохда я все ниправильно сказал - как всегда - ukegjukegj


Hammer

если офис >=2000то делай такdim Cnn as new Adodb.connectionCnn.CursorLocation=adUseClientдалее по тексту "все должно работать".
Oфис 2000


Hammer

>> мне нужно с SQL сервера поместить в базу ещё одну таблицуесли это нужно сделать один раз, то лучше привязать таблицу с сервера в базу через ODBC и сделать запрос на создание таблицы.если много раз, то всякие варианты возможны


Hammer

это нужно делать не один раз, поэтому я и спрашиваю как сделать программно ?вариант руками через ODBC мне не подходит


Hammer

Вариант
Dim qd As DAO.QueryDef
Set qd = New DAO.QueryDef
qd.Name = "qP"
qd.SQL = "Select * From dbo.ИмяТаблицы"
qd.Connect = _
 "ODBC;DRIVER=SQL Server;SERVER=ИмяКомпаСервераSQL;UID=sa;PWD=пароль;DATABASE=ИмяБД"
CurrentDb.QueryDefs.Append qd
CurrentDb.QueryDefs.Refresh
Set qd = Nothing
После выполнения этого кода в базе mdb появится запрос "qP"


Hammer

попробовала ... , на строке CurrentDb.QueryDefs.Append qdпишет ошибку "Недопустимая операция"на ПК стоит win 2000, office 2000доступ к серверу точно есть - проверилав Reference библиотека DAO подкючена ...Вот код кот запускаю в базе Access - Модули Dim qd As DAO.QueryDefSet qd = New DAO.QueryDefqd.Name = "qP"qd.SQL = "Select * From dbo.classif"' где dbo.classif- имя таблицы, кот тяну с базы SQLqd.Connect = _ "ODBC;DRIVER=SQL Server;SERVER=ik17;UID=sa;PWD=sa;DATABASE=blank"' где ik17 - имя сервера' blank - имя базы на Sql сервере, гдележит таблица dbo.classif CurrentDb.QueryDefs.Append qdCurrentDb.QueryDefs.RefreshSet qd = NothingМожет есть подобный код на ADO ?Тяп-Ляп, а как ваше настоящее имя?Спасибо .


Hammer

currentdb.CreateQueryDef ("aaa", "SELECT * FROM tree")
currentdb.QueryDefs("aaa").Connect = _
 "ODBC;DRIVER=SQL Server;SERVER=ik17;UID=sa;PWD=sa;DATABASE=blank"


Hammer

на строке CurrentDb.QueryDefs.Append qdпишет ошибку
"а не Шерлок ли это, знаете-ли, Холмс?"т.е. не в АДП-проекте-ли вы балуетесь попыткой аппендить кваридефы?


Hammer

В файле примеры на ADO>> Тяп-Ляп, а как ваше настоящее имя?Сообщаю только землякам :)) cкачать