2011-10-19 2 views
1

Access 2003에서 제 3자가 제공 한 특수 xls 파일을 가져 오는 데 사용되었습니다. 이것을 위해 ADODB를 사용했는데 완벽하게 작동했습니다.Access VBA 2010을 사용하여 Excel 데이터 조작

ADODB는 더 이상 Access 2007/2010의 옵션이 아니며 DAO 또는 ADO를 사용하여 스프레드 시트를 "쿼리"할 수 있다고 생각하지 않습니다.

그래서 어떤 대안이 있습니까?

+1

"ADODB는 더 이상 Access 2007/2010에서 옵션이 아닙니다.".... 아니요 ... 누가 당신에게 말 했나요? –

답변

0

DAO 또는 ADO를 사용하여 스프레드 시트를 "쿼리"할 수 있다고 생각하지 않습니다.

Access (Jet, 뭐든간에) 용 OLE DB 공급자를 사용하여 실제로 ADO를 사용하여 Excel 통합 문서를 쿼리 할 수 ​​있습니다. 자세한 내용은 this MSDN article을 참조하십시오.

ADODB 더 이상 액세스 2007/2010에서 옵션입니다, 사실이 아니다

. 나는 Access에서 "ADO vs DAO"를 둘러싼 interwebs에 많은 말도 안되는 점을 감안할 때, 당신은 오해를해야만한다고 생각합니다.

ADO classic이 Access2000 커뮤니티에 도입되었을 때 어떤 일이 일어 났는지 정확히 알 수는 없지만 많은 고령자가 자존심/자존심을 갖게 된 것 같습니다. 마이크로 소프트의 마케팅 메시지가 효과를 발휘했다. "DAO는 이제 과거의 작업 방식이고 ADO는 새로운 것"입니다. MS에 의한 고의적 인 움직임에서 새 엔진 기능은 일반적으로 ADO를 통해서만 사용할 수있었습니다.

약식 위치가 위협받는 경우가 많기 때문에 오랫동안 Access + DAO 팬들의 반대 운동이있었습니다. 이것은 종종 "충분한 진흙을 던져라. 그러면 어떤 것은 고집 할 것이다"의 형태를 취했다. AccessLand에 새로 도착한 사람들은 혼합 된 메시지에 혼동을 느낍니다. 뉴스 그룹에서 주목받는 액세스 MVP는 기존 액세스 MVP의 안티 ADO 입장을 에뮬레이션했습니다.

200 년에서 2007 년 사이에 출시 된 Access 제품은 실용적인 목적으로 SQL Server 팀에 전달 된 엔진과 관련하여 IMO가 다소 오래되었습니다. 보급형 표준 SQL-92를 준수하는 구성 요소는 표준에 따라 기능을 수행하는 Windows 팀에 의해 저지되었습니다. ADO 클래식 팀도 마찬가지로 해산되었습니다. Office Suite와 VBA 라이브러리를 효과적으로 공유하는 Visual Basic COM은 VB.NET과 ADO.NET에 찬성하여 사라졌습니다.

Access2007 팀은 다시 문제를 해결했습니다. 그들은 SQL Server 및 Windows 팀의 엔진을 사설 지사를 통해 회수했습니다. 그들은 사용자 수준의 보안을 유지하지 못했기 때문에 아마도 사용자 수준의 보안을 유지할 수 없었을 것입니다. 논쟁의 여지가 있지만 1NF를 위반하는 다중 값 유형을 추가했습니다. 용감한 물건! 일부 기능은 Access 용 새 OLE DB 공급자를 작성하여 ADO classic에 수용 될 수 있지만 다른 기능은 사용할 수 없습니다. 예를 들어, ADO의 다중 값 데이터 유형에 대한 완전한 지원 (예 : SQL을 통한 업데이트)에는 액세스 팀이 소유하지 않은 ADO 클래식 라이브러리를 변경해야합니다.

DAO는 Access의 소유이기 때문에 새 버전 (ACEDAO)에는 기존 ADO 클래식 라이브러리가없는 새로운 OLE DB 공급자가 있습니다 (ADO는 64 비트 컴퓨터에서 엔진을 사용해야 함). 그러나 그들이하지 않은 것은 ADO에만 적용되는 Access2000 시대의 기능을 수용하기 위해 DAO를 소급 수정하는 것이 었습니다.

당연히 Access 팀은 ACEDAO를 일류 시민으로 승격했습니다. 물론 오랫동안 Access + DAO 팬들은 기뻐했습니다. "ADO는 ADO.NET에 찬성하여 반대되었습니다."사실, 결과는 혼합 백입니다. 자세한 내용은 this thread을 참조하십시오.

0

VBA 프로젝트에서 도구/참조를 클릭 한 다음 "Microsoft Excel 14.0 Object Library"를 찾으십시오. 이렇게하면 모든 VBA Excel 개체에 액세스 할 수 있으므로 스프레드 시트에 원하는 모든 작업을 수행 할 수 있습니다.

다른 사람들은 시트에서 쿼리를 실행하는 것이 옵션이 아니라고 말했습니다. 데이터베이스 측면에서 사고하는 데 익숙하다면 템플릿에 대한 점검을 실행하여 제목이 일치하는지 확인하십시오. 그러면 읽고있는 좋은 파일을 가질 가능성이 높아집니다. 그런 다음 문서 설정을 확인한 후 레코드가있는 행의 SQL 삽입을 Access 데이터베이스의 테이블에 삽입 한 다음 쿼리를 실행하십시오. 당신의 SQL 코드를 작성 여기를 확인하십시오

SQL Statement Help

당신이 당신의 파일은 당신이 세터/게터와 객체를 설정하여 검색을 실행에 기록을 저장할 수있는 작은 경우 VBA에서 고급 얻고 싶은 경우에 그런 다음 컬렉션 클래스는 찾고있는 데이터로 컬렉션 클래스를 반복합니다.

목록이 작다고 알고있는 일부 프로젝트에서는이 작업을 수행합니다. 실제로 데이터를 읽고 특정 위젯의 수를 계산하는 것과 같은 실제 기본 계산을 실행하고 싶을 때 테이블에 읽기/쓰기를하지 않습니다. 그 수를 보고서에 올려 놓으십시오. 컬렉션 클래스는 이것에 아주 좋습니다.

Collections in Visual Basic

행운을 빕니다 : 여기 컬렉션에 대한 몇 가지 추가 정보를 원하시면 좋은 링크입니다!