2016-06-27 10 views
0

時間を割いてくれてありがとうございました。これは初めての質問です。既存の質問と回答を多くの成功を収めています。私はこのサイトの巨大なファンです!Excel VBA複数列リストボックスは、1つのレコードのみが返されたときに次の行に折り返します。

とにかく - ポイントまで。私はユーザーフォームで使用されるいくつかのリストボックスを含むプログラムを書いた。私は、Oracleデータベースを照会するSQL文から派生した配列から、これらの複数列のリストボックスを作成しています。クエリ結果のレコードが特定の基準を満たすと、そのレコードがエンドユーザー用にリストボックスに公開されます。

問題:クエリのレコードが1つしか条件を満たすと、列は1つの行ではなく複数の行にラップされます。これは、ユーザーが行をクリックしたときに起こりそうな問題を引き起こします。 1つのレコードしかない場合でも、クエリの単一のレコードに関連付けられたすべての列がリストボックスの1つの行に書き込まれる必要があります。面白い部分: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 

答えて

0

変更:これに

.List = Application.Transpose(oArray4) 

:あなたは素晴らしいです

.Column = oArray4 
+0

は、ここに私のコードの一部です!それはそれを修正した。あなたの助けを借りてありがとうございます:) –

関連する問題