2016-04-05 25 views
0

私はこれを理解することはできません、私はSQL Server管理でステートメントを実行し、すべてのレコードセットを返しますが、最初のデータセット。SQL Serverクエリは、最初の1行だけを返します

私は同じ簡単なSELECTステートメントをSQL Fiddleで試してみましたが、これはどうしたらよいのでしょうか?ここで

|column1(nvarchar(50)) | column2(nvarchar(50))| 
----------------------------------------------- 
|Section1    | 1234     | 
|Section2    | 1234     | 
|Section3    | 1234     | 
|Section3    | 1234     | 
----------------------------------------------- 

それがコードを実行した後に終わるようにして、私は

SELECT column1, column2 
FROM Table1 
WHERE column2 = '1234'; 

データが見えるべき方法を行うにしようとしています何を証明するSQL Fiddleです。

|column1(nvarchar(50)) | column2(nvarchar(50))| 
----------------------------------------------- 
|Section1    | 1234     |  
----------------------------------------------- 

私が使用しているコード。

Dim conn As ADODB.Connection 
    Dim rs As ADODB.Recordset 
    Dim sConnString As String 
    sConnString = "PROVIDER=SQLOLEDB;" & _ 
            "Data Source=190.190.10.XXX,1433;" & _ 
            "Initial Catalog=my_DB;" & _ 
            "User Id=sa;" & _ 
            "Password=my_Password;" 

       Set conn = New ADODB.Connection 
       Set rs = New ADODB.Recordset    
       conn.Open sConnString 
     strSQL = "SELECT Section_Data, Words_Data FROM Words_TBL WHERE Words_Data = '1234'"      
          rs.Open strSQL 
          If rs.EOF = False Then 
           x = rs.GetRows 
          Else 

          For i = LBound(x) To UBound(x) 
            Debug.Print x(i, 0) 
          Next i 
+2

あなたのコードを教えていただけますか? – Squirrel

+0

あなたのコードを含めずにコードが機能しない理由を教えてください。私たちがどのように助けてくれると思いますか? –

+0

私の悪い、私はそれを置くことになっていた。今行うだろう。 –

答えて

1

二次元アレイにレコードからレコードをコピーするGetRowsメソッドを使用します。 は最初の下付き文字でフィールドを識別し、 は2番目にレコード番号を識別します。 GetRowsメソッド がデータを返すとき、配列変数は で、自動的に正しいサイズにディメンション化されます。

For i = LBound(x) To UBound(x) 
    Debug.Print x(i, 0) 
Next i 

私は範囲にすべてのデータをコピーするCopyFromRecordsetメソッドを使用します

For i = LBound(x, 2) To UBound(x, 2) 
    Debug.Print x(0, i) 
Next i 
+0

私はこれを信じることができません。 、Get-rows配列の代わりにワークシート配列のループを使用していました。私はGetRows配列を使ってこれらのステートメントを何百も持っており、ループについて忘れてしまったSQLステートメントに集中していました。ありがとう、それはそれを修正した。あなたのためのRep。 –

0

でなければなりません。はるかに迅速ですが、最初にすべてのフィールド名をループして見出しを作成する必要があります。

関連する問題