私の質問は簡単かもしれませんが、私は適切な解決策を見つけるのに苦労しています。Excel VBA ADOループ
私はADO接続を使用して、
そして、ユニークな6桁のIDが列Aを満たしている最初のものでは、Excelスプレッドシートのカップルを持って、私はこれらのユニークなIDのそれぞれに対応した情報を取得する必要があります
これまでのところ、私は以下のコードを実装していますが、これは最善の方法ではないと確信しています(遅くても)
確かに、私はADOなしでこれを行うVBAルーチンを持っていますが、情報量はますます大きくなり、間もなく問題になる。希望ADOは私がそれを管理するのに役立ちます
、
Sub UpdateCurrentStatus()
Dim sSQLQry As String
Dim ReturnArray
Dim Conn As New ADODB.Connection
Dim mrs As New ADODB.Recordset
Dim DBPath As String, sconnect As String
Dim UID As String
If MsgBox("Is the Labinal extract up-to-date?", vbYesNo) = vbNo Then Exit Sub
Application.ScreenUpdating = False
DBPath = Application.GetOpenFilename(Title:="Select second spreadsheet", FileFilter:="CSV (Comma delimited) (*.csv), *.csv")
sconnect = "Provider=MSDASQL.1;DSN=Excel Files;DBQ=" & DBPath & ";HDR=Yes';FMT=Delimited(;)"
Conn.Open sconnect
y = 2
Do
UID = ThisWorkbook.Worksheets("Sheet1").Cells(y, 1).Value
sSQLSting = "SELECT [CurrentPhase] From [LabinalExtract$] where TicketReference =" & UID ' Your SQL Statement (Table Name= Sheet Name=[Sheet1$])"
mrs.Open sSQLSting, Conn
Sheets(1).Range("B2").CopyFromRecordset mrs
mrs.Close
y = y + 1
Loop While ThisWorkbook.Worksheets("Sheet1").Cells(y, 1) <> ""
Conn.Close
End Sub
あなたのデータファイルの行数とクエリのIDはいくつですか?クエリから返されたレコードが常にゼロまたはゼロになると期待していますか? –
'CopyFromRecordset'の場所は決して変更されないので、各ループで出力を上書きします。 – Parfait
はい、あなたはrigth、申し訳ありません、私は出力を上書きしていた、本当のあなたのフィードバックのために、あなたのフィードバックのためのおかげで、上書きされました –