У меня есть таблица со следующими полями:Используйте цикл, чтобы выбрать несколько записей из таблицы для заполнения несвязанных текстовых полей в MS Access
StudentID
ClassID
TestID
TestScore
Для каждой уникальной комбинации ученика и класса, может быть до до 10 идентификаторов тестов и соответствующих тестов. У меня есть форма с 10 несвязанными текстовыми полями, которые соответствуют тестовым оценкам для 10 идентификаторов тестов. Я пытаюсь использовать форму для EDIT и ADD данных для моей таблицы (StudentScores). Поскольку его ученик может пропустить класс, каждая комбинация студенческого класса может не иметь 10 записей в таблице.
Я хотел бы иметь возможность использовать цикл в процедуре события для извлечения тестовых оценок из таблицы на основе выбранного студента и идентификатора класса для ввода в текстовые поля. Текстовые поля называются textbox1 через textbox10, соответствующие 10 TestID.
через поиск на форумах, как это, я был в состоянии придумать следующий код для извлечения данных из 10 несвязанных текстовых полей, чтобы добавить новые записи в таблицу:
Dim i As Integer
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("StudentScores", dbOpenTable)
For i = 1 To 10
rst.AddNew
rst![StudentID] = Me.StudentCombo1
rst![ClassID] = Me.ClassCombo1
rst![TestID] = i
If Not IsNull(Controls("Textbox" & i)) Then
rst![TestScore] = CLng(Controls("Textbox" & i))
End If
rst.Update
Next
Ok, поэтому следующий код, по-видимому, работает по крайней мере на начальном этапе. Вопрос, который я изначально был из-за опечатки. Однако, когда я изменяю значение поля со списком и повторно запускаю процедуру, я получаю сообщение об ошибке, что набор записей пуст.
Dim rst As DAO.Recordset
mmySQL = "SELECT * from StudentScores where ClassID =" & Me.ClassCombo1 & "AND StudentID =" & Me.StudentCombo1
Set rst = CurrentDb.OpenRecordset(mmySQL)
rst.MoveFirst
Do Until rst.EOF
Controls("Textbox" & rst![TestID]) = rst![TestScore]
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
Избавьтесь от пробелов в именах полей, вы поблагодарете себя позже. Посмотрите на мастер запросов кросс-таблицы. Вернитесь туда, где вы застряли. – Fionnuala
Хорошо, я отредактировал мой вопрос. Надеюсь, это добавит ясности. – user3203169
Являются ли ClassID и StudentID как числовыми, либо имеют тип данных Text? –