VBA в доступе. Проблема с ComboBox - PullRequest
0 голосов
/ 24 марта 2020

У меня есть комбинированные списки на моей ФОРМЕ . У одного из них элементов в результате SQL запроса из поля PG (cbPG.RowSource = "SELECT DISTINCT W_report.PG FROM W_report WHERE ......) Размер поля байт,

После запроса

Пользователь может выбрать один из вариантов или перечислить несколько разделенных запятыми ( 2,4,5,7,11,13 ).

Правильное значение

Полученное значение ComboBox.value используется в процедуре, аналогичной выбору страниц для печати. Все работает правильно, пока не будут внесены изменения в обработчик событий cbPG . Затем значения автоматически округляются (если одна запятая)

неверное значение

или ошибка «Введенное значение не подходит для этого поля» происходит (если несколько запятых), и мне нужно скопировать cbPG из резервной копии, потому что я не могу найти свойство, которое изменяет формат cbPG.value в байт .

  • Вот часть программы, которая использует мой ComboBox
Public Function MnogoListov(str As String) As String
Dim i, j As Integer
Dim res As String
Dim listArr() As String
res = ""
ReDim listArr(Len(str)) As String
For i = 1 To Len(str)
If Mid(str, i, 1) <> "," And Mid(str, i, 1) <> "." Then
listArr(j) = listArr(j) & Mid(str, i, 1)
Else
j = j + 1
End If
Next
For i = 0 To j
If i = 0 Then
res = listArr(i)
Else
res = res & " OR W_report.PG = " & listArr(i) End If
Next
MnogoListov = res
End Function

1 Ответ

0 голосов
/ 24 марта 2020

Вы не можете этого сделать. Поле со списком предназначено для выбора одного значения из нескольких.

Итак, либо используйте список множественного выбора , либо простое текстовое поле , где вы - аналогично выбору страницы для печати - разобрать введенные значения для получения последовательности (списка) элементов (страниц).

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