Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Ключевое поле в Excel / 18 сообщений из 18, страница 1 из 1
28.07.2011, 06:47
    #37370149
Изерлонер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ключевое поле в Excel
Знаю знаю - надо пользовать акцесс и не пытаться присобачить к ёкселю то чего там отродясь не было. Тем не менее так уж сложилось. Такой вопрос: как сделать ограничение на ввод данных в столбец, так что бы в каждой ячейке было уникальное значение, а при попытке ввести то что уже есть в одной из ячеек столбца - выдавалось бы предупреждение? (ввод может осуществляться не только в конце, но и в любом ячейке столбца).
P.S.: Excel 2007. Столбец используется как ключ, в ячейках проставлены уникальные идентификаторы проставляемые вручную... Кстати... Попутно возник еще один вопрос. Идентификатор представляет из себя буквенно-цифровой шифр с изменяемой и неизменяемой частью. Например 80МАТ27, где 80МАТ - постоянная часть, 27 - изменяемая представляющая собой порядковый номер вводимой записи. (просто по порядку ввода). Возможно ли сделать так чтобы при выводе предупреждения выдавался следующий не занятый порядковый номер?
Спасибо.
...
Рейтинг: 0 / 0
28.07.2011, 10:12
    #37370305
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ключевое поле в Excel
=строка()
...
Рейтинг: 0 / 0
28.07.2011, 10:31
    #37370337
Изерлонер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ключевое поле в Excel
простите не понял. Как это поможет ограничить ввод значения повторно? Если просто автоматизировать присвоение номера по номеру строки то может получится такая бяка: Бывает я вставляю строку в середину набранной таблицы. В таком случае все номера сдвинутся на эту строку, при том что в связанных таблицах в ссылках на идентификаторы останется старый номер. И капец. Вся целостность полетела к чертям. Или я чего-то не понимаю?
...
Рейтинг: 0 / 0
28.07.2011, 10:35
    #37370350
Изерлонер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ключевое поле в Excel
Ну и еще. Часто приходится тусовать записи, перемещая их выше или ниже. Все таки хотелось бы что бы идентификатор присвоеный раз был присвоен на всегда, где бы запись ни находилась, вплоть до ее уничтожения. То что идентификаторы в итоге будут разбросаны беспорядочно по столбцу не страшно. Это служебный столбец который можно скрыть. Для порядка есть просто номер позиции - вот там все по порядку.
...
Рейтинг: 0 / 0
28.07.2011, 11:38
    #37370521
PlanB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ключевое поле в Excel
ИзерлонерИли я чего-то не понимаю?ага
...
Рейтинг: 0 / 0
28.07.2011, 11:50
    #37370551
kuklp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ключевое поле в Excel
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Public Sub www()
    Dim c As Range, r As Range
    Set r = Intersect(ActiveSheet.UsedRange, Columns( 1 ))
    For Each c In r
        If c.Value = "" Then
        c.Value = "80МАТ" & ActiveWorkbook.CustomDocumentProperties( 1 )
        ActiveWorkbook.CustomDocumentProperties( 1 ) = _
        ActiveWorkbook.CustomDocumentProperties( 1 ) +  1 
        End If
    Next
End Sub
...
Рейтинг: 0 / 0
28.07.2011, 15:09
    #37371039
vikttur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ключевое поле в Excel
Меню Данные-Проверка-Параметры-Тип_данных(другой)-Формула (для В1 ):
=СЧЁТЕСЛИ($B$1:$B$100;B1)=1
...
Рейтинг: 0 / 0
28.07.2011, 15:15
    #37371060
Изерлонер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ключевое поле в Excel
kuklp,

Суть примерно понял. не понял почему custom.dokument.properties в середине условия было присвоено значение "_" (получается что для каждого с присваивается одно и то же значение "_+1" 8-0 что ли), и вообще что это за свойство такое.
Попытался сделать макрос с этим кодом - при выполнении выдает ошибку как раз на custom.doc...prop...
Ногами прошу не пинать. В vba я пока ноль. Что ж, пойду грызть гранит науки.
...
Рейтинг: 0 / 0
28.07.2011, 16:11
    #37371209
