2017-09-08 44 views
0

私に実行時エラー3021を与えているこのコードを修正する方法は完全にはわかりません:現在のレコードがありません。実行時エラー3021

このボタンをクリックすると、クエリの最初のレコードの結果がいくつかのテキストボックスに表示されます。次に、別の2つのテキストボックスにMoveNextを使用してクエリの結果の次のレコードを入力することになっています。

Private Sub btnSCC07_Click() 

Dim dbs As DAO.Database 
Dim rsTable As DAO.Recordset 
Dim rsQuery As DAO.Recordset 


Set dbs = CurrentDb 

Set rsQuery = dbs.OpenRecordset("SELECT * FROM qrySccS2 WHERE PAYORNAME = 'Medicaid' AND OVERRIDECODESALL = 7", dbOpenDynaset) 

rsQuery.FindFirst ("[PAYORNAME]='Medicaid'") 
num1 = rsQuery!PAYPLANNAME 
num2 = rsQuery!Count 
txtMedicaid9 = num1 
txtMedicaidCount9 = num2 
Debug.Print (txtMedicaid9) 


rsQuery.MoveNext 
Debug.Print ("Test") 
num3 = rsQuery!PAYPLANNAME 
num4 = rsQuery!Count 
txtMedicaid10 = num3 
txtMedicaidCount10 = num4 


rsQuery.Close 
Set rsQuery = Nothing 

だから、最初のセクションの作品が、それはそれはエラーをスローどこラインNUM3 = rsQuery!のPAYPLANNAMEが到達したときにそれはです。あなたが提供できる可能性のある洞察を事前にありがとうございます。

+0

をあなたは結果が返されていることを確認するレコード数を確認する必要があります。 rsQuery.RecordCount or rsQuery.EOF – Sorceri

+0

@Scercer hmmだから私はそれを試してみたところ、debug.printは1を返しました...しかし、パラメータを使ってクエリ自体を実行すると、12の結果が返されますか? –

+0

カウントを強制するには、レコードセット 'rsQuery.MoveLast rsQuery.MoveFirst'を開いた直後に行を使用します。なぜあなたはループのないMoveNextを持っていますか? – June7

答えて

0

あなたはNOMATCHEOFを使用して、安全果たすべきである:

Set rsQuery = dbs.OpenRecordset("SELECT * FROM qrySccS2 WHERE PAYORNAME = 'Medicaid' AND OVERRIDECODESALL = 7", dbOpenDynaset) 

If rsQuery.RecordCount > 0 Then 
    rsQuery.FindFirst "[PAYORNAME]='Medicaid'" 
    If Not rsQuery.NoMatch Then 
     num1 = rsQuery!PAYPLANNAME.Value 
     num2 = rsQuery!Count.Value 
     txtMedicaid9 = num1 
     txtMedicaidCount9 = num2 
     Debug.Print txtMedicaid9 

     If Not rsQuery.EOF Then 
      rsQuery.MoveNext 
      Debug.Print "Test" 
      num3 = rsQuery!PAYPLANNAME.Value 
      num4 = rsQuery!Count.Value 
      txtMedicaid10 = num3 
      txtMedicaidCount10 = num4 
     End If 
    End If 
End If 
rsQuery.Close 

Set rsQuery = Nothing 
+0

これは完璧に働いてくれて、ありがとう! –

+0

何らかの理由で、実際のクエリで実行中の条件を削除してもコード内に保持すると、現在のレコードが見つかりませんでした。それに関する考え方は? –

+0

私はそれを理解しました...明らかに私は10の結果だけを返すようにクエリを制限しました.... durrr –