Одна (вероятно, несвязанная) форма Access 2003 для создания нескольких записей - PullRequest
1 голос
/ 13 сентября 2010

Я был нанят для работы над формой для отслеживания образцов. Каждый образец связан с предметом; Каждый образец также имеет определенный слот в ящике для хранения 9 x 9. Для простоты ввода данных, я думаю, было бы лучше, если бы форма Access зеркально отражала само поле (и бумажные формы, которые будут использоваться для ввода данных в Access): девять столбцов на девять строк, причем каждый элемент состоит в основном из текста коробка для идентификатора образца. Вот как я бы хотел выглядеть:

alt text

Таким образом, человек, вводящий данные, по сути, наберет номер ящика и идентификаторы образца, затем щелкнет «Создать записи», чтобы вывести все эти записи в реальность (вы можете увидеть некоторые другие вещи, происходящие здесь, но это не очень важно, верно сейчас). Однако я не совсем уверен в том, как лучше всего это кодировать. Прямо сейчас, лучший процесс, который я могу придумать: 1) выполнить запрос на вставку, чтобы создать поле, если он не существует, 2) выполнить запрос на вставку, чтобы создать субъект (человека), если он не существует и 3) выполнить запрос вставки для каждого образца, жестко закодировав его строку и столбец (например, box_col = 'A', box_row = '1').

Примечание. Идентификатор субъекта и идентификатор экземпляра будут выделены из поля идентификатора - это глупо, не моя идея, но именно так оно и настроено. Я могу справиться с этим, хотя.

Это определенно клочок, но я не уверен, что еще делать, и большая часть того, что я нашел, не относится к созданию нескольких записей из одной формы. Есть лучший способ сделать это? Должен ли я просто отказаться от идеи и перейти к более традиционному подходу связанной подчиненной формы? Буду очень признателен за ваши идеи и предложения. Большое спасибо.

Ответы [ 3 ]

2 голосов
/ 13 сентября 2010

FRIG. Я просто потерял десять минут ввода. Вот почему я не забочусь о веб-формах. Хотя, честно говоря, это первый раз, когда это происходит в StackOverflow.

Вам действительно нужно просмотреть данные позже в том же формате, в котором они были введены. Если они могут просто просматривать регулярные подчиненные формы, это как минимум половина работы, поскольку вам больше не нужно обновлять эту форму.

Также обратите внимание, что время жизни составляет максимум 768, если я правильно помню, элементов управления для каждой формы. 9 х 9 х 2 - это 162, так что все будет хорошо. Однако, если вы решите удалить и воссоздать много коттеджей, у вас могут возникнуть проблемы. Если вы достигнете этого предела, я думаю, что сохранение формы под отдельным именем должно сбросить счетчик.

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

Me.Controls("abc" & Row & column) 

Например, в After Update элемента управления типом вы можете использовать

call InsertRecords(3, "B")

sub InsertRecords(row as integer, Column as string)
....
cboTypeValue = Me.Controls("cboTypeID" & Row & Column) 
....
2 голосов
/ 13 сентября 2010

Все это можно сделать в форме, но я предполагаю, что для простоты (меньше кликов, удобство работы и интуиция) вы разработали его так, чтобы конечный пользователь мог видеть все, что ему нужно ввести. В этом нет ничего плохого. Как только все данные введены, просто нажмите кнопку в форме, которая выполняет несколько вставок одновременно. Начните с 1 и включайте 9 итераций каждый раз, выпуская новый оператор INSERT.

После того, как утверждение было выполнено, я лично ставил маленькую галочку рядом с каждой строкой, чтобы в случае успешной вставки он проверял ее как истинную, иначе как ложную. Вы могли бы быть изящными и использовать зеленое изображение / красное изображение. После завершения процесса все поля должны быть очищены, чтобы можно было ввести дополнительные данные.

Я не вижу проблемы с тем, что у вас есть.

0 голосов
/ 14 сентября 2010

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

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

Не было бы так много элементов управления и не было бы никаких ограничений по количеству полей в форме.

...