初めてのポスターで、私は最終的に私がここで答えを見つけることができないという質問をしました。vbaは整数変数としてレコードセットを格納します
私は整数変数(x)として格納する1つの結果(数値)を返すMS Accessクエリを持っていますので、後でループに使用できます。問題は、私がレコードセットとして使用しているため、変数が整数であるため、「型の不一致」エラーが発生しています。
は、今私はただのセルに結果を格納し、セルに等しい変数を設定しています:
Ws.Range("A1") = Db.OpenRecordset("SELECT COUNT(Asset_Name) FROM Assets WHERE Active = True").GetRows(1)
x = Ws.Range("A1")
Ws.Range("A1").Delete
そしてその後、私はちょうどX回を実行ループがあります。
をx = Db.OpenRecordset("SELECT COUNT(Asset_Name) FROM Assets WHERE Active = True").GetRows(1)
:
For i = 0 To x
は基本的に、私はこのようになりますいくつかのコードを持っていると思います
ここで助けがあれば巨大になるでしょう。ありがとうございました!
Dim x As Integer
Dim db As DAO.Recordset
db.MoveFirst
If IsNumeric(db.OpenRecordset("SELECT COUNT(Asset_Name) FROM Assets WHERE Active = True").Fields(0).Value) Then
x = CInt(db.OpenRecordset("SELECT COUNT(Asset_Name) FROM Assets WHERE Active = True").Fields(0).Value)
Else
MsgBox "The query did not return a number." & Chr(10) & "Aborting..."
End If
ノート、ポスト上の元のタグが示されているように、あなたがDAO
なくADO
を使用していること:
これをテストするものはありませんが、 '.GetRows'メソッドの' .Value'プロパティはありますか?または、 'x = CInt(LBound(Db.OpenRecordset)(SELECT COUNT(Asset_Name)FROM Asset Active = True ')。GetRows(1)))' –
ステートメントの末尾に '.value'を追加すると、 'x = Db.OpenRecordset(" SELECT COUNT(Asset_Name)FROM Assets WHERE Active = True ")。GetRows(1).Value'" Object Required "エラーが発生します。 –
あなたの声明を待ち伏せてください。あなたのコードはエラーではありませんが、xはゼロとして返します。しかし、これはまだ進歩しています。 –