Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
 Аватар для 34rwd7
23 / 3 / 0
Регистрация: 20.10.2015
Сообщений: 58

Пополнение таблицы разными пользователями

20.10.2015, 12:23. Показов 2124. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня!
Есть задача заменить бумажный учёт входящих звонков, т.е. заменить сшитый альбом, который летает по офису туда сюда простой формой на компе.
Пару дней ищу решение - на форуме всё перерыл.
Просьба - подскажите как сделать или где искать?
Логика решения пока такая - делаются в рамках БД несколько одинаковых таблиц на каждого оператора, и сводная, куда построчно должны сводиться данные (набор столбцов один) Основная проблема - очерёдность ввода данных - как её обойти?

Заранее спасибо
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.10.2015, 12:23
Ответы с готовыми решениями:

Редактирование dbgrid разными пользователями
Добрый день Есть dbgrid отображающую таблицу. База на acccess. Для добавления и редактирования есть dbedit'ы. для обновления есть кнопка...

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

Видимость изменений данных разными пользователями
Ситуация следующая. Два пользователя работают с одной базой. В базе есть таблица из 4 заданий. Оба пользователя запустили свое приложение...

32
648 / 101 / 11
Регистрация: 08.06.2015
Сообщений: 1,564
20.10.2015, 12:26
Делайте все в 1-й таблице, нерационально на каждого заводить свою.
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
20.10.2015, 12:26
Цитата Сообщение от 34rwd7 Посмотреть сообщение
делаются в рамках БД несколько одинаковых таблиц на каждого оператора
Тупиковый путь, только одна таблица с дополнительным полем кода оператора.
Цитата Сообщение от 34rwd7 Посмотреть сообщение
Основная проблема - очерёдность ввода данных - как её обойти?
Это Вы о чем?
0
 Аватар для 34rwd7
23 / 3 / 0
Регистрация: 20.10.2015
Сообщений: 58
20.10.2015, 13:57  [ТС]
alexpro1979, проблема происходит при единовременном выборе одной и той же строки. т.е. одну и ту же запись редактирует 2 пользователя. это требует с их стороны дополнительных действий, которые уже сводят на нет всю прелесть идеи.

Itv_1953, код оператора не проблема, проблема в выборе чья запись займёт строчку 1, а чья строчку 2, в случае если 2 оператора редактируют первую.
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
20.10.2015, 14:02
Цитата Сообщение от 34rwd7 Посмотреть сообщение
проблема в выборе чья запись займёт строчку 1, а чья строчку 2, в случае если 2 оператора редактируют первую.
Никаких проблем не будет. Они не редактируют, а вводят новую. И каждый свою новую. А после сохранения, они будут видеть только свои записи ... .
0
397 / 140 / 39
Регистрация: 16.03.2013
Сообщений: 1,550
20.10.2015, 14:06
Определитесь какие поля и с каким типом данных должна содержать ваша таблица. затем создайте ее, форму для работы оператора с помощью запроса к этой таблице. Затем разделите БД с помощью встроенной в Аццесс функции, поделив ее, на таблицу, расположенную на сетевом ресурсе и форму с которой будет работать каждый из операторов. Клиентскую часть расположите(скопируйте) на каждом из компьютеров откуда будут вводится данные, при этом никакой очередности при одновременной работе не потребуется. Если вам нужен просто учет и просмотр, без какой то глубокой аналитики или наворотов, это будет наверное самый простой тип БД.
0
 Аватар для 34rwd7
23 / 3 / 0
Регистрация: 20.10.2015
Сообщений: 58
20.10.2015, 14:27  [ТС]
ltv_1953, подскажите пожалуйста, как сделать такую форму. Лучшее, что у меня получилось, обязывало в ручную выбирать строчку, в которую вносится информация.

