문제

곧 출시될 Access2010에는 처음으로 Access 데이터 엔진 테이블에 트리거와 유사한 기능을 추가하는 데이터 매크로 기능이 있다는 소식을 들었습니다.이에 대해 더 자세히 알고 있는 사람이 있나요?예를 들어 코드(ACEDAO, SQL DDL 등)로 생성할 수 있나요?데이터가 Access 사용자 인터페이스 외부에서 수정되는 경우 데이터 매크로가 실행됩니까?ODBC, OLE DB 등을 통해?

도움이 되었습니까?

해결책

알겠습니다. 좀 더 자세히 알아보세요.

데이터가 Access 사용자 인터페이스 외부에서 수정되는 경우 데이터 매크로가 실행됩니까?ODBC, OLE DB 등을 통해?

네, 그렇습니다.

이러한 실제 트리거는 데이터 엔진 수준에 있습니다.따라서 ado, dao를 사용하거나 ms-access의 테이블 보기에서 테이블을 편집하는 것은 트리거가 실행된다는 것을 의미합니다.이러한 트리거에는 컴퓨터에 ms-access가 설치되어 있지 않은 시나리오도 포함됩니다.

물론 JET가 설치되어 있어야 합니다(이 기사의 나머지 부분에서는 ACE라는 용어를 사용합니다).액세스 팀이 JET의 소유권을 받은 것은 Access 2007에서만이었습니다.이제 그들은 필요에 따라 이 엔진을 자유롭게 향상시킬 수 있습니다.우리는 2007년부터 ACE에 몇 가지 변화를 보기 시작했으며 이제 2010년에는 훨씬 더 많은 변화를 보게 될 것입니다.이러한 기능 중 일부는 아직 NDA 상태입니다. 하지만 여기서는 최대한 많은 내용을 공개하겠습니다.

예를 들어 코드(ACEDAO, SQL DDL 등)로 생성할 수 있나요?

코드에서는 아마도 SQL ddl에서는 그렇지 않을 것입니다.트리거는 SQL 명령이 아닙니다.Oracle, Sql 서버 또는 시장의 MOST 시스템의 경우 모두 트리거에 대한 자체 사용자 정의 언어를 갖는 경향이 있다는 점을 명심하십시오.

따라서 새 ACE에서는 데이터 매크로라는 것을 작성하게 됩니다.ms-access에서 매크로 편집기를 사용합니다.이것은 구식 액세스 매크로이지만 편집기가 완전히 다시 만들어졌습니다.새로운 매크로에는 서브루틴, 루프, if then else 블록 및 일종의 레코드세트도 있습니다.2007년 매크로에서는 임시 변수를 생성하는 기능을 받았다는 점을 기억하십시오.2010년에는 지역 변수와 새로운 기능도 포함하도록 확장되었습니다.

기존 매크로 명령의 구문은 이전 버전과 동일합니다.그러나 위의 모든 멋진 명령과 함께 새롭고 멋진 IDE가 추가되었습니다.따라서 이제 두 가지 유형의 매크로가 있습니다.UI 매크로(이전과 동일) 및 이제는 새로운 소위 데이터 매크로입니다.테이블 수준 매크로가 화면에 오류 메시지를 표시할 수 있다는 것은 의미가 없습니다.따라서 기록된 모든 오류는 테이블에 기록됩니다.또한 해당 테이블에 사용자 정의 오류를 기록할 수 있는 몇 가지 새로운 로깅 명령도 있습니다.화려하고 심플한 디자인이 여기에 있습니다.오류 로그 테이블은 다음과 같습니다.

alt text
(원천: kallal.ca)

거대한 IDE, 대규모 프레임 작업, 테이블의 간단한 행을 업데이트하는 데 필요한 엄청난 양의 코드 라이브러리가 있는 세계에서 데이터 매크로는 가장 신선한 기능이라고 말할 수 있습니다.그들은 원래 dbaseII의 작동 방식과 매우 유사하다고 느낍니다.매우 단순하지만 테이블 수준에서 실행되기 때문에 치명적인 위력이 가득합니다.

예를 들어, 다음은 재고 총계를 테이블로 유지 관리하는 데이터 매크로입니다.이 예에서는 마스터 재고 레코드가 존재한다고 가정하겠습니다.그리고 주문 세부정보 테이블이 있습니다.사용자가 주문 테이블의 값을 편집하면 마스터 테이블이 재고 수준을 자동으로 업데이트하기를 원합니다.

그래서 우리는:테이블이 두 개 있어요

tblFruits:    main data fruit inventory table
id         (autonumber)
Fruit text
OnHand    (number value of fruit in inventory)

tblFruitsOrder
id       (autonumber)
Fruit_id (FK to tblFruts.ID)
QtyOrder (number of fruit to order)

간단한 테스트입니다

따라서 Qtyorder 필드가 편집되거나 수정 될 때 TBLFRUITS에서 인벤토리 수준을 업데이트 할 수있는 TBLFRUITSORDER에서 트리거가 발생합니다.

매크로의 모습은 다음과 같습니다.

alt text
(원천: kallal.ca)

위의 내용이 얼마나 간단한지 참고하세요.IDE에서 코드 섹션을 클릭하면 명령 값을 입력할 수 있는 이전 스타일의 매크로 유형 편집 기능이 제공됩니다. 이는 2010 이전 버전과 유사하지만 이제 매개변수 및 편집 작업은 다음에서 수행됩니다. 이전 버전에서는 화면 하단에 나타나는 패널이 아닌 코드).

다음은 루프를 수행하고 서브루틴을 호출하는 기능을 사용하는 또 다른 스크린샷입니다.

alt text
(원천: kallal.ca)

위에서 우리는 msgboxs 등을 사용할 수 있습니다.이는 테이블 수준 매크로가 아니기 때문입니다.따라서 일반 매크로와 달리 테이블 수준 매크로를 작성할 때 사용 가능한 명령이 자동으로 제한됩니다.매크로의 두 가지 유형을 구별하기 위해 채택한 용어는 UI 매크로와 데이터 매크로입니다.

위의 내용은 제가 음모에 대해 말할 수 있는 전부입니다.그러나 이 매크로에는 아직 해당 기능에 대한 NDA가 진행 중이기 때문에 아직 공개적으로 이야기할 수 없는 정말 깔끔한 기능이 몇 가지 더 있습니다.하지만 여기에는 더 멋진 놀라움이 있습니다.

다음은 우리가 가지고 있는 테이블 트리거 유형의 스크린샷입니다.

alt text
(원천: kallal.ca)

다른 팁

이 새로운 기능에 대한 자세한 내용은 오늘 게시되었습니다 MS Access Development Team의 블로그에서 위의 의견에 제기 된 중요한 질문에 대한 자세한 정보를 확실히 제공합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top