2014-10-15 6 views
1

Access 2013에 간단한 데이터 매크로가 있습니다. 변경 전 데이터 매크로입니다.액세스 - 데이터 매크로의 양식 요소에 대한 참조

SetField 매크로입니다. "값"필드에서 폼의 텍스트 상자에있는 값을 참조해야합니다. 어떻게하면됩니까? 나는 [Forms] [Form_Name] [Textbox_name]을 작성하려고했는데 아래 이미지 (이탈리아어)에서 볼 수 있듯이 작동하지만 작동하지 않습니다. 영어

enter image description here

가가/액세스하거나 화면을 참조 할 수 없습니다

+0

오류 메시지가 나타 납니까? "효과가 없다"는 것이 무슨 뜻인지 설명해 주시겠습니까? –

+0

폼이 테이블에 바인딩되어 있습니까 (또는 테이블을 포함하는 업데이트 할 수있는 쿼리에 바인딩되어 있습니까?)? 그렇다면 양식의 텍스트 상자가 테이블/쿼리의 [Nome_Cliente] 필드에 바인딩되지 않은 이유는 무엇입니까? –

+0

@rontornambe 예, 새로운 행을 삽입하려고하면 [Forms]! [Commesse]. [Nome_Cliente] 식별자를 찾을 수 없다는 팝업이 나타납니다. 나는 번역이 맞는지 모르겠다. 그래서 나는 이탈리아어로 접근 할 수있다. – Ponzaro

답변

2

"식별자를 찾을 수 없습니다"와 같은 번역 할 수 있습니다

enter image description here

내가 나타나는 오류입니다 양식 데이터 개체의 개체. 데이터 매크로는 SQL 저장 프로 시저와 같은 개념입니다. 저장소 프로덕션은 데이터베이스 엔진 수준에서 실행됩니다. 실제로 vb.net 또는 심지어 FoxPro 및 데이터 매크로를 사용하여 데이터베이스를 열 수 있습니다. 계속 실행됩니다.

따라서 데이터 매크로는 응용 프로그램과 독립적입니다. 데이터 매크로는 로컬 변수 만 가지며 SQL 서버의 저장 프로 시저와 동일한 아이디어와 개념입니다. 따라서 이것은 데이터 엔진 레벨 코드에만 해당됩니다.

따라서 데이터 엔진과 저장 프로 시저 (데이터 매크로)는 접근 할 수없고 FoxPro, vb.net 또는 MS-Access와 같은 "호스트"응용 프로그램에서 정보를 가져올 수 없습니다. 데이터 매크로는 ACE 데이터베이스 엔진을 사용하는 응용 프로그램 (vb.net, C++, MS-Access)을 알지 못합니다.

제안 된 해결 방법

따라서 다음과 같습니다

(이 열은 같은 테이블에 있다고 가정) 형태의 값을 참조, 만 테이블 열 값을 참조하지 마십시오. 다른 테이블에서 값을 조회 할 수도 있습니다. 따라서 데이터 매크로의 모든 코드는 TABLE 수준입니다.

양식을 전달하거나 사용해야하는 경우! 값을 입력하면 데이터 매크로를 사용하는 것과는 대조적으로 업데이트하기 전에 양식에 코드를 삽입하는 것이 좋습니다. 이것은 또한 VBA 코드를 사용할 수 있음을 의미합니다. 따라서 쓰는 동안 엔진 수준의 저장 프로 시저 루틴이 필요하거나 필요하지 않습니다.

또한 폼의 값을 데이터 매크로로 전달할 수도 있지만 테이블 이벤트를 사용하여 이러한 코드를 트리거하고 호출하지 않을 것입니다 (rundatamacro를 사용하고 매개 변수 전달).

따라서 Access 폼에서 데이터 매크로를 호출 할 수 있지만 이러한 코드는 테이블 수준 이벤트에 의해 트리거되거나 호출되지 않습니다.

그래서 저장 프로 시저 코드는 Access 데이터베이스 엔진을 사용하는 응용 프로그램에 "손을 뻗지"못합니다.

+0

큰 설명 주셔서 감사합니다. – Ponzaro

관련 문제