Member 14748582 Ответов: 1

Vb.net - заполнить listbox пользователем из того же места


Таким образом, у меня есть очень простая база данных доступа с UserID, Office,Title, Show Я хочу заполнить список идентификаторами пользователей, которые соответствуют текущему пользователю, а также добавить пользователя только в том случае, если у них есть Yes в столбце Show.

Я могу получить текущего пользователя, но оттуда я просто потеряюсь.

Мой мыслительный процесс таков

Rows = Table.rows.count
i=1
Run loop i to rows
    if CurrentUser = Table(i,Column1(UserID))
       UserOffice = Table(i,Column2(office))
    end if
End loop
'Second loop
i=1
Loop i to rows
    If Table(i,Column2(office)) = UserOffice then
         If Table(i,Column4)= "Yes" Then
             listbox1.items.add Table(i,Column1(UserID))
         End if
    end if
end loop


Просто взаимодействие со столом расстраивает меня в этот момент. Обычно я бы жестко закодировал все, но есть слишком много изменений, чтобы выталкивать новое приложение каждый раз, когда кто-то перемещает офисы. Прошло уже 15 лет с тех пор, как я использовал VB, так что все, что я знаю из VB, устарело или потеряно в песках времени.

Пожалуйста, помогите!

Что я уже пробовал:

Я пробовал несколько вещей, но на данный момент. Все, что я гуглю, я просто не очень понимаю.

Richard MacCutchan

Сколько идентификаторов пользователей, скорее всего, совпадут с текущим пользователем? Если это больше, чем один, то есть что-то серьезно странное в вашем дизайне.

Member 14748582

Только один идентификатор пользователя будет соответствовать текущему пользователю.

Richard MacCutchan

Так зачем же вам нужен список, чтобы показать его?

Member 14748582

Основываясь на текущем офисе пользователей, я хочу, чтобы в списке был отфильтрованный список пользователей в этом офисе и отображались только агенты или менеджеры.

Пример:
Джейн работает клерком в Остине. Когда она открывает приложение, она видит только менеджеров/агентов в списке или выпадающем списке для выбора. Если она решит посмотреть офис Houstin из другого выпадающего списка, то увидит только менеджеров/агентов из этого офиса. Но только не клерки. Мне очень жаль, что я не был ясен со своей просьбой.

Richard MacCutchan

Я не эксперт в доступе но похоже вам это нужно:
- Получить офис, который относится к выбранному идентификатору пользователя
- Выберите все записи "WHERE Office=foundOffice"

1 Ответов

Рейтинг:
2

Maciej Los

Кажется, вы хотите обновить одно поле, зависящее от другого поля. Я бы предложил использовать параметризованный запрос MS Access. Например:

PARAMETERS [pUserID] INTEGER, [pOffice] CHAR; 
UPDATE YourTableName 
SET YourTableName.Show = True 
WHERE YourTableName.UserID = [pUserID] AND YourTableName.Office = [pOffice];


Для получения более подробной информации, пожалуйста, смотрите:
Объявление параметров (Microsoft Access SQL) | Microsoft Docs[^]
Типы данных SQL (Access desktop database reference) | Microsoft Docs[^]
Использование параметров в запросах, формах и отчетах - доступ[^]