Access Runtime error 7 произошла в течение последних нескольких дней - PullRequest
0 голосов
/ 21 февраля 2019

Мне было поручено завершить проект для другого сотрудника, который помог и нуждается в некоторой помощи с его кодом.Используя MSAccess 2016 и получаю ошибку времени выполнения 7 в течение последних нескольких дней.

Код, вызывающий проблемы

[Forms]! [Register]! [Amount_paid] .Text = DLookup (current_balance (), "RollingBalance", "account_id =" & account_id)

Option Compare Database

Private Sub Command22_Click()
Dim accID As Integer
Dim stID As String
Dim month As String
Dim parent1 As String

    month = Month_Of()

    [Forms]![register]![StudentInfoSub]![account_id].SetFocus
    accID = [Forms]![register]![StudentInfoSub]!account_id.Text
    [Forms]![register]!account_id.SetFocus
    [Forms]![register]!account_id = accID

    [Forms]![register]![StudentInfoSub]!student_id.SetFocus
    stID = [Forms]![register]![StudentInfoSub]!student_id.Text
    [Forms]![register]!student_id.SetFocus
    [Forms]![register]!student_id = stID

    [Forms]![register]![StudentInfoSub]!guardian1.SetFocus
    parent1 = [Forms]![register]![StudentInfoSub]!guardian1.Text
    [Forms]![register]!received_From.SetFocus
    [Forms]![register]!received_From = parent1

    [Forms]![register]!staff_id.SetFocus
    [Forms]![register]!staff_id.Text = DLookup("staff_id", "StaffInfo", "username = '" & UserName() & "'")

    [Forms]![register]!location.SetFocus
    [Forms]![register]!location.Text = DLookup("school_site", "StaffInfo", "username = '" & UserName() & "'")

    [Forms]![register]![Month Of].SetFocus
    [Forms]![register]![Month Of].Text = month

    [Forms]![register]![amount_paid].SetFocus
    [Forms]![register]![amount_paid].Text = DLookup(current_balance(), "rollingbalance", "account_id=" & account_id)
    Forms!register!amount_paid.SetFocus

   End Sub

   Private Sub Form_Load()
   DoCmd.SetOrderBy "Child's Name Asc"
   End Sub

1 Ответ

0 голосов
/ 21 февраля 2019

Не используйте .Text.В VBA свойство по умолчанию для элемента управления данными - .Value.Это свойство для установки или получения значения элемента управления данными.Так как это по умолчанию, даже не нужно вводить его.Аргумент имени поля в DLookup current_balance не имеет смысла.Попробуйте DLookup("current_balance",....Предполагая, что этот код находится за основной формой:

Private Sub Command22_Click()
  With Me
    !account_id = .[StudentInfoSub]!account_id
    !student_id = .[StudentInfoSub]!student_id
    !received_From = .[StudentInfoSub]!guardian1
    !staff_id = DLookup("staff_id", "StaffInfo", "username = '" & UserName() & "'")
    !location = DLookup("school_site", "StaffInfo", "username = '" & UserName() & "'")
    ![Month Of] = Month_Of()
    ![amount_paid] = DLookup("current_balance", "rollingbalance", "account_id=" & Me!account_id)
    .amount_paid.SetFocus
  End With
End Sub

Если имя поля на самом деле Child's Name, тогда его нужно заключить в [] из-за пробела и специального символа:
DoCmd.SetOrderBy "[Child's Name] Asc"

...