2015-04-15 37 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以解決該問題。

請注意,您需要修改表中的先前數據以刪除填充。