사용자 지정 Access 응용 프로그램을 원격으로 종료하는 방법

기술 자료 번역 기술 자료 번역
기술 자료: 304408 - 이 문서가 적용되는 제품 보기.
고급: 전문적인 코드 작성, 상호 운용성 및 다중 사용자 기술이 필요합니다.

본 문서의 내용은 Microsoft Access 데이터베이스(.mdb)에만 적용됩니다.

모두 확대 | 모두 축소

이 페이지에서

요약

Microsoft Access 데이터베이스에서는 가끔씩 데이터베이스를 압축 또는 복구하거나, 백업 복사본을 만들거나, 디자인을 수정하는 등의 유지 관리 작업을 수행해야 할 수 있습니다. 대부분의 경우 이러한 작업을 수행하려면 모든 사용자가 데이터베이스를 종료해야 합니다. 그러나 Microsoft Access에는 다른 사용자를 강제로 종료시킬 수 있는 기능이 없습니다. 또한 단순히 네트워크 솔루션에서 다른 사용자의 연결을 끊는 것은 좋지 않습니다. 이 경우 데이터베이스가 손상될 수 있습니다.

이 문서에서는 프런트 엔드 Access 데이터베이스 응용 프로그램을 정상적으로 종료하는 데 사용할 수 있는 한 가지 방법을 설명합니다. 이러한 개념을 사용하면 데이터베이스를 압축 또는 복구하거나 백업 복사본을 만드는 등의 작업을 수행할 수도 있습니다.

Microsoft는 모든 보증(상품, 특정 목적에 대한 적합성 및 비침해에 대한 묵시적인 보증을 포함하며 이에 제한되지 않음)을 배제하며 예를 보여 주기 위한 목적으로만 이 프로그래밍 예제를 제공합니다. 본 문서의 내용은 프로시저를 작성하고 디버깅하는 데 사용되는 도구 및 여기서 설명하는 프로그래밍 언어에 익숙한 사용자를 대상으로 합니다. Microsoft 지원 엔지니어는 사용자에게 도움이 되도록 특정 프로시저에 대한 기능을 설명할 수 있지만 사용자의 특정 요구 사항에 맞도록 예제를 수정하여 추가 기능을 제공하거나 프로시저를 구성하지는 않습니다.

추가 정보

솔루션 작동 방법

솔루션은 다음과 같이 작동합니다. 서버의 폴더에 아무 이름이나 지정할 수 있는 파일이 있습니다. 이 솔루션에서는 chkfile.ozx라는 파일을 사용합니다. 이 파일을 삭제하거나 이름을 변경하면 프런트 엔드 Access 응용 프로그램을 닫아야 한다는 메시지가 나타납니다.

프런트 엔드 데이터베이스 응용 프로그램을 시작하면 자동으로 열리는 폼이 빌드되어 있습니다. 이 폼은 TimerInterval 속성과 OnTimer 이벤트를 사용하여 일정 간격으로 서버에 파일이 있는지 여부를 확인합니다.

파일이 있으면 아무 일도 생기지 않지만 파일이 없으면 지정된 시간 후에 데이터베이스가 자동으로 닫힌다는 경고 메시지가 표시된 폼이 나타납니다.

참고: 이 솔루션은 경고 메시지를 표시할 때 MsgBox 함수를 사용하지 않습니다. MsgBox 함수는 코드를 실행하기 전에 사용자 입력을 기다리기 때문에 이 솔루션의 목적과 맞지 않습니다.

클라이언트 세션을 정상적으로 종료하기 위해 이 솔루션은 확인 중인 파일의 이름을 변경합니다. 필요한 모든 작업이 완료되면 이 솔루션은 프런트 엔드 데이터베이스를 다시 시작할 수 있음을 알 수 있도록 파일 이름을 원래 이름으로 되돌립니다.

또한 서버에서 지정된 시간에 chkfile.ozx의 이름을 변경하는 예약 서비스를 사용하면 이 프로세스를 자동화하여 무인 모드로 실행할 수도 있습니다.

예제 시나리오를 만드는 단계

