2015-07-28 4 views
0

У меня есть база данных MS Access и сохранили таблицу со всеми доступными именами столбцов (> 100 столбцов). Я добавил поле в эту таблицу, которое просто да/нет или true/false.MS Access, создать запрос с полями, выбранными на основе таблицы

Я хочу построить запрос в VB или не обязательно должен быть VB, что поля «Выбрать» основаны на том, что пользователь выбирает из этой таблицы. Я думаю, что добавление поля со списком или списка в пользовательскую форму было бы слишком занято, так как на выбор более 100 столбцов. Я думаю, что им легче открыть таблицу и выбрать этот путь, а затем нажать кнопку в форме, которая вызывает запрос построения, и выбирает только те поля, из которых пользователь выбирается в таблице Column_Names.

Любые идеи/предложения?

+0

я понял это –

ответ

0

Я думаю, что я понял это; по крайней мере, это работает для моих нужд. Я добавил окно списка в форму пользователя, которая по умолчанию отключает популяцию запроса, который возвращает только поля, которые имеют значение Да из моей таблицы Column_Name.

Затем я нашел функцию, которую я могу вызвать, которая выберет все значения в этом списке.

Затем я запускаю этот небольшой код для генерации SQL соответственно

Dim ctlList As Control, varItem As Variant 
    Dim strSQL As String 
    Dim strSQL2 As String 
    Dim qdf As DAO.QueryDef 
    Dim qdfDemo As QueryDef 
    Call SelectAll(Form_Custom_Criteria!List27) 
    Const conQUERY_NAME As String = "qry_custom_fields" 
    ' Return Control object variable pointing to list box. 
    Set ctlList = Forms!Custom_Criteria!List27 
    ' Enumerate through selected items. 
     For Each varItem In ctlList.ItemsSelected 
     strSQL = strSQL & ctlList.ItemData(varItem) & ", " 
     If strSQL = "" Then Exit Sub 
     Next varItem 
    CurrentDb.QueryDefs.Delete conQUERY_NAME 
    On Error GoTo Err_cmdTest_Click 
    strSQL_2 = "Select " & Left$(strSQL, Len(strSQL) - 2) & " FROM Table1;" 
    Set qdfDemo = CurrentDb.CreateQueryDef(conQUERY_NAME, strSQL_2) 

Exit_cmdTest_Click: 
    Exit Sub 

    Err_cmdTest_Click: 
    MsgBox Err.Description, vbExclamation, "Error in cmdTest_Click()" 
    Resume Exit_cmdTest_Click 
End Sub 
Смежные вопросы