이것은 어떤 것이 더 나은지에 대한 질문이 아니라 기능상 다른 점에 대한 질문입니다. 내가 겪었던 문제는 다루어졌지만, 왜 이런 행동이 일어나고 있는지 궁금합니다.ADO와 DAO의 차이점
배경 - Excel vba를 사용하여 Access 데이터베이스에서 데이터를 가져옵니다. 사용자가 단추를 클릭하면 Access에서 레코드 세트를 가져와 다양한 데이터를 스프레드 시트에 채 웁니다. 그런 다음 다른 쿼리에서 다른 레코드 집합을 가져와 스프레드 시트의 다른 부분을 채 웁니다.
ADO가 수행하는 작업 - ADO는 첫 번째 레코드 세트에 적합합니다. 그러나 두 번째 레코드 집합은 Access에서 쿼리로 이동하여 실행하고 행을 반환하지 않습니다. Access에서이 쿼리를 실행하면 약 3 ~ 4 초 후에 열립니다. 이 쿼리에는 여러 조인, 계산 된 항목, 한도 및 유니언 쿼리 (여러 가지 방법으로 시도했거나 조합 없음 등)이 있습니다. 나는 입양 연결을 닫고 다시 열어 보았습니다. 시간 제한 값을 변경하려고 시도해 보았습니다. 그리고 ADO 명령을 사용하여이 데이터에 대한 테이블 쿼리를 실행 한 다음 테이블에서 데이터를 가져와 테스트했습니다 (데이터가 지속적으로 변경되기 때문에이 방법으로 작업했지만 최선은 아님). , 그리고 누군가가이 도구를 사용할 때마다 make 테이블 쿼리를 실행하고 싶지는 않습니다.)
그래서 두 번째 데이터를 DAO로 변경하고 보았습니다. 작동합니다. 첫 번째 데이터 추출은 아직 ADO (일반적으로 사용하는 것을 선호 함)이지만 DAO로 바꾸는 것을 고려 중입니다. 코드에서 하나의 데이터 액세스 방법을 사용하기 때문입니다.
누군가가 왜 ADO가 한 가지 경우에 데이터를 가져 오지 않는지 설명 할 수 있습니까? 다시 말하지만 이것은 정보를 제공하기위한 것입니다.
코드를 보지 않고도 의견을 말하기는 어렵지만 cusrsor 유형/레코드 세트 유형 문제 일 수 있습니다. 코드의 기본값을 사용합니까?Access에서만 작업하는 경우 DAO는 Access에 기본이며 ADO보다 제어하기 때문에 더 나은 선택입니다 – SWa
와일드 카드를 사용하는 곳은 어디입니까? 이것은 일반적인 문제입니다. ADO의 경우 와일드 카드는 %이고 DAO는 (일반적으로) *입니다. – Fionnuala
@Remou, 나는 둘 사이의 와일드 카드의 차이점에 대해 잘 알고 있지만 불행히도 쿼리에 사용하지는 않습니다. – APrough