(Access 2002의) VBA를 사용하여 Excel 2007의 새 인스턴스를 만드는 데 문제가 있습니다.VBA (OLE 및 바운드 개체 틀 사용)를 사용하여 2007 년 새로운 인스턴스에서 excel 2007 열기 문제가 발생했습니다.
처음에 나는이 문제를 잘못 이해했으며 생각보다 복잡합니다.
Set myXL = CreateObject("Excel.Application")
새 프로세스를 만듭니다 (나는 그렇지 않다고 생각했지만). 여전히 이상한 일이 일어나고 있습니다. OLE를 사용하여 SQL Server 데이터베이스에 Excel 파일을 저장합니다.
이
은 경계가 양식에 파일을 엑셀 기능입니다 :Public Function OpenExcelObjFrame() As BoundObjectFrame
Dim myXL As Object
Set myXL = CreateObject("Excel.Application") '#1
Set gTempWorkbook = myXL.Workbooks.Add
myXL.Visible = True '#2
DoCmd.OpenForm "Excel_OBJ"
Forms("Excel_OBJ").Visible = False
Forms("Excel_OBJ").RecordSource = "SELECT Excel_File FROM Excel_File_Obj;"
Set OpenExcelObjFrame = Forms("Excel_OBJ").Excel_File
End Function
컨텍스트 :
Dim tExcelObjFrame As BoundObjectFrame
Set tExcelObjFrame = OpenExcelObjFrame()
tExcelObjFrame.Verb = acOLEVerbOpen
tExcelObjFrame.Action = acOLEActivate '#3
등록 1 개 2 과정
광고 2 시작에 Excel.exe 두 번째 프로세스에서 어떤 일이 일어나는지 확인하기 위해이 줄을 추가했습니다.
tExcelObjFrame.Action = acOLEActivate가 2 위를 죽이고 왜:/
그래서 문제가 :
광고 3 OLE는 인스턴스를 엑셀 기존, 2 프로세스가 여기 살해에 파일을 경계 공정
2 과정
0
내가 (명확한 솔루션) 여기에 부분적인 설명을 발견했습니다
편집 :
http://www.xtremevbtalk.com/showthread.php?t=292170
- 엑셀의 어떠한 인스턴스가 실행되지 않는 경우는, OLE는의 인스턴스를 생성 직접 또는 프로그래밍을 통해 개체에 액세스 할 때 Excel.
- Excel의 인스턴스가 이미 실행중인 경우이 개체는 OLE 개체에서 사용되는 인스턴스입니다.
문제는 OLE 개체가 잘못된 Excel 인스턴스를 선택한다는 것입니다. OLE 특정 인스턴스를 가리키는 방법이 있으면 질문입니다.
감사합니다. Andy, 예 시도했지만 excel.exe 프로세스가 하나 있습니다. – Pawel
나는 하나의 파일을 수동으로 열고 그 코드를 사용하여 다른 파일을 열었지만 별도의 excel.exe 프로세스를 만들지 않았다는 것을 의미했습니다. – Pawel
앤디 감사합니다. 문제를 과소 평가 한 것 같습니다. 팁을 가져 주셔서 감사드립니다. – Pawel