Как разрешить 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>