Страницы: 1
RSS
Форма для поиска и редактирования записи
 
Уважаемые форумчане!  
Прошу помощи в разработке формы, позволяющей найти запись в таблице и отредактировать ее.  
Поля таблицы следующие: №;Название;Категория;Подкатегория(товара);Страна;Вес;Магазин;ДатаПоставки;Примечание.  
Нужно, чтобы при помощи фильтров "Категория", "Подкатегория", "Страна" и "Дата" сформировался список "Названий". При этом Подкатегория зависит от Категории, а фильтр по дате формируется как интервал дат (т.е. От и ДО).  
Далее мышью выделяется нужная запись в списке. И соответствующие поля формы заполняются значениями найденной записи. Пользователь может изменить значения любого поля и нажать кнопку "Внести изменения", что приведет к обновлению имеющейся в таблице строки.  
Было бы идеально, если б еще было поле для фильтрации названия, причем по любой части текста (например, чтобы было найдено "Апельсин" по строке "пел"). Но это уже - "бантики".
 
если что не так, подкорректируете...
 
прикрепилось вроде...
 
http://www.planetaexcel.ru/plex_features.php#AutoFilter_Criteria
 
Как-то создавал тему с подобным вопросом. До того момента тоже не знал, как сделать форму с корректировкой. Форум здорово помог.  
Особая благодарность ЮриюМ, которого я терзал по личке, за его терпение и отзывчивость.    
Обещал выложить в той теме пример формы, но тему потерял и так и не довел до конца обещалку. Исправляюсь. Пример черновой, не доработан, но  и тема подходящая, и человеку нужна помощь.  
В файле - форма для внесения в базу  записей, просмотра и корректировки этой же базы. Критикуйте, дорабатывайте, изучайте код, короче, пользуйтесь :)
 
Расписал, а пример не прикрепил :)  
Да, код в большинстве своем - или исходный от Юры, или подкорректированный под задачу.
 
Неправильно работает подсчет записей. Когда-то ковырялся и где-то поломал, если нужно, найду. И не обязательно я :)
 
И здесь вариант от Павла55 http://www.planetaexcel.ru/forum.php?thread_id=5515
 
Пример подобной программы (база данных с формой ввода и редактирования данных) можно найти здесь: http://excelvba.ru/entrant
 
To WW  
Спасибо. НО...  
К сожалению, нажатие на кнопку "Внести" не исправляет данные в строке.
 
To Vikttur  
Вам тоже сенк за помощь, но увы, я слишком слабый пользователь VBA, чтобы суметь воспользоваться Вашим решением ;(
 
kalle, у Вас ЧТО-ТО не получается, или Вы совсем не знаете, как это делается и не можете приспособить чужой пример под свои нужды?  
P.S. Почему в ассортименте так мало водки? Кто же возьмётся за такую задачу?
 
{quote}kalle, у Вас ЧТО-ТО не получается, или Вы совсем не знаете, как это делается и не можете приспособить чужой пример под свои нужды?  
{/quote}  
Скорее, совсем не знаю, как это сделать. Я неделю назад пришел к тому, что нужно к моей таблице прицеплять формы и начал тыкаться совершенно с нуля (учитывая нулевую подготовку в этой области). Простую форму для ввода данных я сделал (спасибо Уокенбаху), а вот с выбором из таблицы нужной записи для ее редактирования заплюхался.  
Чтобы не морочить народ с реальными данными, и выбрал столь любимую на форуме тему апельсинов.  
Но реально мне нужно, чтобы в форме поиска в фильтрах списки дейстивтельно были связанными.  
В варианте, предложенном WW, не работают списки в разделе "Редактирование активной записи" - это тоже неправильно.  
Господа, друзья, прошу мне помочь...
 
Таблица по своей структуре реальная? Т.е. к-во столбцов именно такое? Расположены они именно так?
 
{quote}{login=Юрий М}{date=01.09.2010 01:41}{thema=}{post}Таблица по своей структуре реальная? Т.е. к-во столбцов именно такое? Расположены они именно так?{/post}{/quote}  
Нет, это только примеры полей, по которым нужен фильтр для поиска. Реальных полей около 30, но для фильтра нужны следующие: "Территория размещения организации" (выбирается из справочника, т.е. из списка), "Тип организации" (выбирается из списка), "Вид организации" (тоже список, причем в каждом типе есть свои виды - вот они - связанные списки), "Форма собственности" (список), "Название" (текстовое) и "Дата создания". Поэтому при обращении к этим полям придется использовать их имена, а не номер столбца.  
И еще просьба: если возможно, комментируйте код, чтобы я хоть чуточку смог в нем разобраться и впоследствии мог что-то делать сам.  
Спасибо заранее
 
{quote}{login=kalle}{date=01.09.2010 01:36}{thema=Re: }{post}{quote}kalle, у Вас ЧТО-ТО не получается, или Вы совсем не знаете, как это делается и не можете приспособить чужой пример под свои нужды?  
{/quote}  
Скорее, совсем не знаю, как это сделать.  
Господа, друзья, прошу мне помочь...{/post}{/quote}  
kalle, я тоже совершенно не сталкивался с макросами. Но однажды показали файл и спросили, могу ли я сделать похожее. Сделал, и даже меньше и шустрее, чем образец. Не потому, что хороший специалист или шибко грамотный. VBA для меня до сих пор лес (уже не очень темный :) ) с открытыми полянами. Те крупицы знаний, которые есть, получил здесь, на форуме.  
Первое - желание сделать. Из-под палки ничего путного не выйдет. Второе - желание научиться. Читайте код, непонятно - по литературе, по справке, по поиску побегайте. Даже если ничего не найдете по задаче, много узнаете попутно.  
И уже после этого сюда за помощью.  
Если сделают работу вместо Вас, оно может работать. Но до первого сбоя. И если Вы сами не разберетесь хотя бы в основах, "поремонтировать" не сможете.  
Удачи :)
 
......
 
дополнил...  
 
p.s.    
" а фильтр по дате формируется как интервал дат (т.е. От и ДО)."  
 
с интервалом дат у меня глухо.Поищите в поиске,что-то подобное было
 
{quote}{login=ww}{date=01.09.2010 10:12}{thema=}{post}дополнил...  
 
{/post}{/quote}  
Спасибо большое! Ваш вариант в целом поможет. В том числе для того, чтобы самому разбираться. И вообще на этом форуме и на сайте я нашел много полезного для решения моих задач.    
Кстати, может кто подскажет приличную книжку по VBA, учитывая, что я не программист и впервые сталкиваюсь с программированием. Уокенбах, конечно, хорошо, но много там для меня чересчур.  
А что касается интервала дат - я на форуме пока не нашел ничего, что мне помогло бы. Увы.
 
В первый раз вижу, что в Cells(row,column) в качестве column оказывается можно указывать не номер столбца, а его букву:  
r = Cells(Rows.Count, "c").End(xlUp).Row    
иногда это удобно. Буду иметь в виду. Спасибо.  
Есть пара предложений:  
1. в Private Sub ComboBox1_Click() перед циклом For i = 2 To r надо вставить ComboBox2.Clear тогда будет обновляться список подкатегории при смене категории.  
2. Использовать для заполнения списков один из многочисленных предлагавшихся здесь методов унификации и сортировки. Ну, например, как предлагал ZVI  в своей "Функция уникального сортированного массива для ListBox и ComboBox" на http://www.planetaexcel.ru/forum.php?thread_id=10602
С уважением, Алексей (ИМХО: Excel-2003 - THE BEST!!!)
Страницы: 1
Читают тему
Наверх