Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在VB6的DataCombo中添加一个空白项_Vb6 - Fatal编程技术网

在VB6的DataCombo中添加一个空白项

在VB6的DataCombo中添加一个空白项,vb6,Vb6,我已经编写了以下代码来绑定datacombo With dtcType Set .RowSource = recType .ListField = "Type" .BoundColumn = "TypeId" End With 我想在DataCombo顶部添加一个空白项(绑定DataCombo后-用户也可以选择空白项)。我怎样才能做到这一点?据我所知,没有直接的方法来添加项目doDataCombo。 你可以考虑两种选择。 如果您的

我已经编写了以下代码来绑定datacombo

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

我想在DataCombo顶部添加一个空白项(绑定DataCombo后-用户也可以选择空白项)。我怎样才能做到这一点?

据我所知,没有直接的方法来添加项目do
DataCombo
。 你可以考虑两种选择。 如果您的SQL看起来更像以下内容:

SELECT Id, Code FROM my_table
您可以使用
SELECT
添加人工记录,而不使用
FROM
子句和
UNION

SELECT -1 As Id, '' As Code 
UNION ALL
SELECT Id, Code FROM my_table
第二个选项是将
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

据我所知,没有直接的方法来添加项目do
DataCombo
。 你可以考虑两种选择。 如果您的SQL看起来更像以下内容:

SELECT Id, Code FROM my_table
您可以使用
SELECT
添加人工记录,而不使用
FROM
子句和
UNION

SELECT -1 As Id, '' As Code 
UNION ALL
SELECT Id, Code FROM my_table
第二个选项是将
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