【问题标题】:Excel vba combobox - white spaces after item's nameExcel vba组合框 - 项目名称后的空格
【发布时间】:2015-04-15 09:32:31
【问题描述】:

我创建了一个带有多个组合框的用户表单。用户可以从列表中选择项目或键入新项目。该列表填充了从数据库 (MS SQL 2012) 中选择的数据。然后用户窗体执行一个存储过程并将数据插入到数据库中的表中。

当从列表中选择项目时,它以蓝色突出显示,并且项目后有一些空格。我不知道它们来自哪里以及如何摆脱它们。我已经将一些项目直接插入到数据库中,所以不应该有任何空格。我还使用用户表单添加了一些,也不应该是任何一个。这是打印屏幕的样子:

image(张贴图片的名声太小)

我用来填充组合框的代码:

    Private Sub cboImię_Enter()


On Error GoTo Combobox_Initialize_Err

    Dim rsImię As New ADODB.Recordset

    rsImię.Open "SELECT DISTINCT Imię FROM Osoba;", con, adOpenStatic

    If rsImię.RecordCount = 0 Then
        cboImię.AddItem
            ElseIf cboImię.ListCount = 0 Then
                rsImię.MoveFirst
                With Me.cboImię
                    Do
                        .AddItem rsImię!Imię
                        rsImię.MoveNext
                    Loop Until rsImię.EOF
                End With
            Else: GoTo Combobox_Initialize_Exit
    End If

Combobox_Initialize_Exit:
    On Error Resume Next
    rsImię.Close
    Set rsImię = Nothing
Exit Sub

Combobox_Initialize_Err:
    MsgBox Err.Number & vbCrLf & Err.Description, vbCritical, "Error!"
        rsImię.Close
        Set rsImię = Nothing
        con.Close
        Set con = Nothing
End Sub

如果有任何提示如何避免这些空白,我将不胜感激。

【问题讨论】:

  • 您能分享数据来自的表的架构吗?
  • 在这种情况下,它是一个简单的 Person 表,只有 ID 和人名:i58.tinypic.com/2ij2c1x.jpg 对于其他组合框表有多个列,但我只从一列中选择数据
  • 对不起,我的意思是表中的名称字段是什么类型,即nchar
  • 见鬼,你明白了。数据类型:CREATE TABLE dbo.Osoba ( Osoba_ID INT NOT NULL IDENTITY (1,1), Imię CHAR (8) NOT NULL, PRIMARY KEY (Osoba_ID) );
  • 应该是varcharnvarchar。在其他组合框中我有同样的问题,数据类型是nchar

标签: sql-server excel combobox vba


【解决方案1】:

ncharchar 都在你的表中填充字符串。

将数据类型更改为nvarcharvarchar 以解决问题。

请注意,您需要修改表格中的先前数据以删除填充。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-23
    • 1970-01-01
    • 1970-01-01
    • 2019-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多