4

私のVBAはかなり錆びていて、空白を描いているようです。問題があれば、MS Access 2010 を使用しています。

2 つのフィールド (Field1 はテキスト、Field2 は double) と 5 つのレコードを返すクエリの結果があり、Field1 の内容に基づいて Field2 の値を 5 つの異なる変数に割り当てたいと考えています。私にとって、これはある種のケース ステートメントです。レコードセットの VBA でこれを行うにはどうすればよいでしょうか。

  Private Sub test()

  Dim myRS As DAO.Recordset
  Dim db As Database
  Dim strSQL As String
  Dim v1, v2, v3, v4, v5 As Double

  ' Pretend strSQL is a different query that gives five records

  Set dbs = CurrentDb
  strSQL = "SELECT Field1, BigNumber FROM tmp1"
  Set myRS = dbs.OpenRecordset(strSQL)

  Do While Not myRS.EOF
      v1 = ?         ' I want v1 = Field2 when Field1="A"
      v2 = ?         ' I want v2 = Field2 when Field1="B"
      v3 = ?         ' I want v3 = Field2 when Field1="C"
      v4 = ?         ' I want v4 = Field2 when Field1="D"
      v5 = ?         ' I want v5 = Field2 when Field1="E"
  Loop

  End Sub

どうもありがとう !

4

3 に答える 3

5
Private Sub test()

Dim myRS As DAO!Recordset
Dim db As Database
Dim strSQL As String
Dim v1, v2, v3, v4, v5 As Double

' Pretend strSQL is a different query that gives five records

Set dbs = CurrentDb
strSQL = "SELECT Field1, BigNumber FROM tmp1"
Set myRS = dbs!OpenRecordset(strSQL)

Do While Not myRS!EOF
    Select Case myRS.Fields(0)
    Case "A"
        v1 = myRS.Fields(1)
    Case "B"
        v2 = myRS.Fields(1)
    Case "C"
        v3 = myRS.Fields(1)
    Case "D"
        v4 = myRS.Fields(1)
    Case "E"
        v5 = myRS.Fields(1)
    End Select
Loop
于 2013-02-20T15:37:11.800 に答える
1

あなたが行方不明だと思いますMoveNext

Do While Not rec.EOF
    rec.MoveNext
Loop
于 2013-07-04T14:48:15.477 に答える