Расширяясь на простое решение Сумита Кумара (пожалуйста, воздержитесь его ответ , а не этот), здесь он является однострочной рабочей функцией:
Public Function fnStrCnt(ByVal str As String, ByVal substr As String) As Integer
fnStrCnt = UBound(Split(LCase(str), substr))
End Function
Sub testit()
Dim thePhrase
thePhrase = "Once upon a midnight dreary while a man was in a house in the usa."
If fnStrCnt(thePhrase, " a ") > 1 Then
MsgBox "Found " & fnStrCnt(thePhrase, " a ") & " occurrences."
End If
End Sub 'testit()
Отклонение от стандартов SQL: Если ON UPDATE CASCADE или ON UPDATE SET NULL выполняет рекурсию для обновления той же таблицы, которую он ранее обновил во время каскада, он действует как RESTRICT. Это означает, что вы не можете использовать самореференсные операции ON UPDATE CASCADE или ON UPDATE SET NULL. Это делается для предотвращения бесконечных циклов, возникающих в результате каскадного обновления. С другой стороны, самореференция ON DELETE SET NULL возможна, как и самореференция ON DELETE CASCADE. Каскадные операции не могут быть вложены более чем на 15 уровней вглубь.