Изерлонер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ключевое поле в Excel
vikttur,

Благодарю. Кажется именно то что надо.
... если применить по всему столбцу сразу - сильно грузит комп?
...
Рейтинг: 0 / 0
28.07.2011, 16:36
    #37371280
kuklp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ключевое поле в Excel
Изерлонер,

Сначала надо задать это свойство. Я полагаю, в Вашей таблице уже есть номерованные пункты. Нужно цифру максимального из них+1. См скрин.
...
Рейтинг: 0 / 0
28.07.2011, 17:52
    #37371455
wf_to_bo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ключевое поле в Excel
kuklp,
а такой код заново позволит вставить ранее удаленное значение "ключа", это ничего?
вопрос: на этот "ключ" случайно не ссылается другая таблица?
а то после удаления и повторной вставки "ключа" сслылка будет не туда.
типа
таблица1: "М"
ид фамилия
1 Иванов
2 Петров
3 Сидоров

а в соседней таблице "Ж"
ид_м фамилия
1 Иванова
2 Петрова
3 Сидорова

теперь удаляю из "М" строку "2 Петров"

если бы ид=2 запретили повторно использовать, осталась бы Петрова без мужа, все ок.
а теперь я вставлю в "М" заново ид=2:
2 Какашкин

и теперь таблица "Ж" будет ссылаться куда?
у Петровой муж станет Какашкиным!!!
...
Рейтинг: 0 / 0
28.07.2011, 18:31
    #37371555
wf_to_bo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ключевое поле в Excel
это было к тому, что в нормальных бд для таких целей используют sequence,
identity, как угодно назовите, но смысл тот, что последнее введенное значение где-то запомнено и следующее генерится больше, чем это запомненное. нет гарантии отсутствия дыр, но есть гарантия неповторяемости + номера монотонно возрастают.
как реализовать в Экселе -- не знаю.
...
Рейтинг: 0 / 0
28.07.2011, 18:40
    #37371567
kuklp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ключевое поле в Excel
wf_to_boэто было к тому, что в нормальных бд для таких целей используют sequence,
identity, как угодно назовите, но смысл тот, что последнее введенное значение где-то запомнено и следующее генерится больше, чем это запомненное. нет гарантии отсутствия дыр, но есть гарантия неповторяемости + номера монотонно возрастают.
как реализовать в Экселе -- не знаю.Я Вам показал, как реализовать. Неужели трудно самому попробовать? Последнее введенное + 1 как раз и запоминается в ActiveWorkbook.CustomDocumentProperties(1). И если удалить несколько строк, то их ключи уже никогда не появятся.
...
Рейтинг: 0 / 0
28.07.2011, 18:43
    #37371575
wf_to_bo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ключевое поле в Excel
kuklp,

ой, простите, это не Вам ответ был.
это был коммнет к решению vikttur,
потому как его одобрил ТС.
...
Рейтинг: 0 / 0
29.07.2011, 00:02
    #37371915
wf_to_bo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ключевое поле в Excel
Изерлонерне понял почему 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 переделать через максимум, если надо, могу выложить
(только мне кажется, у меня вообще полное уродство -- при вводе нового каждый раз пересчитывается максимум -- ну нормально ли???
зато с целостностью все ок)
...
Рейтинг: 0 / 0
29.07.2011, 12:16
    #37372481
kuklp
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ключевое поле в Excel
wf_to_bo,

А если удалить строку с макс значением, что насчитается? Отож.
...
Рейтинг: 0 / 0
30.07.2011, 00:01
    #37373692
wf_to_bo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ключевое поле в Excel
kuklp,
уел
...
Рейтинг: 0 / 0
01.08.2011, 15:30
    #37375391
-O_o-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ключевое поле в Excel
Изерлонер
может поможет мой пример. Посмотрите (добавление департамента)
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Ключевое поле в Excel / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]