Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Источник данных
 
 автор: Ramon   (04.05.2008 в 15:51)   личное сообщение
 
 

ТАкой вопрос.
Как программно у формы установить источник данных?
У меня такая ситуация.
Я по нажатию кнопки вызываю форму, и обработчике события этой кнопки я хочу установить источник данных для вызываемой формы. При этом у меня есть данные, они находятся в RecordSet.
Реально ли это сделать?

  Ответить  
 
 автор: osmor   (04.05.2008 в 17:22)   личное сообщение
 
 

Обязательно рекодсет? Какого типа у ВАс рекордсет? База MDB или ADP?
У формы есть свойство Recordsource - которому можно присвоить или строку SQL или имя запроса или таблицы
и есть свойство Recordset в него можно запихнуть Recordset - но здесь возможность зависит от типа рекордсета

  Ответить  
 
 автор: Ramon   (04.05.2008 в 17:31)   личное сообщение
 
 

База дыннх ADP.
Дело в том, что запрос устанавливает сооединение с БД, находящейся на другом сервере.
Dim InConn As ADODB.Connection
Set InConn = New ADODB.Connection
InConn.Open str31Conn

Dim sqlQuery As String
'sqlQuery = "select * from tb_Thread_R where (kol - kol_v) > 0 and zap_id =" & cZap_id
sqlQuery = "select * from tb_Thread_R where (kol - kol_v) > 0 and zap_id = 3073"

Dim records As ADODB.recordSet
Set records = New ADODB.recordSet
records.ActiveConnection = InConn
records.Open sqlQuery

А если в запросе навписать например такое {ИМЯ_УДАЛЕЕНОГОСЕРВЕРЕ.ИМЯ_БД.dbo.ИМЯ_ТАБЛИЦЫ} -- то такое не проходит.
Может подскажешь как лучше быть?

  Ответить  
 
 автор: osmor   (04.05.2008 в 17:53)   личное сообщение
 
 

В ADP такого не пробовал.
Но в теории форме ADP можно подсунуть ADOdb.Recordet
Попробуйте написать
me.recordset = records

  Ответить  
 
 автор: Ramon   (04.05.2008 в 18:38)   личное сообщение
 
 

В теории то ДА:) Должно работать, но на практике....

  Ответить  
 
 автор: osmor   (04.05.2008 в 21:49)   личное сообщение
 
 

Да и на практике тоже

Dim cn As ADODB.Connection, rs As ADODB.Recordset
    Set cn = New ADODB.Connection
    cn.ConnectionString = "PROVIDER=SQLOLEDB.1;INTEGRATED SECURITY=SSPI;PERSIST SECURITY INFO=FALSE;INITIAL CATALOG=Store;DATA SOURCE=SERVER"
    cn.Open
    Set rs = New ADODB.Recordset
    rs.ActiveConnection = cn
    rs.CursorLocation = adUseClient
    rs.CursorType = adOpenStatic
    rs.LockType = adLockOptimistic
    rs.Source = "SELECT * FROM dbo.Products"
    rs.Open
    rs.Properties("Unique Table") = "Products"
    rs.Properties("Resync Command") = "SELECT * FROM dbo.Products WHERE id = ?"
    Set Me.Recordset = rs

  Ответить  
 
 автор: Ramon   (05.05.2008 в 11:12)   личное сообщение
 
 

Спасибо большое. Получилось!!!

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList