2012-09-07 2 views
0

다른 질문 및 좋은 자습서로받은 도움 덕분에 내 라이브러리에있는 책을 보유 할 수있는 액세스 데이터베이스를 만들 수 있었고 이제는 좋은 양식을 가지고 있습니다 (여러 하위 양식 포함) 데이터베이스에 새 책을 입력하십시오. (모두 Access 2003에서만 기반으로합니다.)

다음 단계는 DB를 쿼리하고 책을 검색 할 수있게하는 것입니다.

다음 접근 방식을 고려 중이었지만 실현 가능성이 있는지, 노력이 금지되는지 여부는 확실하지 않습니다. 실제로 나는 이미 내 자신의 우려 및/또는 물음표가 있습니다.

내 접근 방식에 대한 의견을 공유하고 궁극적으로 내 우려 사항 중 일부를 해결해 주시겠습니까? (내 관심사를 해결하는 다른 질문 또는 리소스에 대한 링크는 완벽합니다.)
미리 감사드립니다.

포인트 1. 다른 종류의 쿼리를 수행하는 버튼이있는 컨트롤 폼을 만듭니다 (작성자, 제목 등). 또한 전체 데이터베이스에 대해 "자유 텍스트 검색"옵션을 갖고 싶습니다. 이 양식에는 작성자 검색 등의 검색 기준을 입력하는 필드도 포함됩니다.이 필드는 사용자에게 검색을 용이하게하기 위해 자동 완성 콤보 상자 여야합니다.
포인트 2. 실행될 여러 쿼리는 해당 버튼의 클릭 이벤트의 vba 코드에 "하드 코드"되어야합니다. 이것은 특히 다른 필드의 매개 변수를 전달해야 할 때 SQL 쿼리를 수동으로 작성하는 것이 더 쉽기 때문에 특히 그렇습니다. 게다가 폼에 곱셈을하고 DB에 별도로 쿼리를 저장할 필요가 없다고 생각합니다. 코드에 "저장"할 수 있습니다.
포인트 3. 그런 다음 쿼리의 최종 결과 (레코드 세트?)가 양식으로 표시됩니다. 나는 실행 된 질의에 관계없이 출력 할 동일한 필드를 항상 선택할 것이므로 단일 형식이 모든 다른 질의의 출력으로 사용되어야한다. 이런 이유로 양식을 원하며 모양과 행동을 한 번에 모두 사용자 정의 할 수 있습니다. 가능한 경우 형식은 데이터 시트 유형이어야합니다 (그러나 이것은 엄격한 요구 사항은 아닙니다). 검색 기준의 변화를 감안할 때 쿼리 결과가 휘발성 테이블/레코드 집합에 저장된다는 것은 완벽하게 문제가되지 않으며 각 요청마다 다시 채워 져야한다는 것은 문제가되지 않는다고 생각합니다.

포인트 1에 대한 우려. 자유 텍스트 검색이 실제로 가능합니까? 내가 어떻게 할 수 있니?
포인트 2에 대한 우려. 모든 입력 매개 변수를 사용하여 SQL 쿼리를 유지하는 문자열을 쉽게 작성할 수 있지만 쿼리를 실행하려면 어떻게해야합니까? 튜토리얼에서 내 검색은 혼란 스러웠고 더 이상이 방법을 모르겠습니다. 내가 별도로 쿼리를 저장하고 쿼리 컬렉션의 특정 쿼리를 참조하는 대신 오히려 "SQL 문자열"을 실행하는 것을 원하지 않는다고 말했습니다. 어떻게 이뤄지나요? 결과를 변수에 저장하려면 어떻게해야합니까? Recordset은 임시 테이블을 저장할 올바른 변수 유형입니까?
포인트 3에 대한 우려. "출력"양식은 어떻게 만듭니 까? 언바운드로 (디자인보기에서) 필드를 만들거나 내 데이터베이스의 테이블에 필드를 바인딩해야합니까? 변수의 데이터로 양식을 채우려면 어떻게해야합니까? 필자는 데이터베이스에 여러 다 대다 관계 (저자 및 서적 등)가 있으므로 데이터 시트를 실행할 수 있습니까? forma와 sub-forms를 다시해야한다면, "table"은 디자인 중에 존재하지만 "run time"에만 존재한다는 점에서 서브 폼과 메인 폼을 어떻게 연결해야합니까? 또한 vba 코드와는 다르고 하드 코드되기 때문에 쿼리가 없습니다.

