|
|
|
Ключевое поле в Excel
|
|||
|---|---|---|---|
|
#18+
Знаю знаю - надо пользовать акцесс и не пытаться присобачить к ёкселю то чего там отродясь не было. Тем не менее так уж сложилось. Такой вопрос: как сделать ограничение на ввод данных в столбец, так что бы в каждой ячейке было уникальное значение, а при попытке ввести то что уже есть в одной из ячеек столбца - выдавалось бы предупреждение? (ввод может осуществляться не только в конце, но и в любом ячейке столбца). P.S.: Excel 2007. Столбец используется как ключ, в ячейках проставлены уникальные идентификаторы проставляемые вручную... Кстати... Попутно возник еще один вопрос. Идентификатор представляет из себя буквенно-цифровой шифр с изменяемой и неизменяемой частью. Например 80МАТ27, где 80МАТ - постоянная часть, 27 - изменяемая представляющая собой порядковый номер вводимой записи. (просто по порядку ввода). Возможно ли сделать так чтобы при выводе предупреждения выдавался следующий не занятый порядковый номер? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2011, 06:47 |
|
||
|
Ключевое поле в Excel
|
|||
|---|---|---|---|
|
#18+
простите не понял. Как это поможет ограничить ввод значения повторно? Если просто автоматизировать присвоение номера по номеру строки то может получится такая бяка: Бывает я вставляю строку в середину набранной таблицы. В таком случае все номера сдвинутся на эту строку, при том что в связанных таблицах в ссылках на идентификаторы останется старый номер. И капец. Вся целостность полетела к чертям. Или я чего-то не понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2011, 10:31 |
|
||
|
Ключевое поле в Excel
|
|||
|---|---|---|---|
|
#18+
Ну и еще. Часто приходится тусовать записи, перемещая их выше или ниже. Все таки хотелось бы что бы идентификатор присвоеный раз был присвоен на всегда, где бы запись ни находилась, вплоть до ее уничтожения. То что идентификаторы в итоге будут разбросаны беспорядочно по столбцу не страшно. Это служебный столбец который можно скрыть. Для порядка есть просто номер позиции - вот там все по порядку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2011, 10:35 |
|
||
|
Ключевое поле в Excel
|
|||
|---|---|---|---|
|
#18+
ИзерлонерИли я чего-то не понимаю?ага ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2011, 11:38 |
|
||
|
Ключевое поле в Excel
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2011, 11:50 |
|
||
|
Ключевое поле в Excel
|
|||
|---|---|---|---|
|
#18+
Меню Данные-Проверка-Параметры-Тип_данных(другой)-Формула (для В1 ): =СЧЁТЕСЛИ($B$1:$B$100;B1)=1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2011, 15:09 |
|
||
|
Ключевое поле в Excel
|
|||
|---|---|---|---|
|
#18+
kuklp, Суть примерно понял. не понял почему custom.dokument.properties в середине условия было присвоено значение "_" (получается что для каждого с присваивается одно и то же значение "_+1" 8-0 что ли), и вообще что это за свойство такое. Попытался сделать макрос с этим кодом - при выполнении выдает ошибку как раз на custom.doc...prop... Ногами прошу не пинать. В vba я пока ноль. Что ж, пойду грызть гранит науки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2011, 15:15 |
|
||
|
Ключевое поле в Excel
|
|||
|---|---|---|---|
|
#18+
vikttur, Благодарю. Кажется именно то что надо. ... если применить по всему столбцу сразу - сильно грузит комп? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2011, 16:11 |
|
||
|
Ключевое поле в Excel
|
|||
|---|---|---|---|
|
#18+
Изерлонер, Сначала надо задать это свойство. Я полагаю, в Вашей таблице уже есть номерованные пункты. Нужно цифру максимального из них+1. См скрин. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2011, 16:36 |
|
||
|
Ключевое поле в Excel
|
|||
|---|---|---|---|
|
#18+
kuklp, а такой код заново позволит вставить ранее удаленное значение "ключа", это ничего? вопрос: на этот "ключ" случайно не ссылается другая таблица? а то после удаления и повторной вставки "ключа" сслылка будет не туда. типа таблица1: "М" ид фамилия 1 Иванов 2 Петров 3 Сидоров а в соседней таблице "Ж" ид_м фамилия 1 Иванова 2 Петрова 3 Сидорова теперь удаляю из "М" строку "2 Петров" если бы ид=2 запретили повторно использовать, осталась бы Петрова без мужа, все ок. а теперь я вставлю в "М" заново ид=2: 2 Какашкин и теперь таблица "Ж" будет ссылаться куда? у Петровой муж станет Какашкиным!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2011, 17:52 |
|
||
|
Ключевое поле в Excel
|
|||
|---|---|---|---|
|
#18+
это было к тому, что в нормальных бд для таких целей используют sequence, identity, как угодно назовите, но смысл тот, что последнее введенное значение где-то запомнено и следующее генерится больше, чем это запомненное. нет гарантии отсутствия дыр, но есть гарантия неповторяемости + номера монотонно возрастают. как реализовать в Экселе -- не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2011, 18:31 |
|
||
|
Ключевое поле в Excel
|
|||
|---|---|---|---|
|
#18+
wf_to_boэто было к тому, что в нормальных бд для таких целей используют sequence, identity, как угодно назовите, но смысл тот, что последнее введенное значение где-то запомнено и следующее генерится больше, чем это запомненное. нет гарантии отсутствия дыр, но есть гарантия неповторяемости + номера монотонно возрастают. как реализовать в Экселе -- не знаю.Я Вам показал, как реализовать. Неужели трудно самому попробовать? Последнее введенное + 1 как раз и запоминается в ActiveWorkbook.CustomDocumentProperties(1). И если удалить несколько строк, то их ключи уже никогда не появятся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2011, 18:40 |
|
||
|
Ключевое поле в Excel
|
|||
|---|---|---|---|
|
#18+
kuklp, ой, простите, это не Вам ответ был. это был коммнет к решению vikttur, потому как его одобрил ТС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2011, 18:43 |
|
||
|
Ключевое поле в Excel
|
|||
|---|---|---|---|
|
#18+
Изерлонерне понял почему custom.dokument.properties в середине условия было присвоено значение "_" In VBA and Visual Basic Scripting Edition (VBScript) code, you break a line by using the line-continuation character — an underscore (_) preceded by a space. You use line breaks to make sure that your code does not extend beyond the right edge of the Code window (usually about 60 characters). (поздравляю, я тоже в vba 0) кстати, можно решение vikttur переделать через максимум, если надо, могу выложить (только мне кажется, у меня вообще полное уродство -- при вводе нового каждый раз пересчитывается максимум -- ну нормально ли??? зато с целостностью все ок) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2011, 00:02 |
|
||
|
Ключевое поле в Excel
|
|||
|---|---|---|---|
|
#18+
wf_to_bo, А если удалить строку с макс значением, что насчитается? Отож. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2011, 12:16 |
|
||
|
|

start [/forum/topic.php?fid=61&fpage=124&tid=2176621]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 368ms |

| 0 / 0 |
