|
|
|
| ТАкой вопрос.
Как программно у формы установить источник данных?
У меня такая ситуация.
Я по нажатию кнопки вызываю форму, и обработчике события этой кнопки я хочу установить источник данных для вызываемой формы. При этом у меня есть данные, они находятся в RecordSet.
Реально ли это сделать? | |
|
| |
|
|
|
| Обязательно рекодсет? Какого типа у ВАс рекордсет? База MDB или ADP?
У формы есть свойство Recordsource - которому можно присвоить или строку SQL или имя запроса или таблицы
и есть свойство Recordset в него можно запихнуть Recordset - но здесь возможность зависит от типа рекордсета | |
|
| |
|
|
|
| База дыннх 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.ИМЯ_ТАБЛИЦЫ} -- то такое не проходит.
Может подскажешь как лучше быть? | |
|
| |
|
|
|
| В ADP такого не пробовал.
Но в теории форме ADP можно подсунуть ADOdb.Recordet
Попробуйте написать
me.recordset = records | |
|
| |
|
|
|
| В теории то ДА:) Должно работать, но на практике.... | |
|
| |
|
|
|
| Да и на практике тоже
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
|
| |
|
| |
|
|
|
| Спасибо большое. Получилось!!! | |
|
| |