VBA Access 2016. Работа с Recordset

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток, в общем передо мной стоит задача: есть таблица с данными (lab3) из неё надо сделать запрос SELECT и записать его результат в другую таблицу (lab3_1). Условие для запроса берется из текстового поля формы. Набросал код, но не работает SELECT. Составлен вроде правильно, но не работает. Исходная и конечная таблицы одинаковы.
Листинг программы
  1. Dim rs As DAO.Recordset, fld As Field
  2. selectSQL = "SELECT * FROM lab3 WHERE rnd1 = '" & Me.exp & "'" ' exp - переменная из формы
  3. Set rs = CurrentDb.OpenRecordset(selectSQL)
  4.  
  5. Dim myDb As Database
  6. Set myDb = CurrentDb()
  7. Dim myTab As TableDef
  8. Set myTab = myDb.CreateTableDef("lab3_1")
  9. Dim myF As Field
  10. Set myF = myTab.CreateField("ID", dbLong)
  11. myTab.Fields.Append myF
  12. Set myF = myTab.CreateField("rnd1", dbText)
  13. myTab.Fields.Append myF
  14. Set myF = myTab.CreateField("rnd2", dbText)
  15. myTab.Fields.Append myF
  16. myDb.TableDefs.Append myTab
  17. Application.RefreshDatabaseWindow
  18. If rs.EOF And rs.BOF Then 'Проверка на пустоту
  19. MsgBox ("Пусто")
  20. End If
  21. Do Until rs.EOF
  22. 'DoCmd.RunSQL "INSERT INTO lab3_1 (ID, rnd1, rnd2)" & "VALUES ('" & rs("ID") & "','" & rs("rnd1") & "','" & rs("rnd2") & "');"
  23. 'For Each fld In rs.Fields: Debug.Print rs(fld): Next fld
  24. rs.MoveNext
  25. Loop
Пишет, что Recordset пуст, хоть записи там точно должны быть (попадают под условия запроса)

Решение задачи: «VBA Access 2016. Работа с Recordset»

textual
Листинг программы
  1.  selectSQL = "SELECT * FROM lab3 WHERE rnd1 LIKE '" & Me.exp & "*'"

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы