Как сделать редактируемый источник записей из двух источников - PullRequest
0 голосов
/ 09 июля 2019

Я не слишком уверен в формулировке своего названия, но надеюсь, что смогу описать проблему здесь достаточно хорошо.Также я сделал два предыдущих поста.В этом я описываю еще одну проблему с моим подходом, которая была решена.В посте есть ссылка на вопрос до него.Это может помочь понять мою проблему, и мне не нужно повторять все. Здесь - текущее состояние формы, на которую я смотрю.В коде ниже вы можете увидеть, как я заполняю таблицу.Значения по умолчанию для флажка и полей "Zieladresse": Нет и Нуль .

Dim cpRS As New ADODB.Recordset, rs As DAO.Recordset, otherRS As DAO.Recordset, cb As checkBox, addr As String
'Creating copy of previously displayed result table
Set cpRS = New ADODB.Recordset
With cpRS
    .Fields.Append "val1", adInteger
    .Fields.Append "val2", adInteger
    '...
    'new Fields for editable purpose
    '########################################
    .Fields.Append "auswahl", adBoolean
    .Fields.Append "Zieladresse", adVarChar, 50, adFldIsNullable

    .CursorLocation = adOpenKeyset
    .Open , , adOpenDynamic, adLockOptimistic, 8
End With

'Dim argv() As String
'Dim argRest As String - not used in this excerpt
Dim qdef As DAO.QueryDef
Dim restrictedQuery As String
Dim i As Long

restrictedQuery = "some SQL"

Set qdef = CurrentDb.CreateQueryDef("")
qdef.SQL = restrictedQuery
Set rs = qdef.OpenRecordset
Set rs = CurrentDb.OpenRecordset(restrictedQuery, dbOpenSnapshot)
rs.MoveLast
rs.MoveFirst
If rs.RecordCount = 0 Then
    MsgBox "error", vbOKOnly, "error"
    DoCmd.Close acForm, Me.Name
    Exit Sub
End If

'populate new recordset with data from table in previous form
Do Until rs.EOF
    cpRS.AddNew
    cpRS.Fields("val1") = rs("val1")
    '...
    cpRS.Update
    rs.MoveNext
Loop

Set otherRS = CurrentDb.OpenRecordset("tbl_Auswahl")
otherRS.MoveFirst

Do Until cpRS.EOF
    cpRS.Fields("auswahl") = otherRS("auswahl")
    cpRS.Fields("Zieladresse") = otherRS("Zieladresse")
    cpRS.Update
    cpRS.MoveNext
Loop

В VBA я открываю набор записей и сначала заполняю егозначения из запроса, который является группой по запросу (и, следовательно, только для чтения).Затем я открываю другой набор записей (otherRS) и заполняю два других столбца значениями из таблицы (поэтому не только для чтения).Как вы можете видеть на скриншоте, это на самом деле не работает.Итак, мой вопрос: как мне получить значения по умолчанию для каждого флажка и каждого текстового поля (адреса) и сделать их редактируемыми, чтобы пользователь мог открыть эту форму и флажки и ввести значения для столбца адреса?Не имеет значения, может ли пользователь также редактировать другие столбцы, поскольку они не будут использоваться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...