[英]Excel VBA Multi Column Listbox wrapping to next row when only one record returned
预先感谢您抽出宝贵的时间来帮助我。 这是我第一次在这里提出问题-因为我在研究现有问题和答案方面取得了很大的成功! 我是这个网站的忠实粉丝!
无论如何-到这一点。 我编写了一个程序,其中包括一些在用户表单中使用的列表框。 我正在从查询Oracle数据库的SQL语句派生的数组中填充这些多列列表框。 当查询结果中的记录满足某些条件时,该记录将在列表框中为最终用户发布。
问题是:当查询中只有一条记录满足条件时,列将被包装为多行,而不是一行。 当用户单击一行时,这会引起我打算发生的问题。 我需要将与查询中的一条记录关联的所有列都只写到列表框的一行中,即使只有一条记录也是如此。 有趣的部分:当返回2条或更多条记录时,它可以很好地发布到列表框中。
感谢您的帮助! 我已经用尽了所有的在线搜索,但还没有发现这样的普遍问题。
这是我的一些代码:
.ConnectionString = strDBConnectWrite 'Connect to database
.CursorLocation = adUseClient 'Necessary for creating disconnected recordset
.Open 'Open Connection
End With
With oTbl4
.ActiveConnection = oDB
.source = strSQL4 'SQL statement above
.LockType = adLockReadOnly
.Open
'Populate the array with the recordset
oArray4 = .GetRows
k = .Fields.Count
End With
x = oTbl4.RecordCount 'for debugging purposes during development
'Debug.Print "oTbl4 count" & x
With frmValidationForm.listAddresses 'listbox to which I want to publish the query results
.ColumnCount = 8
.ColumnWidths = "100;0;0;0;0;0;0;0"
.Clear 'Clears the listbox
.BoundColumn = 1
.List = Application.Transpose(oArray4)
.ListIndex = -1
End With
更改此行:
.List = Application.Transpose(oArray4)
对此:
.Column = oArray4
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.