당신은 쿼리 창처럼 보이는 데이터 시트보기에서 폼을 열 수 있지만, 사용자가 설정 한 다음 레코드 원본
예를 형태가에 컨트롤을 추가 생성 할 필요가
Dim rst As DAO.Recordset
Dim rsField As DAO.Field
Dim control As Access.TextBox
Dim frm As Form
Set frm = CreateForm()
frm.Visible = False
Dim sql As String
sql = "Select * from MSysObjects"
Set rst = CurrentDb.OpenRecordset(sql)
For Each rsField In rst.Fields
Debug.Print rsField.Name
Set control = CreateControl(frm.Name, acTextBox, acDetail)
With control
.Width = 100
.Height = 100
.Top = 100
.Left = 100
.ControlSource = rsField.Name
.Name = rsField.Name
End With
Next rsField
Set rst = Nothing
frm.Visible = True
frm.RecordSource = sql
DoCmd.OpenForm frm.Name, acFormDS
여기에는 몇 가지 문제가 있습니다.
- 매번 새로운 양식을 만듭니다. 즉, 사용자가 양식을 닫으면 저장할 것인지 묻는 메시지가 나타납니다. 따라서 기존 서식을 열고 수정 (기존 항목 지움)을 조사하고자 할 수 있습니다.
- 쿼리가 두 번 실행됩니다. 처음에는 필드를 가져오고 두 번째 필드는 실제로 양식을 표시합니다. 쿼리에 따라이 작업이 문제 일 수도 있고 아닐 수도 있습니다.
정직하게 querydef를 수정하는 것이 더 건강한 방법 일 것입니다.
쿼리 데이터 시트는 끔찍한 UI입니다. 왜 너는 그보다 더 나은 것을 위해 정착 하겠어? –
@ David-W-Fenton, 이미 내 디자인이 아닌 다른 3 개의 검색 페이지에서 UI를 복사합니다. 이것은 다른 3 개의 옵션과 조금 더한 옵션이 결합 된 고급 검색 페이지입니다. – Gage
그래서 열악한 UI가 이미 존재하기 때문에 열악한 사용자 인터페이스를 계속 사용하고 있습니까? 그것은 당신에게 좋은 장기 전략처럼 들리는가? –