Braser, с таблиц начал, всё что смог придумать уже забил. дальше не понял
1. Таблица готова.
2. Форма для работы оператора - очень тяжело гуглятся такие вещи. можно по подробней?
3. Встроенная функция разделения - думаю это я смогу впоследствии найти.
ну и аналитику потом на это дело надевать буду, но не всё сразу.


ps. может с этого начать надо было, но в access опыта не имею, заморачиваюсь с экселем, в возможности которого уже упёрся. по сути, есть вариант это и там сделать ведь, но вся соль в очерёдности постающих записей. спасибо за помощь!

 Комментарий модератора 
переведите на русский язык
то ли ---в очерёдности поступающих записей
то ли что-то иное
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
20.10.2015, 15:09
Цитата Сообщение от 34rwd7 Посмотреть сообщение
ltv_1953, подскажите пожалуйста, как сделать такую форму.
Во вложении: примитивная форма входа (пароль=пользователю, которого нужно выбрать из списка). Нажав на кнопку в форме входа, закрываете ее и открываете Операции, отфильтрованные по вошедшему пользователю. При вводе новой операции в нее прописывается вошедший пользователь. Изучайте.
Вложения
Тип файла: zip bd1025.zip (35.6 Кб, 21 просмотров)
0
397 / 140 / 39
Регистрация: 16.03.2013
Сообщений: 1,550
21.10.2015, 10:01
Форма, проще говоря, это интерфейс пользователя, создаваемый вами на основе вашей таблицы. Обратите внимание в гл.меню Access -а есть пункт "Создание" в котором есть выбор типа формы необходимой вам. Чтобы конкретно подсказать какая больше вам подходит нужно хотя бы видеть какие типы данных вы хотите вводить в таблицу, понять логику . Проще выложить вашу БД сюда на сайт и вам подскажут более предметно
0
 Аватар для 34rwd7
23 / 3 / 0
Регистрация: 20.10.2015
Сообщений: 58
21.10.2015, 15:43  [ТС]
ltv_1953, спасибо огромное, но одна проблема осталась.
т.е. что я делал -
1. открыл на 2х компах эту базу.
2. зашёл в разные пользователи
3. если подождать 5 минут, все компы становятся последним пользователем.
Это решило проблему с потерей данных при параллельном вводе с нескольких компов, но в итоге всё вводит как будто один пользун. И скажите пожалуйста как сделали подобную форму? на первых порах операторы могут и сами в форме писать своё имя.


Braser, рискну быть осмеяным, но форма у меня получается только такая, которая как бы является курсором в таблице, т.е. не отдельным объектом, который занимается сливом данных в таблицу, а просто альтернативный вид отображения таблицы.
А вот если вопрос в том, что sql пользовать надо, тут я повторю вопрос - где и что почитать. пока надеюсь сам справиться.
Пример могу на почту скинуть.
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
21.10.2015, 15:55
Цитата Сообщение от 34rwd7 Посмотреть сообщение
3. если подождать 5 минут, все компы становятся последним пользователем.
Это как? Как Вы определяете какой пользователь зашел.
Но скорей всего Вы не разделили базу. И когда входит второй отметка у первого пропадает и появляется у второго. У каждого пользователя должен быть свой интерфейс, в котором и должно отмечаться/сохраняться, какой пользователь работает. А данные должны быть в другой базе (лежащей на сервере), и таблицы их в интерфейсе должны быть присоединенными.
0
397 / 140 / 39
Регистрация: 16.03.2013
Сообщений: 1,550
22.10.2015, 07:52
Сделайте основой для вашей формы не таблицу, а запрос и тогда все нормально будет. Сейчас вы получается напрямую в таблицу вносите данные. Делается это так: Выделяете свою таблицу,не открываете ее, а просто наводите курсор на нее и щелкаете она выделится цветом, затем в меню акцесса открываете вкладку "Создание" и находите пункт "Конструктор запросов" ,щелкаете его, открывается окно с выбором нужной вам таблицы, выбираете ее курсором и жмете кнопку "Добавить" и затем закрываете окно выбора. Вашему взору открывается ваша таблица в виде одного столбца с названиями полей. Двойным щелчком вы выбираете поля которые вам необходимы в пользовательской форме, и они начинают добавлятся в таблицу запроса, затем после выбора полей закрываете запрос и сохраняете его под нужным именем, например "ЗапросТаблицаОператоров". Создание формы происходит по аналогии, только в качестве источника данных для формы вы выделяете запрос,а не таблицу.

