Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите плиз по access 2007
 
 автор: vipolitov   (12.12.2011 в 18:58)   личное сообщение
26 Кб.
 
 

Обстоятельства сложились таким образом что пришлось создавать базу данных по учету аварийности на предприятии. Все бы ничего если бы не два минуса: 1. Я Полный чайник в ACCESS, 2. Предприятие с большим парком автомобилей и своеобразной спецификой их эксплуатации.
от сюда возникло несколько проблемм:

1.)База заполняется сейчас как обычно из формы, вот только необходимо сделать одну особенность Занесение в базу должно происходить не постепенно (по мере заполнения полей) а за 1 раз только после того как заполнится форма целиком
Видится тут нужно писать макрос для добавления значений из формы в соответствующие графы таблицы БД. Вот тут у меня не хватает познаний.

2.) Как реализовать функцию автоподстановки при которой из одной таблицы будут автоматически подставляться данные в другую, сввязанную с ней по ключ полю?.

  Ответить  
 
 автор: snipe   (12.12.2011 в 19:19)   личное сообщение
 
 

для общего понимания
1) данные в базу вносятся как раз не по мере заполнения полей, а при возникновении определенных событий - таких как сохранить запись, перейти на другую запись, закрыть форму ну и некоторых других, что бы юзеры заполняли все поля делают следующее:
либо ставят все поля обязательными к заполнению (есть такое свойство у поля), но мне такой подход не нравится,
либо делают проверку полей на заполненность и вызывают проверку при возникновении события предполагающего сохранение записи

2) вам поможет поле со списком (комбобокс kombobox) у него есть возможность показывать одно а в таблу заносить другое

  Ответить  
 
 автор: vipolitov   (12.12.2011 в 19:32)   личное сообщение
 
 

дело в том что делать поля обязательными а так же проверку на заполнение не получится так как на момент первичного заполнения некоторые поля могут оставаться пустыми. Сохранение должно происходить именно по нажатию кнопки сохранить запись. Сохранение по закрытию формы не желательно, так как появляются не нужные записи.
А вот на счет поля со списком я наверное не правильно выразился. Основная и справочная таблицы связаны между собой, при введении одного поля в основную таблицу, несколько других автоматически подставляются из справочной!

  Ответить  
 
 автор: osmor   (12.12.2011 в 20:05)   личное сообщение
 
 

Определитесь
или

Занесение в базу должно происходить не постепенно (по мере заполнения полей) а за 1 раз только после того как заполнится форма целиком


или

так как на момент первичного заполнения некоторые поля могут оставаться пустыми

  Ответить  
 
 автор: vipolitov   (12.12.2011 в 20:13)   личное сообщение
 
 

Сорри, не корректно выразился. Занесение должно происходить только при нажатии кнопки "сохранить" (когда оператор сочтет то что заполнять больше нечего) занесение в базу по закрытию формы не подходит.

  Ответить  
 
 автор: snipe   (13.12.2011 в 05:28)   личное сообщение
 
 

1) вариант вижу такой
две формы
одна для просмотра и поиска внесенной информации - вид табличный, количество информации столько что бы можно было однозначно идентифицировать запись, запрет на внесение и редактирование инфы
вторая форма для внесения и редактирования данных, в момент ввода новой записи с таблицой не связанная, в момент редактирования - связанная, отображать должна только ту запись которая выбрана в форме1(если это редактирование)
2)не есть хорошо хранить одни и те же данные в нескольких местах (в разных таблицах)


Основная и справочная таблицы связаны между собой, при введении одного поля в основную таблицу, несколько других автоматически подставляются из справочной!


выход - тут можно предложить несколько вариантов
поле со списком (или список) с отображением нескольких столбцов во время выбора и отображением столбца позволяющего визуально однозначно идентифицировать запись (например номер машины) (уникальный номер записи не в счет - пока говорим о визуальном восприятии юзером формы)
появляюшаяся по определенному событию форма для того что бы юзер выбрал информацию из справочника, а связи проставились автоматом

все зависит от того как вы себе представляете интерфейс всего процесса

  Ответить  
 
 автор: osmor   (13.12.2011 в 08:23)   личное сообщение
 
 

создаете переменную на уровне модуля формы

dim blnClose as boolean

Делаете две кнопки
Кнопка "Сохранить"
Код на нажание
if me.dirty then me.dirty = false
blnClose = true
docmd.close acform, me.name

Кнопка "Отменить"
Код на нажание
if me.dirty then me.undo
blnClose = true
docmd.close acform, me.name


на событие "выгрузка формы" (Unload)
пишите


cancel = not blnClose

На событие текущая запись пишите

blnClose = false



Писал по памяти, возможны ошибки

  Ответить  
 
 автор: ddi   (13.12.2011 в 11:57)   личное сообщение
 
 

а не лутше запросом добавить ?

  Ответить  
 
 автор: osmor   (13.12.2011 в 12:09)   личное сообщение
 
 

в этом случае придется делать или свободную форму или временную таблицу. Надо как следует по условиям задачи смотреть

  Ответить  
 
 автор: ddi   (13.12.2011 в 12:21)   личное сообщение
 
 


создаете переменную на уровне модуля формы

dim blnClose as boolean

Делаете две кнопки
Кнопка "Сохранить"
Код на нажание
if me.dirty then me.dirty = false
blnClose = true
docmd.close acform, me.name

Кнопка "Отменить"
Код на нажание
if me.dirty then me.undo
blnClose = true
docmd.close acform, me.name


на событие "выгрузка формы" (Unload)
пишите


cancel = not blnClose

На событие текущая запись пишите

blnClose = false



Писал по памяти, возможны ошибки


однажди я попался
по этому всегда исползую через запрос
кнопка нажата добавить данные в таблицу и всё

  Ответить  
 
 автор: osmor   (13.12.2011 в 12:24)   личное сообщение
 
 

как попался? На чем? Данные в таблицу из полей формы или из промежуточной таблицы?

  Ответить  
 
 автор: vipolitov   (13.12.2011 в 23:09)   личное сообщение
 
 

Начал добавлять запросом на добавление. Поля формы добавились сразу, а вот поля подчиненной формы как бы добавить не подскажите? Ну не как не хотят туда попадать, причем что интересно два поля из трех всетаки добавилось, пока описывал третье все пропало, даже те два которые сначала получились

  Ответить  
 
 автор: ddi   (14.12.2011 в 09:08)   личное сообщение
 
 

на этом

if me.dirty then me.dirty = false
blnClose = true
docmd.close acform, me.name

Кнопка "Отменить"
Код на нажание
if me.dirty then me.undo
blnClose = true
docmd.close acform, me.name


на событие "выгрузка формы" (Unload)
пишите


cancel = not blnClose

На событие текущая запись пишите

blnClose = false

  Ответить  
 
 автор: kot_k_k   (14.12.2011 в 09:18)   личное сообщение
 
 


if me.dirty then me.dirty = false



мне вот это понравилось

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList