0

リストボックスから選択したフィールドを検索する個別の選択クエリがあります。ただし、カウントを区別したいのですが、コードを正しく取得できないようです。以下は、個別の選択のための私の作業コードです。数え切れないほどの質問を検索しましたが、リストボックスの選択に固有の質問はありません。

Private Sub CmdDistinctVal_Click()
Dim cn1 As ADODB.Connection
Dim rs1 As New ADODB.Recordset
Dim cmd1 As New ADODB.Command
Dim varItem As Variant
Dim aFields() As aArray
Dim NumRows As Integer
Dim NumFields As Integer
Dim colcount As Integer
Dim colwidths As String
Dim strRow As String
Dim cnt1 As Integer
Dim cnt2 As Integer

'On Error GoTo Err_ CmdDistinctVal_Click

'cmd1.ActiveConnection = CurrentProject.Connection

Me.DistinctResultsFldVal.RowSource = ""

ReDim aFields(50)
For cnt1 = 1 To 50
ReDim aFields(cnt1).fValue(6000)
Next

NumRows = 0
colcount = 0

For Each varItem In Me!ResultsFieldList.ItemsSelected
    colcount = colcount + 1
    aFields(colcount).fName = Me!ResultsFieldList.ItemData(varItem)
    NumFields = 0

    rs1.Open "SELECT DISTINCT " & Me!ResultsFieldList.ItemData(varItem) & " 
FROM [Results Report]", CurrentProject.Connection, adOpenKeyset, adLockOptimistic


If rs1.RecordCount > NumRows Then NumRows = rs1.RecordCount
strRow = strRow & Me!ResultsFieldList.ItemData(varItem) & ";"

While Not rs1.EOF
    NumFields = NumFields + 1
    If NumFields > NumRows Then
        NumRows = NumFields
    End If

    aFields(colcount).fValue(NumFields) = rs1(0) & ""


    rs1.MoveNext
Wend
rs1.Close
Next varItem
strRow = Left(strRow, Len(strRow) - 1)

Me.DistinctResultsFldVal.ColumnCount = colcount
Me.DistinctResultsFldVal.ColumnWidths = Mid(colwidths, 2)
Me.DistinctResultsFldVal.AddItem (strRow)

For cnt1 = 1 To NumRows

strRow = ""
For cnt2 = 1 To colcount
    If aFields(cnt2).fValue(cnt1) = "" Then
        strRow = strRow & ";"
    Else
        strRow = strRow & aFields(cnt2).fValue(cnt1) & ";"
    End If
Next
strRow = Left(strRow, Len(strRow) - 1)
Me.DistinctResultsFldVal.AddItem (strRow)

Next

'Err_ CmdDistinctVal_Click:
    'MsgBox "All null values were found in one or more of your selected fields"

End Sub
4

0 に答える 0