|
|
|
Поле со списком не работает!
|
|||
|---|---|---|---|
|
#18+
У меня есть поле со списком для года. Суть - надо, чтобы в поле со списком выбирался год (причем у меня есть 20 записей для 2001 года, 40 записей для 2002 года) и надо, чтобы этот год показывался только один раз, т.е. один раз показывался 2001 год, 1 раз показывался 2002 год и т.д. (а Год показывается много раз) и есть второе поле со списком (для Товаров), в котором для выбранного года должны показываться соответствующие записи Товаров. для поля со списком Год, на AfterUpdate пишу: Private Sub Год_AfterUpdate() Dim rst As Recordset, frm As Form Set frm = Me.Подформа.Form Set rst = frm.RecordsetClone rst.FindFirst "([Год]=# " & Format(Me.Год, "yyyy") & "#)" If rst.NoMatch = False Then frm.Bookmark = rst.Bookmark Me.Товар = rst!Товар Else MsgBox "Нет данных!" End If Exit Sub End Sub Ругается на: Me.Год, "yyyy" Подскажите пожалуйста, что надо исправить, чтобы работало так, как надо? В таблице, поле Год является текстовым полем, может быть по этому Access не хочет понимать формат "yyyy". :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2003, 22:56 |
|
||
|
Поле со списком не работает!
|
|||
|---|---|---|---|
|
#18+
мож # лишние? год то у тя строковый ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2003, 23:00 |
|
||
|
Поле со списком не работает!
|
|||
|---|---|---|---|
|
#18+
Конечно, лишние. Это же какой-нибудь Integer или Long, а не дата. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2003, 23:06 |
|
||
|
Поле со списком не работает!
|
|||
|---|---|---|---|
|
#18+
Спасибо за совет - # убрал, но Access все равно ругается на ту же строку. А еще мне бы сделать так, чтобы год отображался не по 20 раз для каждого года, а только один раз. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2003, 23:06 |
|
||
|
Поле со списком не работает!
|
|||
|---|---|---|---|
|
#18+
И формат по yyyy тоже не получится. По той же причине. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2003, 23:06 |
|
||
|
Поле со списком не работает!
|
|||
|---|---|---|---|
|
#18+
А чтобы каждый год показывался один раз, надо, чтобы в селекте у подформы было group by по году. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2003, 23:08 |
|
||
|
Поле со списком не работает!
|
|||
|---|---|---|---|
|
#18+
Я вообще - то примерно так и думал, что "yyyy" не получится (но в тайне надеялся, что боги Access все-таки помогут мне решить данную задачу). :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2003, 23:10 |
|
||
|
Поле со списком не работает!
|
|||
|---|---|---|---|
|
#18+
но в тайне надеялся, что боги Access все-таки помогут мне решить данную задачу а простым земным, можно отвечать? скажи как у тебя в Me.Год год выглядет - это раз ты его форматируешь .... и что у тебя в источнике строк для списка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2003, 08:15 |
|
||
|
Поле со списком не работает!
|
|||
|---|---|---|---|
|
#18+
В источнике строк: SELECT [Запрос].[Год] FROM [Запрос] GROUP BY [Запрос].[Год]; А Год выводится в формате 2001, 2002 и т.п. ( формат YYYY ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2003, 08:38 |
|
||
|
Поле со списком не работает!
|
|||
|---|---|---|---|
|
#18+
ну и усё правильно .... а во второй список поставь SELECT запрос.товар, запрос.год FROM запрос WHERE запрос.год=forms!frmObKs!Год а в Private Sub Год_AfterUpdate() Me.ПолеСоСпискомТовара.Requery End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2003, 08:52 |
|
||
|
Поле со списком не работает!
|
|||
|---|---|---|---|
|
#18+
В принципе эту строку с датой можно преобразовать в нормальную дату с помощью DateValue, а потом уж задавать нужные форматы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2003, 10:02 |
|
||
|
Поле со списком не работает!
|
|||
|---|---|---|---|
|
#18+
обычно хранят дату операции в формате даты и необходимости хранить год в отдельном поле нет ... в этом случае для поля со списком можно задать такой источник: MYCOMBO.ROWSOURCE = "SELECT DISTICT(YEAR(operation_date)) from MyTable " или я чего то не догоняю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2003, 10:12 |
|
||
|
Поле со списком не работает!
|
|||
|---|---|---|---|
|
#18+
DISTI N CT очепятка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2003, 10:13 |
|
||
|
Поле со списком не работает!
|
|||
|---|---|---|---|
|
#18+
Спасибо большое за советы. Сделал так: Private Sub Год_AfterUpdate() Dim rst As Recordset, frm As Form Set frm = Me.Подформа.Form Set rst = frm.RecordsetClone Год.RowSource = "SELECT DISTINCT (Год(operation_date)) from Запрос " If rst.NoMatch = False Then frm.Bookmark = rst.Bookmark Me.Товар.Requery Else MsgBox "Нет данных!" End If Exit Sub End Sub Для второго поля со списком для товаров сделал: На AfterUpdate: Private Sub Товар_AfterUpdate() recordFind End Sub На Enter: Private Sub Товар_Enter() Me.Товар.RowSource = "SELECT Товар FROM [Запрос] WHERE (((Год)=[Forms]! [Моя форма]![Год]));" End Sub И опять не работает: Ругается на: Me.Товар.RowSource Подскажиет пожалуйста, что я опять неправильно сделал? :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2003, 19:21 |
|
||
|
Поле со списком не работает!
|
|||
|---|---|---|---|
|
#18+
Лишний пробел после воскл.знака. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2003, 13:45 |
|
||
|
Поле со списком не работает!
|
|||
|---|---|---|---|
|
#18+
Спасибо! Пробел убрал - но не помогло, опять ругается на ту же строку. Private Sub Товар_Enter() Me.Товар.RowSource = "SELECT Товар FROM [Запрос] WHERE (((Год)=[Forms]![Моя форма]![Год]));" End Sub Access пишет: "Method or data member not found". Подскажите пожалуйста, что у меня опять неправильно? :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2003, 22:48 |
|
||
|
Поле со списком не работает!
|
|||
|---|---|---|---|
|
#18+
Очччччень прошу, помогите пожалуйста! Неужели никто не знает ответ на мой вопрос!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2003, 16:55 |
|
||
|
Поле со списком не работает!
|
|||
|---|---|---|---|
|
#18+
Единственное, что приходит в голову, - это предположение, что Товар - это не комбобокс и не листбокс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2003, 17:03 |
|
||
|
Поле со списком не работает!
|
|||
|---|---|---|---|
|
#18+
Не, Товар это точно поле со списком (комбобокс). С головой у меня, пока что, все в порядке. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2003, 17:10 |
|
||
|
Поле со списком не работает!
|
|||
|---|---|---|---|
|
#18+
Попробуй сделать так: Код: plaintext 1. 2. И вообще, я из кода обычно все лишние скобки убираю, а то не разберешься потом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2003, 17:57 |
|
||
|
Поле со списком не работает!
|
|||
|---|---|---|---|
|
#18+
Спасибо большое за совет. Написал: Me.Товар.RowSource = "SELECT Товар FROM [Запрос] WHERE Год=" & [Forms]![Моя форма]! [Год] Access ругается на [Год] ????? Что за ***! Есть ли справедливость на этом свете? Неужели моя форма так никогда и не будет работать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2003, 18:43 |
|
||
|
Поле со списком не работает!
|
|||
|---|---|---|---|
|
#18+
сделай так где-то dim dddd as string тут ddd="SELECT Товар FROM [Запрос] WHERE Год=" & [Forms]![Моя форма]![Год] debug.print ddd Me.Товар.RowSource = ddd и посмотри , что у тебя получеется в ddd ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2003, 20:25 |
|
||
|
Поле со списком не работает!
|
|||
|---|---|---|---|
|
#18+
А как посмотреть, что получилось в ddd (ч/з Immediate не получилось)? Ругается на: Me.Товар.RowSource = ddd В Add Watch для ddd: Value: Can't compile module Type: Empty P.S. Наверно надо dim ddd as string а не dim dddd as string ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2003, 20:43 |
|
||
|
Поле со списком не работает!
|
|||
|---|---|---|---|
|
#18+
ну да 3-4 d .... сэм-восэм конечно dim ddd as string посмотреть Ctrl+d ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2003, 21:22 |
|
||
|
Поле со списком не работает!
|
|||
|---|---|---|---|
|
#18+
Gyslik: Смотрим пост от 28-ноя-03 19:21 (1) в первом случае (для контрола Год) вы пишете: Год.RowSource = "SELECT DISTINCT ( Год(operation_date) ) from Запрос" (2) во втором (для контрола Товар): Me.Товар.RowSource = "SELECT Товар FROM [Запрос] WHERE (( (Год) =[Forms]! [Моя форма]![Год]));" У вас в [Запрос] есть поле [Год]? Или вы просто забыли указать во втором случае аргументы для функции Год()? Если следовать логике п. (1), т.к. похоже, что вы воспользовались советом АлексейК в посте от 28-ноя-03 10:12, то, по-моему, строка для п. (2) выше должна выглядеть так: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2003, 06:05 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32337257&tid=1677912]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
74ms |
get tp. blocked users: |
2ms |
| others: | 249ms |
| total: | 427ms |

| 0 / 0 |
