2015-04-15 40 views
0

我创建了一个包含多组合框的用户窗体。用户可以从列表中选择项目或输入新项目。该列表中充满了从数据库中选择的数据(MS SQL 2012)。然后,Userform执行存储过程并将数据插入到数据库中的表中。Excel vba组合框 - 项目名称后面的空格

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

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 

我会任何提示感谢如何避免这些空白。

+0

您可以共享数据来自哪个表的模式吗? – Gareth

+0

在这种情况下,这是一个简单的Person表,只有ID和人名: http://i58.tinypic.com/2ij2c1x.jpg 对于其他组合框表有多列,但我只从一列中选择数据 – kkris77

+0

对不起,我的意思是什么类型的表中的名称字段,即'nchar'等 – Gareth

回答

1

nchar and char都填充表中的字符串。

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

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