Я работаю над базой данных, которая содержит и отображает курсы для сотрудников, у каждого сотрудника есть другая дата, когда он или она должны снова пройти определенный курс. Я сделал несколько таблиц, которые содержат всю информацию. Я могу отобразить информацию в форме, эта форма содержит несколько кнопок, которые позволяют мне выбирать между различными запросами. Все запросы выводят данные одного типа в одной и той же форме. Для удобства я буду называть эту форму FormA.
Все это прекрасно работает, но несколько часов назад я добавил кнопку, которая позволит мне обновить информацию об определенной записи. Это обновление происходит в другой форме, назовем ее FormB. В старой ситуации я использовал определенную форму для каждой тренировки, но считал, что это всегда неэффективно. Я сделал форму, которая может отображать информацию о каждом запросе. Проблема, с которой я сталкиваюсь, заключается в том, что всякий раз, когда я нажимаю кнопку для обновления определенной записи. Он всегда отображает информацию о верхней записи в запросе/форме. Я застрял на этом в течение нескольких часов, и я просто не могу заставить его работать. Если я вручную установлю RecordSource FormB на правильный запрос, все будет работать так, как должно. Но это требует от меня сделать много одинаковых форм.
Я постараюсь связать весь код, который я считаю актуальным. Если что-то еще нужно, пожалуйста, скажите об этом.
Код, используемый для кнопки обновления, расположенной на FormA:
Private Sub btnUpdate_Click()
Dim stDocName As String
If Forms!FormA.RecordSource = "QryFG" Then
stDocName = "FormB"
' we open first the form:
DoCmd.OpenForm stDocName, , , "peoplesoftnr = " & Me!PeopleSoftNr
' we then set up it's RecordSource:
Forms!FormB.RecordSource = "QryFG"
End If
Это утверждение if повторяется пять раз для всех разных тренировок, они все одинаковы, поэтому я не буду включать их в этот пост.
Код заполняет мои текстовые поля в FormB. Но он всегда выбирает лучший рекорд. Даже когда я нажимаю кнопку, которая не находится в той же строке (FormA). Когда я комментирую следующую строку:
' Forms!FormB.RecordSource = "QryFG":
И вручную установите QryFG в качестве источника записи для FormB, он делает то, что должен делать. Но при этом мне придется создать много одинаковых форм. Я надеюсь, что есть лучший способ сделать это. Заранее спасибо за ваше время и усилия. Мой родной язык не английский, поэтому, пожалуйста, не обращайте внимания на орфографические и грамматические ошибки ;).
Спасибо еще раз!
Джоэри Роммерс