|
|
|
| господа, к Вам за помощь пришел.
есть список авто в табличной форме, присвоение паковочного места из выподающнго списка. как сделать если место присвоенно одной записе то в следующей записи в выподающем списке этого номера паркрвки небыло. | |
|
| |
|
|
|
| Исключить из источника списка и обновить список. | |
|
| |
|
|
|
| Исключить из источника списка и обновить список.
Или добавить поле . "занято". А в источнике списка фильтр занято=ложь.
Список обновлять при каждом выборе.
Сорри за повтор. | |
|
| |
|
|
|
| в том и вопрос как исключить из списка? | |
|
| |
|
|
|
| Что является источником списка? Таблица или запрос.
Наилучшее решение все-таки добавить поле "Занято" и после выбора обновить источник данных для списка.
Например, запрос -источник
SELECT ID,NOMERMESTA,ZANATO FROM TABLICA WHERE ZANATO=FALSE;
Изначально все ZANATO - false.
После обновления запрос
"UPDATE TABLICA SET ZANATO=TRUE WHERE ID=" & СПИСОК.Column(0) & ";"
Список.requery. И все вроде.
Правда, здесь не учтена возможная смена мест парковки.
Например, если захотите изменить уже занятое место.
Тут логику надо посложнее.
Типа если место занятое ранее меняется на другое
Сначала - освободить первое, потом занять новое.
Выложите базу примерчик с таблицей. Будет проще
Ибо удалять из таблицы использованное место нельзя.
А запрос, учитывающий все занятые (без поля занято), будет сложным. | |
|
| |
|
|
|
| сдается мне что поле со списком сделано на уровне таблицы | |
|
| |
|
10 Кб. |
|
| Ну и что.
Можно подправить.
Вот я прикинул ( табличная форма)
Option Compare Database
Option Explicit
Dim TEKID%
Private Sub Form_Current()
TEKID = Me.NOMER 'это ваш список
End Sub
Private Sub nomer_AfterUpdate()
If TEKID <> Me.NOMER Then
CurrentDb.Execute ("UPDATE Tablmestaparkodri SET ZANATO=FALSE WHERE ID=" & TEKID & ";")
CurrentDb.Execute ("UPDATE Tablmestaparkodri SET ZANATO=TRUE WHERE ID=" & Me.NOMER.Column(0) & ";")
Me.NOMER.Requery
End If
End Sub
'Таблица Tablmestaparkodri
'ID - идентификатор места
'NOMER - номер места
'ZANATO - да/нет
'Таблица авто-место
'Ida - идентификатор авто
'NOMER - номер места 'это список с источником
'на форме
'Ida - идентификатор авто
'NOMER - 'это список с источником
'SELECT Tablmestaparkodri.ID, Tablmestaparkodri.NOMER, Tablmestaparkodri.zanato FROM Tablmestaparkodri WHERE (((Tablmestaparkodri.zanato)=False));
'остальные поля по усмотрению
'к Ida можно привязать марку, владельца и т.п.
| -> скрин
для корректности присоед.столбец - 2 - номер. | |
|
| |
|
|
|
| да парковки сделаны таблицей. делать поле занято не хорошо. В таблице есть значение 0 т.е. машине место не присвоенно. | |
|
| |
|
|
|
| А причем здесь машины? Таблицы-то разные. НЕТ?
Есть таблица машины - у нее или есть парковка или нет
Есть таблица парковки - они или заняты или свободны.
Что-то со структурой у вас не-то. | |
|
| |
|
50 Кб. |
|
| на форме это выглядит так ( сделано просто и примитивно, спасибо, что думали иначе :)) | |
|
| |
|
|
|
| И все-таки. Что является источником для парковок?
Я думал ОТДЕЛЬНАЯ таблица, а у вас , похоже, нумерованный список от 1 до N.
Тогда как вы решаете вопрос смены парковок?
Или это невозможно в жизни? | |
|
| |
|
|
|
| источник строк в выпадающ. списке таблица, и если меняютя номера парковочных мест в таблице парковок их изменяю(это проихходить крайне редко почти ни когда), а потом потом выбираю какое авто где стоит(а машины переставляются переодически. былобы удобно видеть какие место еще свободны. | |
|
| |
|
|
|
| Тогда не понятно, чем не устраивает мой подход. Почему нельзя добавить поле "занято".
Может поразмыслите?
Извините, вынужден закончить. Я с работы. Пора домой. | |
|
| |
|
|
|
|
| Тогда так
SELECT Tablmestaparkodri.ID, Tablmestaparkodri.NOMER FROM Tablmestaparkodri WHERE (((Tablmestaparkodri.NOMER) Not In (select nomer from Таблицаpark where Таблицаpark.nomer=Tablmestaparkodri.nomer)));
надо подкорректировать по ваши таблицы | |
|
| |
|
|
|
| Спасибо, Дядя Федор, все получилось простым запросом. Не понимаю почему вчера не получалось, загадка. Еще раз - спасибо большое. | |
|
| |
|
|
|
| Ok | |
|
| |