2014-07-06 3 views
0

기존 adp 프로젝트를 통해 accdb 프로젝트로 변환하는 임무를 맡았습니다. 나는 거의 끝났지 만 일할 수없는 기능이 하나 있습니다. 아래 예제와 비슷한 premade 저장 프로 시저를 사용하여 form RecordSet을 채 웁니다.ADODB 연결 및 명령 개체를 사용하여 Visual Basic Access에서 업데이트 할 수있는 형식

Dim objConn As New ADODB.connection 
Dim objCmd As New ADODB.Command 

'Set up connection and command object 
objConn.ConnectionString = "*Connection String Here*" 
objConn.Open 
objCmd.ActiveConnection = objConn 
objCmd.ActiveConnection.CursorLocation = adUseClient 
objCmd.commandText = "StoredProcName" 
objCmd.CommandType = adCmdStoredProc 

'Fill the recodset 
Set Me.recordSet = objCmd.Execute 

'Close connection 
objConn.Close 

문제는 양식 내의 대부분의 필드가 바인딩되어있어 사용자가 콤보 상자 내에서 데이터를 변경하거나 항목을 변경할 수 있다는 것입니다. 그러나 바운드 컨트롤을 편집하려고 할 때 양식이 잠겨있는 것처럼 편집 작업을 수행 할 수 없습니다. 또한 양식 레코드 세트 형식 속성을 다이너 셋 (Inconsistant Updates)으로 설정하고 연결 개체의 모드 속성을 acModeReadWrite로 설정했지만 아무 소용이없는 시도도했습니다. ADODB 연결 및 명령 개체를 사용하여이를 수행하는 방법이 있습니까?

감사합니다.

+1

이제 MS는 링크 된 테이블을 권장합니다. – Fionnuala

+0

@Remou, 꽤 많은 무게를 지니고 있지 않지만, 그렇습니다. :) adp만큼 쉽지는 않지만 닫습니다. –

+1

@DougGlancy 나는 당신이 꼬집기 타자로 할 것 같아요 :) – Fionnuala

답변

0

바인딩 된 양식과 엄격하게 ADO (링크 된 테이블이 아닌)로이를 수행 할 수 있는지 확실하지 않습니다. 이전에 Disconnected Recordsets으로 해본 적이 있습니다. 그것의 요지는 당신이 레코드 집합 클라이언트 쪽을 열고, ActiveConnection을 Nothing으로 설정하고, 데이터를 채운 레코드 세트로 폼의 Recordset을 설정 한 다음 데이터를 컨트롤에 바인딩하는 루틴을 작성해야한다는 것입니다. 그런 다음 서버 측 레코드 세트로 데이터 (모든 CRUD 자료)를 다시 보내기위한 루틴을 작성해야합니다. 시간이 좀 걸릴 수 있지만 확실히 작동 할 수 있습니다. 거기 밖으로 연결이 끊긴 recorsets에 관하여 많음 기사가있다. 너무 많은 잡기를 기억하지 못합니다. 양식에 시간이 걸리면 Access에서 자동으로 수행 할 작업의 거의 모든 작업이 코드에서 수행됩니다.

+0

심각하게 좋은 생각이 아닙니다. – Fionnuala