Вывод эликсира в анонимную функцию

Я сначала запускаю инструкцию insert, а затем проверяю, произошла ли ошибка 3022, которая указывает, что строка уже существует. Итак, что-то вроде этого:

On Error Resume Next
CurrentDb.Execute "INSERT INTO Table1 (Fields) VALUES (Data)", dbFailOnError
If Err.Number = 3022 Then
    Err.Clear        
    CurrentDb.Execute "UPDATE Table1 SET (Fields = Values) WHERE Column1 = 'SomeValue'", dbFailOnError
ElseIf Err.Number <> 0 Then
    'Handle the error here
    Err.Clear
End If

Edit1: Я хочу упомянуть, что то, что я разместил здесь, является очень распространенным решением, но вы должны знать, что планирование ошибок и их использование как часть нормального поток вашей программы обычно считается плохой идеей, особенно если есть другие способы достижения тех же результатов. Спасибо RolandTumble за это.

0
задан dcheese 18 March 2019 в 15:26
поделиться

1 ответ

Ваша проблема в том, как передать print в Enum.each. Переменная print уже связана с функцией. Когда вы делаете print.(), вы вызываете эту функцию без аргументов и передаете результат в Enum.each. Вместо этого вам нужно передать саму функцию print в качестве аргумента Enum.each. Итак:

Enum.__info__(:functions) |> Enum.each(print)
0
ответ дан Paweł Obrok 18 March 2019 в 15:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: