2017-05-22 8 views
0

command9ボタンをクリックすると、combo7と一致するレコードの数をカウントするためにカウント関数を使用し、合計レコードの20%を計算します。その後、Updateステートメントを使用して、フィールドInsp_Typeを「C」に更新します。これにより、前に計算された合計レコードの20%にレコード数が制限されます。Microsoft Access VBA合計レコードの割合のフィールドを設定する

これは私がこれまでに持っていたものの、カウントラインに構文エラーが発生したコードです。

Private Sub Command9_Click() 
Dim strSql As String 
Dim Rec_Qty As Integer 
Dim Rec_Perc As Integer 
'Return record count for all records in Tbl_Inspections matching WO_ID in Combo7 and Insp_Cat =1 

Rec_Qty = Count (WO_ID & Insp_Cat) Where [WO_ID]= Me.[Combo7]& [Insp_Cat]=1 From Tbl_Inspections 

Rec_Per = Rec_Qty * 0.2 

'Update records for "C" 20% records using Rec_Per value in limit function of Update command 
strSql = "Update Tbl_Inspections" 
strSql = strSql & "Set Insp_Type = 'C' WHERE WO_ID = Me.Combo7 & Insp_Cat = 1 & Limit = Rec_Per" 
CurrentDb.Execute strSql 
End Sub 

誰でも手助けできますか?

+0

* Rec_Qty *ラインの擬似コードですか?つまり、VBAでは準拠していません。また、更新クエリの 'Set'の前にスペースが必要です。 – Parfait

答えて

0

フォームまたはレポートのクエリまたはテキストボックス内でのみ、VBAでCount()関数を使用することはできません。

DCount()およびVBAで使用されるその他のドメイン集約関数。

リテラルテキストと変数を連結します。

Rec_Qty = DCount("*", "Tbl_Inspections", "[WO_ID]= " & Me.[Combo7] & " AND [Insp_Cat]=1")

CurrentDb.Execute "Update Tbl_Inspections Set Insp_Type = 'C' WHERE WO_ID = " & Me.Combo7 & " AND Insp_Cat = 1 AND Limit = " & Rec_Per

関連する問題