P. 정보를 위해,이 모든 일은 "취미"로하고 새로운 일 (액세스 및 VBA)을 배우기 위해 ...여러 쿼리의 출력을 표시하는 단일 양식

답변

0

포인트 1. 다른 종류의 쿼리 (작성자, 제목 등)를 수행하는 버튼이있는 제어 양식을 만듭니다. 또한 전체 데이터베이스에 대해 "자유 텍스트 검색"옵션을 갖고 싶습니다. 이 양식은 또한 는이 필드 그래서 사용자에게 검색을 용이하게하기 위해 자동 완성으로 콤보 상자를한다, 예를 들어, 저자 검색에 대한 저자 등과 같은 검색 조건을 입력하는 필드가 포함됩니다.

당신은 확실히 양식을 채울 드롭 다운을 사용할 수 있습니다. 그것을위한 마법사가 있습니다. 드롭 다운을 사용하여 어디서나 검색 할 수는 없지만 편리한 검색 버튼이 있거나 InStr을 연결하여 사용할 수 있습니다.

포인트 2. 다른 쿼리 에서 "하드"한다 실행의 VBA 코드 온 클릭 해당 버튼의 이벤트를; 이 은 SQL 쿼리를 수동으로 작성하는 것이 더 쉽기 때문에 특히 다른 필드의 매개 변수를 전달해야 할 때 유용합니다. 플러스, 나는 그들에게 내 코드에 "저장"할 수 있습니다 때 DB에 별도 양식 및 저장 쿼리를 곱해야 할 필요성이 표시되지 않습니다 .

당신이 accdes/mdes

포인트 3. 쿼리의 최종 결과 (기록 세트?) 만들기 시작할 때 코드에서 쿼리를 유지하는 점을 볼 수는 다음 가 표시된다 형태로. 나는 관계없이 항상 그렇게 실행되는 하나의 양식 모든 다른 쿼리의 출력으로 사용되어야한다 쿼리의 같은 필드 출력을 선택합니다. 이런 이유로 양식이 필요합니다. 그러면 모양과 동작을 한 번 사용자 설정하고 모두 사용자 정의 할 수 있습니다. 가능한 경우 형식은 데이터 시트 유형이어야합니다 (단, 은 엄격한 요구 사항이 아님). 검색 기준의 분산을 감안할 때, 나는 쿼리 결과 휘발성 테이블/기록 세트에 저장되고 그들이 각 요청에 다시 채울 수 에이 문제가 아니라는 것을 완벽하게 정상적으로이라고 생각 .

다시 채우기가 팽창으로 이어질 수 있습니다. 가능한 경우 MS Access에서 임시 테이블을 사용하지 마십시오.

+0

그래서 대신 무엇을 하시겠습니까? – rodedo

+0

무엇 대신에? 임시 테이블? 거의 항상 적절한 쿼리를 작성할 수 있습니다. 임시 테이블이 필요한 경우에만 실패합니다. 필요한 모든 것이 검색 일 때 절대 필요하지 않습니다. – Fionnuala

+0

죄송합니다. 어쩌면 나는 자기 자신을 시험하지 않았을 것입니다. 나는 전체적인 생각을 설명하고 있었다. 당신은 그 점들에 관해서 논평했지만 제 관심사/질문들에 대답하지 않았습니다. 그래서 나는 전체 생각을 실패로 생각했기 때문에 대신 당신이 어떻게 진행해야하는지 묻습니다. – rodedo

관련 문제