• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Не обновляется Msflexgrid из рекордсета

  • Автор темы h7h2vC
  • Дата начала
Статус
Закрыто для дальнейших ответов.
H

h7h2vC

Здравствуйте, есть процеду добавления записи в таблицу ACCESS:
Код:
cn.Execute "INSERT INTO Variants (VariantNum, Step, ElementCode, work_code, WorkPlaceID, RoutingID) " & _
"VALUES (" & cVariantNum & ", '" & txtStep.text & "', '" & cPart & "', '" & cWork_code & "', '" & cRM_code & "', " & cRoutingID & ")"
И есть процедурка обновления MSFlexGrid1 из рекордсета, вызываемая сразу после добавления:
Код:
'Заполняем таблицу новым маршрутом
Public Sub DrawNewRoute(cn As ADODB.Connection, frmName As Form)
Dim str_sql As String
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset

Call CloseADOConnection(cn) 'Закрываем подключение
Call PerformADOConnection(cn) 'Открываем подключение

str_sql = "SELECT Variants.Step, works.work_name, Structure.StructureName AS Name, Routing.Norm, Routing.Norm2, Variants.VariantID, Routing.RoutingID, Variants.WorkPlaceID, Variants.work_code, Variants.Step, works.work_name " & _
"FROM (((Structure INNER JOIN Work_WorkPlace ON Structure.StructureID = Work_WorkPlace.WorkPlaceID) INNER JOIN works ON Work_WorkPlace.work_code = works.work_code) INNER JOIN Routing ON (works.work_code = Routing.work_code) AND (Structure.StructureID = Routing.WorkPlaceID)) INNER JOIN Variants ON (Variants.RoutingID = Routing.RoutingID) AND (Variants.work_code = works.work_code) AND (Structure.StructureID = Variants.WorkPlaceID) AND (Routing.RoutingID = Variants.RoutingID) " & _
"WHERE (((Variants.ElementCode) = '" & Form3.DataGrid1.Columns(1).text & "')) " & _
"AND Variants.VariantNum = " & CInt(frmName.cboVariantNum.text) & " " & _
"ORDER BY Variants.Step"

rst.Open str_sql, cn, adOpenDynamic, adLockReadOnly, adCmdText
rst.Requery
Дело в том, что если было 3 записи, мы добавили 1, то rst.RecordCount все равно будет равняться 3 сразу после добавления и обновления. Если же скопировать этот запрос (str_sql), сразу после добавления, в ACCESS то количество записей вернется верное, т.е. 4
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!