2009-06-01 4 views
1

디자인보기를 통해 양식의 "레코드 원본"테이블에 속하지 않는 필드에 텍스트 상자를 바인딩하려면 어떻게합니까?

예 : "Order.cust_id"(레코드 원본 = 주문)이고 "Customers.name"을 표시하려고합니다. 나는 그것이 사소한 것이라고 생각하지만 나는 MS Access에 대한 경험이 없다. 난 텍스트 상자 "컨트롤 소스"속성을 사용하려고했지만 행운을 빕니다.텍스트 상자에 * foreign * 필드 값을 표시하려면 어떻게합니까?

답변

1

당신은 텍스트 상자의 컨트롤 원본으로하여 DLookup 사용할 수 있습니다

=DlookUp("[Name]", "Customer", "ID=" & Cust_ID) 

구문 : 조회 할 무엇, 문

이 문은 제트 SQL에 대한 규칙을 따라야합니다 테이블 이름, 필드가 텍스트 또는 날짜 형식 인 경우 구분 기호를 사용해야합니다.

이름은 실제로 무엇이든 매우 나쁜 이름입니다. 일이 악화되기 직전에 이름을 바꿀 것을 제안합니다.

오류를 아는 것이 유용 할 수 있습니다.

+0

코드를 Customer.id, Customer.name, Order로 업데이트하십시오.cust_id 키워드. VB는 제 장점이 아니며 몇 가지 오류 메시지가 나타납니다 :) –

+0

일부 메모가 있습니다. DlookUp은 양식에 대해 상당히 표준이며 MS 도움말에서 정보를 얻을 것입니다. 표현식 빌더는 내장 함수를 도울 수 있습니다. – Fionnuala

+0

그게 전부입니다. 감사! –

0

새보기 (예 : OrdersAndCustomerNames)를 만들고 양식에 사용하려는 모든 열을 선택한 다음 Order 테이블을 레코드 소스로 사용하는 대신 OrdersAndCustomerNames으로 전환하면됩니다. MS Access에 대한 경험이 없으므로 거대하고 지나치게 복잡한 것을 만들지 않는다고 생각합니다. 그래서 이렇게 할 것입니다. 나는 그것이 더 우아하게하게 될 수 있다고 아주 확신한다. 그러나 이것은 지금 할 것이다.

+0

감사하지만 4 ~ 5 개의 테이블을 사용하기 때문에 * 더 많은 컨트롤이 필요합니다. –

3

한 가지 방법은 텍스트 상자를 콤보 상자로 변환하는 것입니다. 그런 다음 customer 테이블의 cust_Id와 Customer.Name을 모두 포함하도록 행 소스를 설정하십시오. SQL 문 예제

Select Cust_ID, Name From Customer 
Order By Name; 

열 수를 2로 설정하고 열 너비를 0으로 설정하면, 첫 번째 열이 0 (즉, "0; 6")이면 외래 키가 사용자에게 표시되지 않고 고객 이름이 표시됩니다.

참고이 메서드는 목록에 대한 제한을 true로 설정해야합니다.

또한 원하는 결과가 아닌 드롭 다운 목록으로 끝납니다.

+0

여러 테이블의 양식 필드에 표시하고 싶습니다. 하나의 테이블에 외부 ID가 있습니다. 나는 텍스트 상자와 콤보를 사용할 것이다. VBA를 사용해야 만 신경 쓰지 않아도됩니다. –

+0

OK 기꺼이 도와 드리겠습니다. 테이블 디자인보기에서이를 설정할 수 있습니다. 그러면 폼을 만들 때 기본적으로 콤보 상자가됩니다. 그러나 이것의 단점은 외래 키 값을 숨기는 것입니다. – Mark3308

+0

나쁜 조언, Mark3308 - 테이블 디자인의 조회 필드는 너무 많은 문제를 유발하기 때문에 끔찍합니다 (표시된 값을 쿼리 할 수 ​​있다고 생각하지만 그 뒤에있는 값만 쿼리 할 수는 있습니다. 그). 콤보 상자는 UI 개체이며 테이블 및 쿼리는 UI 개체가 아닌 데이터 개체입니다 (UI로 인해 표시 될 수 있음). 콤보 상자는 양식에 속하고 다른 곳에는 없습니다. –

관련 문제