2009-07-15 6 views
0

가끔 사용하기가 어렵다는 것을 발견했습니다. 예 :MS-ACCESS의 코드 또는 컨트롤 속성이 더 좋습니까?

데이터를 목록 상자에 채우고 싶습니다. 데이터를 선택하고 쿼리를 작성하고 빌드 할 수도 있습니다. VBA 코드를 입력하고 컨트롤 이벤트에 넣습니다.

그래서 어느 것이 더 낫다고 말합니까?

덕분에

+0

Access 데이터베이스 엔진 백 엔드가있는 Excel Userform 프런트 엔드와는 달리 기존 Access 응용 프로그램 내에서 양식에 액세스하는 것을 의미합니까? 그렇다면 테이블이나 Query 개체에 컨트롤을 바인딩하는 것이 Access Forms의 핵심 요소 중 하나입니다. – onedaywhen

답변

2

는 : 가장 좋은 방법은 무엇입니까 목록 상자의 컨트롤 소스를 설정 하시겠습니까?

가장 좋은 질문은 다음과 같습니다. 정적 메서드 또는 동적 메서드로 선언 된 컨트롤 원본을 원합니까?

Static은 VBA 마법사가 새 목록 상자에 생성하는 내용입니다. 정적은 간단하고 필요가 없으면 단순하지 않는 것이 가장 좋습니다. 평소 요구 사항은 느린 로딩 방식이나 정교한 폼 자동화로 문제를 해결하는 것입니다 (비어스가 말한 것처럼).

동적 방법을 사용하는 경우 VBA를 사용하고 있습니다. 주소 지정의 필요성이 속도면 양식이로드 될 때 제어 소스를 설정할 수 있습니다. 자동화가 필요한 경우 양식이로드되고 AfterUpdate 또는 명령 단추 선택과 같은 트리거를 사용할 때 조치를 취할 수도 있고 수행하지 않을 수도 있습니다.

0

난 항상 쿼리를 사용하고 거의 그렇게하지 않는 이유를 생각 없다. 목록 상자에 사용자 지정 항목 (예 : '비어 있음')을 추가하려는 경우 또는 속도가 문제가되는 경우를 제외하고는 결국, 거기에 10.000 + 항목이있는 목록 상자를 가질 필요가 전혀 없습니다. 이 경우 목록 상자를 채우기위한 맞춤 이벤트가 좋습니다.

+0

없음 또는 모두 같은 사용자 지정 항목을 추가하는 경우에도 UNION 쿼리를 사용합니다. –

1

나는 더 복잡한 코드를 만들지 않으려 고 노력합니다. 하나의 테이블에서 1 개의 테이블 전체 내용을리스트 박스에 바인딩하는 경우 컨트롤 속성을 사용합니다. 그보다 더 복잡하다면 쿼리로 처리 할 수 ​​있습니다. 문제는 이런 식으로 넣을 수있다. (당신은 또한 당신이 만드는 더 많은 코드, 당신은 유지해야하는 더 많은 코드, 그래서 더이 반드시 좋은 것은 아닙니다 있음을 유의)

+0

나는 항상 쿼리 행 원본에 쿼리를 남겨 두지 만 항상 쿼리를 사용합니다.나는 거의 항상 데이터를 사전 순으로 또는 사용자가 지정한 순서로 순서대로 배열하려고합니다. 예를 들어, Regular Time, Over Time 및 Double Time. –

0

가능한 경우 콜백 기능을 사용하는 것보다 개발 시간이 훨씬 짧기 때문에 쿼리하십시오. 그러나 때때로 API 호출 등을 사용하여 결정된 드라이브, 파일 또는 기타 데이터의 목록을 표시하는 경우와 같이해야합니다.

0

필자는 목록/콤보 상자의 행 원본에 대해 Select Query를 사용하는 경향이 있습니다. 먼저 파일 이름 목록을 임시 테이블에 채우고 그 중에서 선택할 수 있습니다.

1

모든 SQL 코드를 한 곳에서 가능한 한 '닫기'로 유지하십시오. 나에게 이것은 '프런트 엔드'에서 데이터 액세스 기술을 사용하여 호출 된 '백 엔드'에 VIEWPROCEDURE을 의미합니다. 테이블 '열'이름 중 하나가 변경된 경우 '프런트 엔드'를 사용하는 모든 프런트 엔드 애플리케이션에서 모든 양식의 모든 속성에 대한 모든 컨트롤을 검색 한 다음 각 프런트에서 모든 개체의 모든 VBA 코드를 검색해야합니다 최종 응용 프로그램 등

관련 문제