Excel или Access - PullRequest
       11

Excel или Access

0 голосов
/ 19 ноября 2009

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

Капрал 4 ранга
MSgt 8-й ранг, но это более высокий ранг, чем капрал
1-й это как 11-й рейтинг и т.д ..
да, 1-й lt обычно идет первым, но как сделать так, чтобы он отображался как
1-й лейтенант
MSgt
Капрал

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

Ответы [ 3 ]

2 голосов
/ 19 ноября 2009

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

SELECT Rank.Sort, MainTable.Rank FROM MainTable 
LEFT JOIN Rank ON MainTable.Rank=Rank.Rank

Вы должны включить число, которое говорит, как таблица должна быть отсортирована.

Rank   Sort
1st Lt   1
MSgt     2
Cpl      3

Реляционная база данных, такая как Access, имеет заказ, только если вы его отдадите.

У вас, вероятно, есть таблица с большим количеством людей, я назвал эту MainTable в моем примере, затем у вас должна быть справочная таблица, давайте назовем ее Rank, и она должна выглядеть как таблица, показанная выше. Это означает, что вам не нужно два поля в основной таблице, чтобы сказать, что такое ранг и как его следует сортировать. Кроме того, таблица поиска означает, что каждая запись одинакова, поэтому вы не получите Например:

1-й лейтенант
Первый Lt
1-й лейтенант

Возможно, вам захочется прочитать Fundamentals of Relational Database Design

0 голосов
/ 19 ноября 2009

В таблицу рангов добавьте новое поле с именем «Sort_order». Запрос будет выглядеть примерно так

ВЫБЕРИТЕ tblPeople.Name, tblRanks.Rank_name, tblRanks.Sort_order ИЗ tblPeople ВНУТРЕННЕЕ СОЕДИНЕНИЕ tblRanks ON tblPeople.Rank_ID = tblRanks.Rank_ID ORDER BY tblRanks.Sort_order DESC;

Таблица tblPeople содержит информацию о людях, таких как имя и т. Д., А таблица tblRanks содержит имена рангов, а также поле, указывающее базе данных, в каком порядке их сортировать, чтобы сержант был выше частного

0 голосов
/ 19 ноября 2009

Другими словами, вам нужно сделать оператор ORDER BY в поле «Sort_order» из таблицы рангов, а не по имени ранга.

Я бы также порекомендовал пошагово увеличивать это поле с шагом 10, поэтому, если появляется новый ранг, вы можете поместить его между двумя другими без необходимости обновлять другие записи (аааа, возвращает меня к моим старым дням программирования VIC20 с номерами строк )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...