Как разрешить Recordset #2 в той же позиции, что и аналогичный Recordset#1

Я работаю с 2 наборами записей: #1 и #2. набор записей # 1 - это набор записей формы, который НЕ является DataUpdatable, поскольку его источником является запрос с нередактируемыми полями. Набор записей # 2 является DataUpdatable, потому что его источником является таблица. таблица набор записей № 2 является источником таблицы набор записей № 1.

каждый раз, когда я сохраняю значения элементов управления формы, я меняю статус набора записей на "Добавить / редактировать", вставляю каждое значение в соответствующее поле набора записей и обновляю набор записей. проблема в том, что я должен сделать это в наборе записей #2, потому что # 1 не редактируется. мне нужно переместить позицию набора записей №2 в ту же позицию № 1, прежде чем вставлять контрольные значения. Я пытаюсь использовать закладку набора записей № 1 в наборе записей № 2, поскольку они имеют одинаковую структуру таблицы, общее количество полей и т. Д., Но в нем говорится, что закладка недействительна.

оба набора записей расположены в одном порядке, оба источника SQL имеют предложение "ORDER BY". для режима AddNew проблем нет, потому что позиция набора записей новая, ее не нужно искать. проблема в режиме EditInProgress, потому что я должен сопоставить обе позиции, чтобы я мог обновить управляющие значения формы, адресованные полям набора записей № 1, в эквивалентные поля набора записей № 2.

заранее спасибо.

привет AVG это код шифрования / дешифрования:

Public Function EncriptarDecriptarTexto(textoNormal As Variant) As Variant
    On Error GoTo ErroGeral
    Dim posicaoLetraEncript As Integer
    Dim valorLetraEncript As Integer
    Dim tamanhoTextoNormal As Integer
    Dim tamanhoTextoEncript As Integer
    Dim textoEncript As String
    Dim i As Integer

    If ((textoNormal & "") = "") Then
        GoTo ErroGeral
    End If

    tamanhoTextoNormal = Len(textoNormal)
    tamanhoTextoEncript = Len(textoEncript)
    posicaoLetraEncript = 0
    textoEncript = "Any text you want"

    For i = 1 To tamanhoTextoNormal
        posicaoLetraEncript = posicaoLetraEncript + 1

        If posicaoLetraEncript > tamanhoTextoEncript Then
            posicaoLetraEncript = 1
        End If

        valorLetraEncript = Asc(Mid(textoEncript, posicaoLetraEncript, 1))
        Mid(textoNormal, i, 1) = Chr(Asc(Mid(textoNormal, i, 1)) Xor valorLetraEncript)
    Next i

    EncriptarDecriptarTexto = textoNormal

Sair:
    Exit Function
ErroGeral:
    EncriptarDecriptarTexto = Null
    GoTo Sair
End Function

об обновлении таблицы: сейчас я обновляюсь через операторы INSERT/UPDATE.

1 ответ

Это звучит как плохой дизайн для начала. Тем не менее, вместо того, чтобы открывать второй набор записей и пытаться синхронизироваться с источником записей формы, просто используйте оператор обновления. Update <YourTable> SET <field1> = <NewValue1>, <field2> = <NewValue2> WHERE <PK>=<CurrentRecordPK>

Другие вопросы по тегам