이 솔루션의 작동 방법을 보여 주려면 다음이 있어야 합니다.
  • 하드 디스크에서 C:\MyData 경로를 사용하는 폴더
  • 빈 파일. 이 솔루션은 빈 파일이 있는지 여부를 확인합니다.
  • 백 엔드 데이터베이스 파일에 테이블이 있고 프런트 엔드 데이터베이스에 이 테이블에 대한 링크가 있는 분할 데이터베이스 디자인. 프런트 엔드 데이터베이스에는 일정 간격으로 파일이 있는지 여부를 확인하고 경고 메시지를 표시하는 코드가 포함됩니다.
  • 예제 응용 프로그램의 폴더 만들기

  • C 드라이브의 루트 디렉터리에 폴더를 만들고 이름을 MyData로 지정합니다.

    빈 텍스트 파일 만들기

    1. MyData 폴더에 새 텍스트 파일을 만들고 이름을 chkfile.txt로 지정합니다.
    2. 이 파일의 확장명을 ozx(chkfile.ozx)로 변경합니다. 파일 확장명을 변경할 것인지 묻는 메시지가 나타나면 를 누릅니다.

    백 엔드 데이터베이스 만들기

    1. C:\MyData 폴더에 새 데이터베이스를 만들고 이름을 Northwind_Be.mdb로 지정합니다.
    2. Northwind 예제 데이터베이스에 있는 Customers 테이블을 Northwind_Be.mdb 데이터베이스로 가져옵니다. 기본적으로 Northwind는 C:\Program Files\Microsoft Office\Office10\Samples에 있습니다.
    3. 데이터베이스를 닫습니다.

    프런트 엔드 데이터베이스 만들기

    1. 새 데이터베이스를 다시 만들고 이름을 Northwind_Fe.mdb로 지정합니다.
    2. Northwind_Be.mdb 데이터베이스에 있는 Customers 테이블을 새 Northwind_Fe.mdb에 연결합니다.
    3. 연결된 Customers 테이블을 기반으로 자동 폼을 만들고 frmCustomers로 저장한 다음 닫습니다.

    파일이 있는지 여부를 확인하는 코드가 포함된 폼 만들기

    1. 언바운드 폼을 만들고 frmAppShutDown으로 저장합니다. 일반적으로 프로덕션 데이터베이스에서는 이 폼이 항상 열리지만 표시되지는 않습니다. 이 예제에서는 평소대로 열립니다.
    2. 폼의 TimerInterval 속성을 1분에 해당하는 60000밀리초로 설정합니다. 사용자 고유의 솔루션의 경우 이 시간 간격을 늘리거나 줄일 수 있습니다.
    3. frmAppShutDown 폼의 디자인 보기에서 보기 메뉴의 코드를 누릅니다. 다음 코드를 입력하거나 붙여 넣습니다.
      
      Option Explicit
      Dim boolCountDown As Boolean
      Dim intCountDownMinutes As Integer
      
      Private Sub Form_Open(Cancel As Integer)
          ' Set Count Down variable to false
          ' on the initial opening of the form.
          boolCountDown = False
      End Sub
      
      Private Sub Form_Timer()
      On Error GoTo Err_Form_Timer
          Dim strFileName As String
          strFileName = Dir("c:\MyData\chkfile.ozx")
          If boolCountDown = False Then
              ' Do nothing unless the check file is missing.
              If strFileName <> "chkfile.ozx" Then
                  ' The check file is not found so 
                  ' set the count down variable to true and
                  ' number of minutes until this session
                  ' of Access will be shut down.
                  boolCountDown = True
                  intCountDownMinutes = 2
              End If
          Else
              ' Count down variable is true so warn
              ' the user that the application will be shut down
              ' in X number of minutes.  The number of minutes
              ' will be 1 less than the initial value of the
              ' intCountDownMinutes variable because the form timer
              ' event is set to fire every 60 seconds
              intCountDownMinutes = intCountDownMinutes - 1
              DoCmd.OpenForm "frmAppShutDownWarn"
              Forms!frmAppShutDownWarn!txtWarning = "This application will be shut down in approximately " & intCountDownMinutes & " minute(s).  Please save all work."
              If intCountDownMinutes < 1 Then
                  ' Shut down Access if the countdown is zero,
                  ' saving all work by default.
                  Application.Quit acQuitSaveAll
              End If
          End If
      
      Exit_Form_Timer:
          Exit Sub
      
      Err_Form_Timer:
          Resume Next
      End Sub
      						
    4. 폼을 저장하고 닫습니다.

    경고 메시지를 표시하는 폼 만들기

    참고: MsgBox 함수를 사용하여 경고 메시지를 표시하지 마십시오. MsgBox 함수는 코드를 실행하기 전에 사용자 입력을 기다리기 때문에 이 솔루션의 목적과 맞지 않습니다.

    1. 언바운드 폼을 만들고 이름을 frmAppShutDownWarn으로 지정합니다. 다음 텍스트 상자 컨트롤을 추가합니다.
         이름: txtWarning
         형식: 텍스트 상자
      						
    2. 폼을 저장하고 닫습니다.
    3. 시작할 때 frmCustomer 폼과 frmAppShutDown 폼을 여는 매크로를 만듭니다. 이 매크로의 이름을 autoexec로 지정합니다.
    4. 데이터베이스를 닫은 다음 다시 엽니다.
    5. chkfile.ozx의 이름을 chkfile.old로 변경합니다.

솔루션 이벤트의 타이밍

참고: 다음 시간은 모두 대략적이며 chkfile.ozx의 이름을 변경하면 시작됩니다.

  • 1분 이내: Northwind_FE.mdb가 확인된 파일이 누락된 것을 감지합니다.
  • 2분: 1분 후에 데이터베이스를 닫아야 한다는 내용이 표시된 폼이 Northwind_FE.mdb에 나타납니다.
  • 3분: Northwind_FE.mdb가 자동으로 종료되고 모든 작업을 저장합니다.

참조

자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
287655 Access 2002에서 연결 컨트롤을 사용하여 런타임에 사용자가 로그온할 수 없도록 하는 방법
230575 ACC2000: Windows NT 일정 서비스를 사용하여 Access를 시작하는 방법
303528 HOWTO: Jet 4.0 데이터베이스를 최상의 작업 상태로 유지




Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

속성

기술 자료: 304408 - 마지막 검토: 2006년 9월 1일 금요일 - 수정: 6.1
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
키워드:?
kbprogramming kbnetwork kbinfo kbhowto KB304408

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com