Чем ранее можно остановить людей, тем легче это будет в конечном счете!
Не быть слишком знакомым с Вашей схемой дб или формой ввода данных, я предложил бы маршрут что-то как следующее:
имеют отличные поля в Вашем дб для каждого адреса "часть", например, улица, город, индекс, LГ¤nder, и т.д.
сломали Вашу форму ввода данных точно так же, например, улицу, город, и т.д.
, обоснование позади вышеупомянутого состоит в том, что каждая часть будет, вероятно, иметь свои собственные конкретные "правила" для проверки немного измененного обращенный, ("Квелленштрассе"-> "Quellenstr"., "66/11"-> "66a-11" выше), таким образом, Ваш код доступа может проверить, существуют ли значения, как представлено для каждого поля в их соответствующем поле дб. В противном случае у Вас может быть класс, который применяет правила преобразования для каждого данного поля (например, "strasse", остановленный к "str"), и проверяет снова на дубликаты.
, Очевидно, вышеупомянутый метод имеет, это - недостатки:
это может быть медленно, в зависимости от Вашего набора данных, оставив пользователя, ожидающего
, пользователи могут попытаться двигаться, это путем помещения адреса "Части" в неправильные поля (добавляющий сообщение кодируют в город, и т.д.). но на основе опыта мы нашли, что представление даже простой проверки как вышеупомянутое будет препятствовать тому, чтобы большой процент пользователей ввел существующие ранее адреса.
, Как только Вы имеете в распоряжении основную проверку, можно посмотреть на оптимизацию требуемых доступов дб, совершенствование правил, и т.д. для соблюдения конкретной схемы. Вы могли бы также смотреть на соответствие MySQL () функция для разработки подобного текста.
Вы можете использовать СУММЕСЛИ:
=SUMIF(A1:E1,"<="&TODAY(),A2:E2)
Предполагая, что ваши даты находятся в a1: e1, а ваши значения - в a2: e2.
Функция СМЕЩЕНИЕ должна выполнить эту работу. Здесь есть аналогичный вопрос . Не зная точного расположения вашей таблицы, я предполагаю, что ваша формула будет выглядеть примерно так:
=SUM(OFFSET(B2,0,0,1,DAY(TODAY())))
Где DAY (TODAY ()) возвращает день месяца. Это число затем используется в качестве ширины диапазона для СУММ в OFFSET.
Я надеюсь, что это было относительно ясно. Удачи.
Поместите этот VBA в модуль
Option Explicit
Public Function GetTotal(StartCell As Range) As Integer
Dim i As Integer, j As Integer
i = StartCell.Row
j = StartCell.Column
If Cells(i, j) > Date Then
GetTotal = 0
Exit Function
End If
While Cells(i, j) <> DateAdd("d", 1, Date) 'values up to an including today'
GetTotal = GetTotal + Cells(i + 1, j)
j = j + 1
Wend
End Function
, а затем используйте его в ячейке рабочего листа, вставив
=GetTotal([starting date cell])
, где [ячейка начальной даты]
- это ячейка с датой от которой вы хотите сумму. Значение ячейки рабочего листа будет суммой