-Поиск по дневнику

Поиск сообщений в rss_sql_ru_access_programming

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 16.03.2006
Записей:
Комментариев:
Написано: 4


Recordset для формы

Вторник, 18 Октября 2016 г. 12:14 + в цитатник
Здравствуйте.

В базе данных имеется форма с некоторыми полями. Хочу открыть эту форму из другой (по нажатию соответствующей кнопки) и присвоить открытой форме рекордсет сформированный на основе значений полей в первой форме.
Код для рекордсета довольно громоздкий получился - но проверенный - отдельно как запрос работает.
Привожу код по нажатию кнопки в первой форме полностью (в том виде как есть на текущий момент), сильно можно не вникать, главное что в конце:
  Private Sub btnCost_Click()
Dim rs As ADODB.Recordset
Dim dtDate As String
Dim strEquipment As String
Dim strCondition As String
Dim strSource As String
Dim strQry As String
strEquipment = Me.fldEquipment
dtDate = "#" & Month(Me.fldDate) & "/" & Day(Me.fldDate) & "/" & Year(Me.fldDate) & "#"
strCondition = "iEquipment =" & strEquipment & " And (dtDate <= " & dtDate & " Or IsNull(dtDate))"

If Me.gswMaxPriceDate = 1 Then
  Set rs = New ADODB.Recordset
  rs.CursorLocation = adUseClient
  rs.Open "SELECT iEquipment, QC.iComponent, iAssembly, dAmount, iItem, dKoef, iInvoice, dPrice, dCost, strNumber, dtDate, iSupplier " & _
  "FROM qryCost as QC INNER JOIN " & _
  "(SELECT iComponent, MAX(dtDate) as dt2Date " & _
  "FROM qryCost " & _
  "WHERE dtDate <= " & dtDate & _
  "AND iEquipment = " & Me.fldEquipment & _
  " GROUP BY iComponent " & _
  ")AS SQC " & _
  "ON QC.iComponent = SQC.iComponent And QC.dtDate = SQC.dt2Date " & _
  "UNION " & _
  "SELECT iEquipment, iComponent, iAssembly, dAmount, iItem, dKoef, iInvoice, dPrice, dCost, strNumber, dtDate, iSupplier " & _
  "FROM qryCost " & _
  "WHERE iEquipment = " & Me.fldEquipment, CurrentProject.Connection, adOpenDynamic, adLockOptimistic
    
  DoCmd.OpenForm "subCost", acFormDS, , , acFormReadOnly, acHidden
 
  Set Forms("subCost").Recordset = rs
  Forms("subCost").Visible = True
       
  Set rs = Nothing
  
End If

End Sub


После открытия второй формы при попытке присвоить ей рекордсет, на строке
 Set Forms("subCost").Recordset = rs


Акцесс вылетает. Подскажите пожалуйста, что я делаю не так?
Спасибо

http://www.sql.ru/forum/1235072/recordset-dlya-formy


 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку