복붙노트

[SQL] DoCmd.SetWarnings와 CurrentDB.Execute의 차이점은 무엇입니까

SQL

DoCmd.SetWarnings와 CurrentDB.Execute의 차이점은 무엇입니까

이 답변에 코멘트에서 Remou은 씁니다

CurrentDB.Execute는 "여기에 SQL 삽입"

~보다 낫다

DoCmd.SetWarnings = 0 DoCmd.RunSQL는 "여기에 SQL 삽입"

때문에이 액세스가 생성하는 내장 된 경고 있다고합니다. 나는 그 차이를 이해하려고 노력 중이 야.

모두 마스크 오류들이, 왜 두 번째 이상 바람직 첫 번째는 무엇입니까? 어떤 모범 사례가 여기에 있습니까?

해결법

  1. ==============================

    1.그들은 둘 다 오류를 마스크하지 않습니다. DoCmd.SetWarnings 마스크 오류이며 시스템은 넓은, 당신이 사용하고있는 하나의 응용 프로그램에 국한되지. 해당 DoCmd.SetWarnings 사실이없는 거짓 DoCmd.SetWarnings는 실행 쿼리가 PC에있는 모든 Access 응용 프로그램의 모든 프롬프트없이 실행됩니다 의미합니다.

    그들은 둘 다 오류를 마스크하지 않습니다. DoCmd.SetWarnings 마스크 오류이며 시스템은 넓은, 당신이 사용하고있는 하나의 응용 프로그램에 국한되지. 해당 DoCmd.SetWarnings 사실이없는 거짓 DoCmd.SetWarnings는 실행 쿼리가 PC에있는 모든 Access 응용 프로그램의 모든 프롬프트없이 실행됩니다 의미합니다.

    실행이 던져 경고를하지, 같은 쿼리와 당신이 필요로하는 경고는, 실행하지 못했습니다 만, 예 : "당신은 당신이이 쿼리를 실행하려면인가"와 같은 당신이 필요하지 않을 수 있습니다 경고를 제공하지 않습니다.

    이 스레드 앨런 브라운, 액세스 MVP, 그는 세트 경고를 사용하지 않습니다 말한다.

    여담으로, 나는 일반적으로이 그렇게, 다른 것들 사이에, 레코드 수를 반환 할 수 있습니다로, CurrentDB의 인스턴스를 사용하는 것이 좋습니다 것입니다 :

    Set db = CurrentDB
    db.Execute sSQL, dbFailOnError
    
  2. from https://stackoverflow.com/questions/11213892/whats-the-difference-between-docmd-setwarnings-and-currentdb-execute by cc-by-sa and MIT license