1

データコンボをバインドする次のコードを作成しました

With dtcType
        Set .RowSource = recType
            .ListField = "Type"
            .BoundColumn = "TypeId"
End With

DataCombo の上部に空白のアイテムを追加したい(datacombo をバインドした後 - ユーザーは空白のアイテムを選択することもできます)。これどうやってするの?

4

1 に答える 1

1

私が覚えている限りでは、アイテム do を直接追加する方法はありませんDataCombo。2 つのオプションを検討できます。

SQL が次のように見えない場合:

SELECT Id, Code FROM my_table

SELECTwithoutFROM句を組み合わせて使用​​して人工記録を追加できますUNION

SELECT -1 As Id, '' As Code 
UNION ALL
SELECT Id, Code FROM my_table

2番目のオプションは、次のような方法でアイテムを置き換えDataComboて入力することです:Combobox

Public Sub Populate(ByRef pData As ADODB.Recordset, _
                ByVal pIdField As String, _
                ByVal pDataField As String, _
                Optional pEmptyItem As Boolean = False, _
                Optional pEmptyItemId As Long = -2, _
                Optional pEmptyItemCaption As String = "")

    If m_ComboboxControl Is Nothing Then Exit Sub

    If pEmptyItem Then
        m_ComboboxControl.AddItem pEmptyItemCaption
        m_ComboboxControl.ItemData(m_ComboboxControl.NewIndex) = pEmptyItemId
    End If   

    With pData

        If Not (.BOF And .EOF) Then
            Do While Not .EOF
                Select Case TypeName(pData.Fields(pDataField).Value)
                    Case "Date"
                        m_ComboboxControl.AddItem Format(pData.Fields(pDataField), "DD-MM-YYYY")
                    Case Else
                        m_ComboboxControl.AddItem pData.Fields(pDataField)
                End Select
                m_ComboboxControl.ItemData(m_ComboboxControl.NewIndex) = CLng(pData.Fields(pIdField))

                .MoveNext
            Loop
        End If


    End With

End Sub
于 2012-06-12T07:22:24.223 に答える