2012-07-03 3 views
1

다른 데이터베이스 (데이터베이스 B)의 VBA 코드를 통해 하나의 Access 데이터베이스 (데이터베이스 A라고 함)를 닫을 수 있습니까?별도의 데이터베이스에서 VBA 코드를 사용하여 데이터베이스 닫기

예에서 데이터베이스 B가 시작될 때 데이터베이스 A가 열려 있으면 데이터베이스 A를 닫아야합니다. VBA를 사용할 수 있습니까?

나는 구글에 관해서 해왔지만 모든 대답은 VBA를 사용하여 현재 데이터베이스를 닫는 것과 관련이있는 것으로 보인다. 물론 DoCmd.Quit로 달성 할 수있다.

도움을 주시면 대단히 감사하겠습니다.

+0

은 전혀 링크 된 데이터베이스입니까? – Taryn

+0

아니요 - 링크 된 테이블 등의 의미가 아닙니다. 둘 다 같은 기능의 서로 다른 측면을 수행하므로 주제별로 연결됩니다! – BFWebAdmin

+0

데이터베이스 B를 시작하는 사용자가 데이터베이스 A를 가지고있는 사용자와 동일한 사용자입니까? – HansUp

답변

4

당신은 그것을 공중 납치 할 수

Dim OtherDB As Object 

sOther = "Z:\Documents\other.accdb" 
Set OtherDB = GetObject(sOther) 
OtherDB.Application.Quit 

그것은 누군가의 삶을 어렵게 만들 수 있습니다.

+0

안녕하세요, Remou! 감사합니다. 다시 시도해보고 다시보고 할 것입니다. 닫아야 할 데이터베이스가 일시적이므로 문제가되지 않아야합니다. 데이터베이스 B의 기능은 데이터베이스 A를 삭제하는 것입니다. – BFWebAdmin

+1

@OliJeffery 이것은 주제와 다를 수 있지만 데이터베이스 B는 데이터베이스 A를 삭제하는 유일한 기능입니까? 또한 가까운 것을 의미하고 삭제하지 않았습니까? – Tony318

+0

Google은 300 명이 넘는 사용자가있는 데이터베이스를 보유하고 있습니다. 손상을 막기 위해 데이터베이스를 분할했습니다. 전통적으로 모든 사용자에게 데이터베이스의 프런트 엔드 사본을 제공합니다. 그러나 우리는 로컬 시스템이 아닌 Citrix를 통해 모든 프로그램에 액세스하므로 불가능합니다. 대신에 누군가가 로그인 할 때 프런트 엔드의 애드혹 클론을 생성하는 시작 프로그램을 만들어 모든 프런트 엔드에서 작업하여 손상을 방지합니다. 데이터베이스 B의 기능은 한 번 로그 아웃 한 클론 (A)을 삭제하여 사용하지 않은 클론을 추적하지 못하게하는 것입니다. – BFWebAdmin

3

나는이 질문이 오래된 것을 알고 있지만 어쩌면 이것이 도움이 될 것입니다. 나는 다른 DB를 열고 매크로를 실행하기 위해 VBA를 사용하는 데이터베이스를 가지고있었습니다. 나는 그 다음 DB를 닫고 싶었다. 나를 위해 일한 코드는 아래에 있습니다. 여기에는 공개에서 종료까지의 전체 프로세스가 포함됩니다.

Function functionName() 

Static acc As Access.Application 
Dim db As DAO.Database 
Dim dbname As String 
dbname = "absolutePathToDBHere.accdb" 
Set acc = New Access.Application 
acc.Visible = True 
Set db = acc.DBEngine.OpenDatabase(dbname, False, False) 
acc.OpenCurrentDatabase dbname 
acc.DoCmd.RunMacro ("macroName") 
acc.DoCmd.Quit acQuitSaveAll 

db.Close 
Set db = Nothing 

End Function 
관련 문제