2016-07-07 12 views
0

コンボボックスで選択されたマネージャに応じてマネージャに「期限切れ」レコードがテーブル内にあるレコードの数で更新するAccessのテキストボックスを、私は似ていMS ACCESS複数の条件に基づいてテーブルからレコードを集計する

...それは私にエラー「がいくつかのパラメーター1を期待する。」を与える私はコンボボックスからオプションを選択すると

Private Sub Combo26_AfterUpdate() 

Dim rs As DAO.Recordset 

Set rs = CurrentDb.OpenRecordset("SELECT Advisor FROM tbltargets WHERE manager = '" & Me.Combo26.Column(0) & "' AND overdue = 'Overdue'") 
If rs.EOF Then 
Me.Text35 = 0 
MsgBox "no overdue records", vbOKOnly 
Else 
rs.MoveLast 
Me.Text35 = rs.RecordCount 
rs.Close 
End If 

End Sub 

:私は、コードを次しているが、エラーを取得していますなぜ上のエラーが発生しているのか分かりませんので、助けてくれますか?

+0

をNULL値に対してある程度の保護を追加しましたエラーでMe.Combo26.Column(0)とは何ですか? DCOUNTは、manager = 'xyz'、期限= '期限切れ'のtblTargetsからのCTとしてのコードまたはselect count(advisor)が少なくなる –

+0

help.combo 26のおかげで、テーブルのマネージャーの名前がエラーが発生します。 –

答えて

0

チェックcombobox.value代わり

  • combobox.columnCOUNT(*)にSQLを変更し、パーフを改善するために、それに応じてコードを適応に使用され、この

    Private Sub Combo26_AfterUpdate() 
    
    Dim rs As DAO.Recordset 
    
    
    If IsNull(Combo26.value) Then Exit Sub 
    
    Set rs = CurrentDb.OpenRecordset("SELECT COUNT(*) AS CNT FROM tbltargets WHERE manager = '" & Combo26.value & "' AND overdue = 'Overdue'") 
    
    If Not rs.BOF Then 
    
        If Nz(rs!CNT, 0) = 0 Then 
         Me.Text35 = 0 
         MsgBox "no overdue records", vbOKOnly 
        Else 
         Me.Text35 = rs!CNT 
        End If 
    End If 
    
    End Sub 
    
    1. のような、ありがとう。
    2. は(あなたが本当にこのサブでエラーハンドラを追加する必要があります)
  • +0

    トマスありがとう、私はちょうどこれを行ったが、同じ "パラメータが少なすぎる、予想される1"のエラーが発生しています。 –

    +0

    ブレークポイント/ CTRL-ブレイクし、ラインを与えてください –

    +0

    rs = CurrentDb.OpenRecordsetを設定してください( "CNTからCNTを選択してください"、 "Combo26.Value&" 'ANDdudue =' Overdue '") –

    関連する問題