Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 генератор кода  [new]
Alexander_P
Member

Откуда:
Сообщений: 75
Можно, конечно, и полем "счетчик" обойтись, но мне удобнее было бы чтобы можно было генерировать номер записи самому в отдельной форме.
Как я это вижу:
можно сделать табличку со счетчиком и еще одним полем, чтобы нажатие кнопки на форме добавляло запись в таблицу "счетчик", таким образом появится уникальный код счетчика, а затем, надо чтобы эта запись удалялась из таблицы (например при закрытии формы).

Я к сожалению, не знаю Вижуал Бейсик :( не подскажете как прописать такой алгоритм?

или мож другие варианты "генератора кода" ?
19 мар 07, 10:40    [3913454]     Ответить | Цитировать Сообщить модератору
 Re: генератор кода  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
Alexander_P
можно сделать табличку со счетчиком и еще одним полем, чтобы нажатие кнопки на форме добавляло запись в таблицу "счетчик", таким образом появится уникальный код счетчика, а затем, надо чтобы эта запись удалялась из таблицы (например при закрытии формы).
Если вашим замыслом подразумевается, что из этой таблицы всякий раз после добавления записи будут удаляться, то имейте ввиду, что после сжатия файла базы, счетчик в этой таблице снова начнет считать с 1.
19 мар 07, 10:46    [3913497]     Ответить | Цитировать Сообщить модератору
 Re: генератор кода  [new]
Alexander_P
Member

Откуда:
Сообщений: 75
да нормально, этот код нужен временно, чтобы однозначно идентифицировать запись до того момента пока не будет известен ИНН компании, который встанет на его место.

ТАк не подскажете, что мне нужно написать здесь

Private Sub Form_Close()

End Sub

чтобы запись удалилась?
19 мар 07, 10:55    [3913539]     Ответить | Цитировать Сообщить модератору
 Re: генератор кода  [new]
Bor-L
Member

Откуда: Земляной вал
Сообщений: 406
Если ИНН не известен на момент заполнения формы, ИМХО, лучше использовать временный код на основе текущей даты-времени, что и обеспечит уникальность, да и доп.таблицы не потребуется.
19 мар 07, 11:04    [3913623]     Ответить | Цитировать Сообщить модератору
 Re: генератор кода  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
Alexander_P
чтобы запись удалилась?
Если хотите удалить все записи, можно запросом:
CurrentDb.Execute "DELETE * FROM ИмяТаблицы"
19 мар 07, 11:16    [3913713]     Ответить | Цитировать Сообщить модератору
 Re: генератор кода  [new]
Alexander_P
Member

Откуда:
Сообщений: 75
А если одной компании будет соответсвовать несколько записей? Например, они звонили неделю назад и вчера. дата-время тогда для нее будут разные, стало быть в базе они будут как 2 разные компании. Код нужен для идентификации компании. К названию привязываться нехочу, потому как его можно написать с одной ошибкой и компания потеряется.
Да и искать по коду удобнее, чем по дате.
19 мар 07, 11:23    [3913787]     Ответить | Цитировать Сообщить модератору
 Re: генератор кода  [new]
Alexander_P
Member

Откуда:
Сообщений: 75
Karfaqen:
Если хотите удалить все записи, можно запросом:

CurrentDb.Execute "DELETE * FROM ИмяТаблицы"

а если только последнюю? или первую?
19 мар 07, 11:32    [3913838]     Ответить | Цитировать Сообщить модератору
 Re: генератор кода  [new]
Alexander_P
Member

Откуда:
Сообщений: 75
или чтоб новая запись сама создавалась при открытии формы или нажатии кнопки?
19 мар 07, 11:36    [3913860]     Ответить | Цитировать Сообщить модератору
 Re: генератор кода  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
Alexander_P
а если только последнюю? или первую?
Например явно указав уникальный код в условии отбора. А в общем случае - там где возникают вопросы порядка, необходимо вводить сортировку.
'произвольно по коду
DELETE * FROM Таблица1 WHERE Код=123
'последнюю
DELETE * FROM (SELECT TOP 1 * FROM Таблица1 ORDER BY Код DESC)
19 мар 07, 11:42    [3913898]     Ответить | Цитировать Сообщить модератору
 Re: генератор кода  [new]
Alexander_P
Member

Откуда:
Сообщений: 75
вроде работает, Спасибо!


Хотя в целом мне идея с этим генератором и разными кодами (сначала этот, потом ИНН) не очень нравится :( но других вариантов, к сожалению не вижу..

Надеюсь, что будет работать.

зы. На подскажете где поискать описание функций VBA на русском языке? ( хелп на английском - плохо понимаю )
19 мар 07, 11:53    [3913977]     Ответить | Цитировать Сообщить модератору
 Re: генератор кода  [new]
Larr`
Member

Откуда: у парня сирийская грусть?
Сообщений: 748
Александр, а почему Вы так стремитесь привязаться к естественному ключу? Пусть будет нормальный счетчик, зачем этот геморой...
19 мар 07, 12:03    [3914048]     Ответить | Цитировать Сообщить модератору
 Re: генератор кода  [new]
Bor-L
Member

Откуда: Земляной вал
Сообщений: 406
Лучше всего - Help к русскому Access 97 (если с английским проблемы)
19 мар 07, 12:27    [3914208]     Ответить | Цитировать Сообщить модератору
 Re: генератор кода  [new]
Alexander_P
Member

Откуда:
Сообщений: 75
Larr`
Александр, а почему Вы так стремитесь привязаться к естественному ключу? Пусть будет нормальный счетчик, зачем этот геморой...


Видимо вы правы, что-то я перемудрил.. Счетчка, наверное, будет вполне достаточно.. только вот как не допустить занесения в базу одной и той же компании несколько раз, пока неизвестен ИНН?
19 мар 07, 12:40    [3914295]     Ответить | Цитировать Сообщить модератору
 Re: генератор кода  [new]
Larr`
Member

Откуда: у парня сирийская грусть?
Сообщений: 748
Тут уже нужно полное описание задачи уже не столько для программирования, а для психовизульности

Можно использовать временную таблицу такой же структуры, как и используемая, в которую вносятся предварительные заявки. Писать там можно без ограничений. Форма под нее с хорошим поиском. А потом уже после полного оформления запись переносится в главную таблицу.
19 мар 07, 12:50    [3914360]     Ответить | Цитировать Сообщить модератору
 Re: генератор кода  [new]
Диам
Member

Откуда:
Сообщений: 1460
Вставлю свое умное слово :) Можно сделать ключом-счетчик, а поле ИНН - уникальным индексом с допустимыми пустыми полями - это для аксесовской таблицы. А для скуля - честно не знаю.
19 мар 07, 13:03    [3914479]     Ответить | Цитировать Сообщить модератору
 Re: генератор кода  [new]
Alexander_P
Member

Откуда:
Сообщений: 75
Так и сдеалал ))
ТОлько вот как обеспечить уникальность каждой компании в базе так и не придумал...
Видимо придется просто вводить правила заполнения :)


---------------
если есть информация где можно глянуть про поиск по фрагметну слова - буду благодарен
19 мар 07, 13:20    [3914604]     Ответить | Цитировать Сообщить модератору
 Re: генератор кода  [new]
Диам
Member

Откуда:
Сообщений: 1460
смотри на http://www.leadersoft.ru/ поиск в форме - там отличный поиск есть
или еще вот процедура, которую можно в отдельный модуль выложить и пользовать в разных формах
Public Sub FunSearch(SearchFld As Control, NameForSearch As String)
'для отображения записей удовлетворяющих условию
'эту функцию надо ставить на событие изменения в поле SearchFld
'SearchFld - поле которое задаёт условие поиска
'NameForSearch - имя поля по которому создается фильтр (в котором ищем)
Dim srch As String
  With SearchFld
    .Parent.Painting = False 'отключаем прорисовку формы
    SearchFld.Value = .Text 'делаем значение поля поиска = введенному в него тексту
    srch = .Text 'запоминаем введенный текст
    If SearchFld = "" Then 'если искать нечего, то
      .Parent.FilterOn = False 'убираем фильтр
      .SetFocus 'переводим фокус снова на поле ввода строки поиска
      GoTo exPnt 'выходим из процедуры
    End If
    .Parent.Filter = NameForSearch & " Like '" & srch & "*'" 'формируем фильтр для формы
    .Parent.FilterOn = True 'включаем фильтр
    .SelStart = 255 'ставим курсор на после крайнего введенного символа
exPnt:  .Parent.Painting = True 'включаем прорисовку формы
  End With
End Sub
19 мар 07, 14:33    [3915081]     Ответить | Цитировать Сообщить модератору
 Re: генератор кода  [new]
evgen_travolta
Member

Откуда:
Сообщений: 90
Alexander_P
Так и сдеалал ))
ТОлько вот как обеспечить уникальность каждой компании в базе так и не придумал...
Видимо придется просто вводить правила заполнения :)


---------------
если есть информация где можно глянуть про поиск по фрагметну слова - буду благодарен


в справке смотри Like
19 мар 07, 14:35    [3915095]     Ответить | Цитировать Сообщить модератору
 Re: генератор кода  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27548
Alexander_P
ТОлько вот как обеспечить уникальность каждой компании в базе так и не придумал...
Видимо придется просто вводить правила заполнения :)


Вот здесь был любопытный топик. В том числе затрагивалась уникальность имен
19 мар 07, 14:42    [3915143]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить