Я создаю систему управления приемом в качестве проекта моего колледжа, это та же база данных, в которой у меня возникают проблемы с созданием цикла и ее автоматизацией. Поскольку я понял цикл в VBA, он работает.
Теперь этот вопрос касается поля (OM/Quota) таблицы (Candidates) и формулы запроса (Merit List Creator). Я просто хочу, чтобы он проверял, является ли значение QuotaVal из формы либо Null (т.е.; ""), либо "CIV" (означает гражданское), тогда он должен обновить поле, OM/Quota до "OM", иначе оно следует установить OM/Quota на значение QuotaVal из формы.
Что я пробовал;
<Condition> , <Value of OM/Quota if True> , <value of OM/Quota if False>
IIf([Forms]![Generate List]![QuotaVal]="","OM",IIf([Forms]![Generate List]![QuotaVal]="CIV","OM",[Forms]![Generate List]![QuotaVal]))
IIf([Forms]![Generate List]![QuotaVal]=""or"CIV","OM",[Forms]![Generate List]![QuotaVal])
Iff([Forms]![Generate List]![QuotaVal]=(""or"CIV"),[Forms]![Generate List]![QuotaVal])
IIF([Forms]![Generate List]![QuotaVal] is Null OR [Forms]![Generate List]![QuotaVal] = "CIV", "OM", [Forms]![Generate List]![QuotaVal])
IIf(Nz([Forms]![Generate List]![QuotaVal], "CIV") = "CIV", "OM", [Forms]![Generate List]![QuotaVal])
Ни один из них не работал, все они возвращали значение Null (т.е. "") в поле OM/Quota.
Просто чтобы уточнить, хочу ли я это;
Если значение QuotaVal = "Null" ИЛИ "CIV", то OM/Quota = "OM", иначе значение OM/Quota = QuotaVal
Вывод должен быть таким, что;
Значение OM/Quota должно быть "OM", если QuotaVal = "CIV" ИЛИ "" В противном случае значение OM/Quota = QuotaVal
Нужно ли будет делать отдельное поле для формулы Null в запросе?
Что было бы;
iff([Forms]![Generate List]![QuotaVal] is Null, "OM", [Forms]![Generate List]![QuotaVal])
Еще один вопрос, который возник у меня в голове:
Могу ли я вместо этого использовать iff([Forms]![Generate List]![QuotaVal] = Null or "CIV", "OM", [Forms]![Generate List]![QuotaVal])
?
Формула вообще должна быть;
iff([Forms]![Generate List]![QuotaVal] is Null, "OM", iff([Forms]![Generate List]![QuotaVal] = "CIV","OM", [Forms]![Generate List]![QuotaVal]))
Для тестирования я заменил цикл и запустил все приведенные выше формулы;
Private Sub CreateAllKey_Click()
QuotaVal.Value = "AR"
GroupVal.Value = "Gen-Sci-I"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "AR"
GroupVal.Value = "Gen-Sci-II"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "AR"
GroupVal.Value = "Gen-Sci-III"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "AR"
GroupVal.Value = "Humanities"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "AR"
GroupVal.Value = "Pre-Engg"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "AR"
GroupVal.Value = "Pre-Med"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "AS"
GroupVal.Value = "Gen-Sci-I"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "AS"
GroupVal.Value = "Gen-Sci-II"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "AS"
GroupVal.Value = "Gen-Sci-III"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "AS"
GroupVal.Value = "Humanities"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "AS"
GroupVal.Value = "Pre-Engg"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "AS"
GroupVal.Value = "Pre-Med"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "OM"
GroupVal.Value = "Gen-Sci-I"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "OM"
GroupVal.Value = "Gen-Sci-II"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "OM"
GroupVal.Value = "Gen-Sci-III"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "OM"
GroupVal.Value = "Humanities"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "OM"
GroupVal.Value = "Pre-Engg"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "OM"
GroupVal.Value = "Pre-Med"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "DP"
GroupVal.Value = "Gen-Sci-I"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "DP"
GroupVal.Value = "Gen-Sci-II"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "DP"
GroupVal.Value = "Gen-Sci-III"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "DP"
GroupVal.Value = "Humanities"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "DP"
GroupVal.Value = "Pre-Engg"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "DP"
GroupVal.Value = "Pre-Med"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "FGEI"
GroupVal.Value = "Gen-Sci-I"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "FGEI"
GroupVal.Value = "Gen-Sci-II"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "FGEI"
GroupVal.Value = "Gen-Sci-III"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "FGEI"
GroupVal.Value = "Humanities"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "FGEI"
GroupVal.Value = "Pre-Engg"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "FGEI"
GroupVal.Value = "Pre-Med"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "RFGEI"
GroupVal.Value = "Gen-Sci-I"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "RFGEI"
GroupVal.Value = "Gen-Sci-II"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "RFGEI"
GroupVal.Value = "Gen-Sci-III"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "RFGEI"
GroupVal.Value = "Humanities"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "RFGEI"
GroupVal.Value = "Pre-Engg"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = "RFGEI"
GroupVal.Value = "Pre-Med"
DoCmd.OpenQuery ("Merit List Creator")
QuotaVal.Value = Null
GroupVal.Value = Null
MsgBox ("Merit Lists Created!")
End Sub
Он по-прежнему не возвращал значений, отличных от «OM», в поле «OM/Quota», когда я запускал запрос, независимо от того, какую формулу я пробовал, приведенную выше. или в решениях до сих пор
Простите меня, если мой английский был трудным для понимания, я не являюсь носителем языка, и у меня нет другого слова, чтобы вставить их
IIF([Forms]![Generate List]![QuotaVal] is Null OR [Forms]![Generate List]![QuotaVal] = "CIV", "OM", [Forms]![Generate List]![QuotaVal])
- person Matt   schedule 14.10.2019