Динамический переменный держатель со счетчиком - PullRequest
0 голосов
/ 15 декабря 2018

У меня есть два текстовых поля и два поля со списком в форме.Существует также подчиненная форма, связанная с шаблоном, который я хочу перестраивать / фильтровать каждый раз при изменении одного из элементов управления (используя после обновления каждого элемента управления для запуска следующего подпрограммы)

Я получаю ошибку времени выполнения'91: переменная объекта или переменная блока не задана в строке. Items (i) = Thing

Я не уверен, что использование (i) работает с MS Access 365 или неправильно определяю размеры?

Спасибо.

    Private Sub Lookupstuff()
    Dim i As Integer
    Dim Items(1 To 4) As Object

        sql = "DELETE * FROM tblTemp"
        CurrentDb.Execute sql
        i = 0
    FilterArray = Array(Me.txtNew, Me.cmbS, Me.cmbP, Me.txtSl)
    For Each Thing In FilterArray
        If Not IsNull(Thing) Then
            i = i + 1
            Items(i) = Thing <--Error is here. Items(i) is empty.
        End If
    Next

    If i = 0 Then
        Forms!frmNew.Requery
        Forms!frmNew.Refresh
    End If
    If i = 1 Then
        Filter = Items1
    End If
    If i = 2 Then
        Filter = Items1 & " AND " & Items2
    End If
    If i = 3 Then
        Filter = Items1 & " AND " & Items2 & " AND " & Items3
    End If
    If i = 4 Then
        Filter = Items1 & " AND " & Items2 & " AND " & Items3 & " AND " & Items4
    End If

    sql = "INSERT INTO tblTemp SELECT * FROM tblQ"
    If Not IsNull(Filter) Then
        sql = sql & " WHERE " & Filter
    End If
    CurrentDb.Execute sql
        Forms!frmNew.Requery
        Forms!frmNew.Refresh
    End Sub

1 Ответ

0 голосов
/ 15 декабря 2018

Поскольку вы присваиваете ссылку на объект в массиве, вы должны использовать Set, то есть:

Set Items(i) = Thing

Также, предположительно, каждая ссылка на Items1, Items2 и т. Д. На самом деле должны быть Items(1), Items(2) для доступа к объектам, на которые ссылаются эти индексы массива.

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