2013-09-06 2 views
1

Access 2007을 사용하여 레코드 집합을 반환하는 하나의 입력 매개 변수를 사용하여 저장 프로 시저를 호출하려고합니다.Access SQL Server 저장 프로 시저 호출을위한 연결 문자열

ADODB를 사용하면 연결 문자열을 제외하면 매우 간단합니다. 특정 테이블에서 서버와 데이터베이스 이름을 파생시킬 수 있기를 원하며 항상 올바른 서버와 데이터베이스를 가리 킵니다. (나는 100 개 정도의 링크 된 테이블을 재 링크하여 테스팅을 위해 때때로 개발 DB에 다시 연결한다.)

전체 테이블을 파싱하지 않고 tabledef에서 서버와 데이터베이스 이름을 얻는 방법이 있습니까? 재산이 있습니까? 아직 찾지 못했습니다 ....

최종 쿼리는 매우 간단합니다. EXEC sp_DeleteProjects N'12,24,54'은 프로젝트 12, 24 및 54를 삭제하고 다양한 하위 테이블 항목의 레코드 수가 삭제 된 레코드 세트 (단일 행)를 반환합니다. . 이미 SQL Server 데이터베이스를 가리키는 테이블에 연결된 액세스가있는 경우

답변

6

는 당신은 단순히 저장 프로 시저를 실행하기 DAO.QueryDef 객체와의 .Connect 문자열을 사용할 수 있습니다, 다음 VBA 코드에 의해 그림과 같이 :

Sub CallSP() 
Dim qdf As DAO.QueryDef, rst As DAO.Recordset 
Set qdf = CurrentDb.CreateQueryDef("") 
qdf.Connect = CurrentDb.TableDefs("dbo_MyTable").Connect 
qdf.SQL = "EXEC dbo.MyStoredProcedure" 
qdf.ReturnsRecords = True 
Set rst = qdf.OpenRecordset(dbOpenSnapshot) 
Debug.Print rst(0).Value 
rst.Close 
Set rst = Nothing 
Set qdf = Nothing 
End Sub