Добавлено через 5 минут
БД можно выложить здесь. Внизу странички есть функция "Расширенный режим" открывается соответствующей кнопкой,там есть кнопка "Управление вложениями" откроется окно, там все интуитивно понятно. Единственное нужно заархивировать свою БД перед загрузкой на сайт архиватором с расширениями указанными там же, например RAR.ZIP и тд

Добавлено через 6 минут
Для того, чтобы каждый пользователь при открытии формы начинал новую запись нужно задать это свойство для формы и тогда она каждый раз при открытии пользователь будет начинать работу с новой пустой записи. А очередность записи определится только тем, кто из операторов быстрее начал редактировать новую запись.
0
 Аватар для VinniPuh
9131 / 6136 / 593
Регистрация: 27.03.2013
Сообщений: 19,988
22.10.2015, 08:08
Цитата Сообщение от ltv_1953 Посмотреть сообщение
...У каждого пользователя должен быть свой интерфейс, в котором и должно отмечаться/сохраняться, какой пользователь работает...
Я конечно извиняюсь. что нежданно-негаданно влезаю в разговор, но т. к. о сих возможностях - Access знаю только теоретически, то несколько раз задавал себе вопрос для общего понимания, но так до конца и недопонял, а именно:
Допустим 2-3 пользователя с разных ПК открыли одну разделенную БД.
Одновременно начинают у себя работать с формой - Заказы.
Начинают заказывать у поставщика:
1 - мешок картошки
2 - ящик морковки
3 - ведро сока и 2 мешка картошки
Как Access определяет какую запись первой занести в таблицу?
Та, которая будет сохранена первой или та, чей пользователь первым начал вводить данные?
Кроме того, если у поставщика всего 2 мешка картошки, а первым заказал их 1-й покупатель, то 3-му останется только 1 мешок. Соответственно он фактически не сможет заказать 2 мешка, а только 1.
Успеет ли Access предупредить 3-го, что остался только 1 мешок или так и введется в заказ 2 мешка, но в остатке будет с минусом?
0
397 / 140 / 39
Регистрация: 16.03.2013
Сообщений: 1,550
22.10.2015, 08:16
Вот примитивная БД для примера.
Вложения
Тип файла: zip Учет звонков.zip (100.9 Кб, 10 просмотров)
1
397 / 140 / 39
Регистрация: 16.03.2013
Сообщений: 1,550
22.10.2015, 08:21
"Успеет ли Access предупредить...." да уж, кто- то благодаря ему точно зимой будет голодать...

Добавлено через 2 минуты
Кстати такие моменты встречаются и в магазинах при продаже товара или подобных операциях. Для исключения таких недоразумений как правило используют опцию "Резерв". Утром деньги вечером стулья
1
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
22.10.2015, 08:28
Цитата Сообщение от PuhKMV Посмотреть сообщение
Как Access определяет какую запись первой занести в таблицу?
Именно "занести в таблицу", или выделить номер счетчика? Ибо ответы на эти два вопроса - разные. Счетчик достанется тому, кто первым начал ввод. Физическое наличие записи в таблице появится только после сохранения. Вполне возможна ситуация, когда запись со счетчиком 2 уже существует, а со счетчиком 1 - еще нет.

