Создайте выпадающий список лет в Access 2007 - PullRequest
1 голос
/ 05 января 2011

Как бы я создал выпадающий список лет (скажем, между NOW 2011 и 100 лет назад), чтобы пользователь мог затем выбрать подходящий год.

Буду очень признателен за любые советы или указатели.

Приветствия

Ноэль

РЕДАКТИРОВАТЬ Решение:

На всякий случай, если кому-то это понадобится, в коде Филиппа было несколько мелких ошибок, для меня работает следующее:

Dim myYearArray(100) As String, myYearList As String, i As Integer

For i = 0 To 100
    myYearArray(i) = CStr(Year(DateAdd("yyyy", i * -1, Date)))
Next i
myYearList = Join(myYearArray, ";")

MyForm.MyCmbBox.RowSource = myYearList

Ответы [ 3 ]

2 голосов
/ 05 января 2011

Бет дала вам часть ответа, но чтобы быть более конкретным: установите для свойства Rowsource вашего поля со списком таблицу Years (или инструкцию SQL, которая выбирает этот столбец из этой таблицы - возможно, с другими столбцами такжев зависимости от того, что вы хотите с ним делать).Вы можете установить источник управления в другом месте, чтобы сохранить выбор пользователя.

2 голосов
/ 06 января 2011

Допустим, что элемент управления, который вы хотите заполнить, называется myYear, а его тип источника строк установлен в «список значений». Вам просто нужно сгенерировать его источник строк в виде строки, где значения разделены знаком «;». Вы могли бы сделать это так:

Dim myYearArray(100) as string, myYearList as string, i as integer

for i = 1 to 100
    myYearList(i) = cstr(year(dateAdd("yyyy", i * -1,date()))
next i
myYearList = join(myYearList,";")
myForm.myYear.rowSource = myYearList

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

2 голосов
/ 05 января 2011

Положите нужные годы в раскрывающемся списке в таблице и свяжите раскрывающийся список с таблицей.

...