Страницы: 1
RSS
подключение к access
 
Всем привет.  
Помогите разобраться с основами подключения.  
перепробовал разные способы, но при задании параметров вылетает что данные не определены.  
Что надо надстроить для подключения дополнительно, или какой-то пакет установить дополнительно?
 
вот даже при задании  
Dim cnn As New ADODB.Connection  
пишет что "ADODB.Connection" не определен....что делать
 
{quote}{login=Viatoris}{date=13.12.2011 11:28}{thema=}{post}вот даже при задании  
Dim cnn As New ADODB.Connection  
пишет что "ADODB.Connection" не определен....что делать{/post}{/quote}  
 
Т.к. вы используете позднее связывание ((т.н. late binding - New ADODB.Connection), то вам нужно сперва подключить библиотеку ADO в меню Tools-References - Microsoft ActiveX Data Objects x.x Object Library, а потом запускать код.  
 
P.S. Ну, или переписать код на ранее связывание (т.н. early binding) )
 
Дедушка Мороз, праздники еще не скоро, но уже немножко попутались термины раннего (early - New ADODB.Connection) с поздним (late - CreateObject) связыванием (binding), но по сути все написано правильно! :-)
 
эм... точняк )) когда ставим ссылку на библиотеку и New ADODB.Connection - early binding, а CreatObject - late binding ))
 
Честно говоря пока не в курсе на счет раннего и позднего связывания, но включение в настройках activex помогло, за что большое человеческое спасибо.  
Пойду дальше копать мануалы
 
Если доступ к Аксес, то может проще через DAO.
 
А я пока не разобрался в чем именно принципиальное отличие DAO и ADO =)  
мне по большому счету надо обращаться к аксессу, желательно не открывая саму базу, тк предположительно будет тяжёлой и выполнять нужные запросы, как на выгрузку, так и на загрузку/апдейт
 
1. С Аксесом DAO на мой взгляд работает чуть быстрее. ADO более универсальный -применяю, когда работаю с "промышленными" БД типа Оракл, Сайбэйс и проч. (запросы надо писать на соответствующем диалекте SQL).  
 
2. При любом доступе сам Аксес открываться не будет. Пользаватель даже может не знать, где лежит БД.  
 
3. Запрос не возвращающий данные (типа апдейт) выполняется так:  
Set rsttemp = db.Execute(<телсе запроса на модификацию>)
 
то есть при ADO запрос формулируется на sql, а при dao тогда как?    
 
зы.плюс есть шанс что в дальнейшем уломаю начальство на нормальную бд типа оракла и тогда переписывать меньше придется :)
 
Синтаксис такой же как в Аксес.  
Я делаю так:  
Отлаживаю SQL запрос в Аксесе, и копирую его как строку в макрос, если нужны параметры, то эту строку нужным образом дорабатываю - вариантов множество(см. ранее выложенный пример).
Страницы: 1
Читают тему
Наверх