Цитата Сообщение от PuhKMV Посмотреть сообщение
Успеет ли Access предупредить 3-го, что остался только 1 мешок или так и введется в заказ 2 мешка, но в остатке будет с минусом?
Access никого ни о чем не предупреждает. Предупреждает программа, написанная программистом. Успеет или нет - зависит от того, что и как вы напрограммировали. Я успеваю.
1
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
22.10.2015, 08:31
Цитата Сообщение от PuhKMV Посмотреть сообщение
Успеет ли Access предупредить 3-го, что остался только 1 мешок или так и введется в заказ 2 мешка, но в остатке будет с минусом?
Успеет. Есть специальные процедуры обновления таблицы остатков, которые реализуют принцип "кто раньше встал, того и тапки".
Цитата Сообщение от Braser Посмотреть сообщение
Для исключения таких недоразумений как правило используют опцию "Резерв".
И в чем будут "плюсы". Зарезервировали в минус и ждем прихода? Обычно резервирование в минус тоже запрещают.
1
Эксперт MS Access
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
22.10.2015, 08:33
Цитата Сообщение от PuhKMV Посмотреть сообщение
Как Access определяет какую запись первой занести в таблицу?
Та, которая будет сохранена первой или та, чей пользователь первым начал вводить данные?
Кроме того, если у поставщика всего 2 мешка картошки, а первым заказал их 1-й покупатель, то 3-му останется только 1 мешок. Соответственно он фактически не сможет заказать 2 мешка, а только 1.
Успеет ли Access предупредить 3-го, что остался только 1 мешок или так и введется в заказ 2 мешка, но в остатке будет с минусом?
Зависит от принятого уровня блокировки. Оптимально устанавливать блокировку изменяемой записи. Кто первым вошел, того и тапки. Пока он не закончит ввод, остальные не смогут редактировать запись.


Добавлено через 49 секунд
Аппаздал
1
 Аватар для VinniPuh
9131 / 6136 / 593
Регистрация: 27.03.2013
Сообщений: 19,988
22.10.2015, 08:42
Цитата Сообщение от texnik-san Посмотреть сообщение
...Предупреждает программа,...
Спасибо.
Подспудно это и имелось в виду, типа наверное нужно делать, что бы БД примерно раз в секунду обновлялась, дабы избежать подобных накладок или имеются другие механизмы?
Цитата Сообщение от texnik-san Посмотреть сообщение
...запись со счетчиком 2 уже существует, а со счетчиком 1 - еще нет....
Это то я понимаю, вопрос в том, с каким вариантом будет приятнее работать.
Подсознательно предполагаю, что уже с сохраненной записью, т. к. запрос на остаток расчитается уже с учетом сохраненной записи, по этому и уточняю, т. к. опыта в данном вопросе нет и могу всё не так себе представлять и заблуждаться слишком вольно (есть у меня такой грешный грешок ) интерпретировать некоторые моменты которые не совсем понимаю.
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
22.10.2015, 08:43
Цитата Сообщение от ltv_1953 Посмотреть сообщение
И в чем будут "плюсы". Зарезервировали в минус и ждем прихода?
Если ЖДАТЬ, ничего не заработаешь никогда. Нужно срочно искать зарезервированное. Оповещение закупщикам, запросы поставщикам, при возможности - автоматическая заявка постащику.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.10.2015, 08:43
Помогаю со студенческими работами здесь

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

Доступ между Windows 7 в рабочей группе с разными пользователями
проблема возникла там, где ее быть не должно, задача - шары и расшаренные принтеры между 7-ками в раб группе, при наличии паролей у...

Delphi: Запрет запуска второй копии разными пользователями!
Данная тема здесь создавалась неоднократно, но варианты запрета, которые здесь приводились подходят только при попытке запуска одним...

Как установить две версии ZeosDBO, но под разными пользователями в D7?
На компе под одним пользователем установлен в Delphi7 компонент ZEOSDBO-6.6.1-beta, а под вторым пользователем мне б нужно поставить др....

Программа для работы в реальном времени с одним и тем же файлом (или файлами) разными пользователями
Доброго времени суток! Хочу попросить совета у знающих людей! Предупреждаю : новичок!!! Есть задумка : Создать программу, которая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru