1

CrewName、KitNumber、および ActionDate という名前の 3 つのフィールド テキスト ボックスを含む「Crew」サブフォームがあります。このフォームには、ボタンからのデータが取り込まれます。私がやりたいことは、Crew サブフォームの外にある「ClearEntry」と呼ばれるこのバインドされていないテキスト フィールドに、「111111」などの数字をユーザーに入力させることです。次に、「ClearSelected」という名前の下にコマンド ボタンを配置します。これをクリックすると、Crew サブフォームの対応するレコードがクリアされます。したがって、基本的には、このバインドされていないテキストを入力し、ボタンを押して、その番号を Crew サブフォームの同じ番号に対応させ、そのフォームのレコードを削除したいと考えています。コマンドボタン用に現在持っている私のコードは以下のとおりです。

Private Sub ClearSelected_Click()
DoCmd.SetWarnings False
DoCmd.RunSQL = "DELETE FROM Crew WHERE KitNumber = '" & Me.ClearEntry & "'"
Crew.Form.Requery
End Sub

これはできますか?

4

2 に答える 2

1

引数はオプションではありません」というコンパイル エラーは、 の=後の記号が原因で発生しDoCmd.RunSQLます。それを取り除く:

DoCmd.RunSQL "DELETE * FROM Crew WHERE KitNumber = '" & Me.txtClearKitEntry& "'"

次に、テキストではなく数値であるため、「条件のタイプの不一致」について不平を言うエラーが表示されます。Crew.KitNumberそのため、単一引用符を追加しないでくださいMe.txtClearKitEntry

DoCmd.RunSQL "DELETE * FROM Crew WHERE KitNumber = " & Me.txtClearKitEntry

ただし、代わりにこのアプローチをお勧めしますDoCmd.RunSQL。を使用していないときは、オフ ( )RunSQLにする動機がありません。 SetWarningsFalse

Private Sub ClearKitSelected_Click()
    Dim strMsg As String
    Dim strSql As String

On Error GoTo ErrorHandler

    strSql = "DELETE FROM Crew WHERE KitNumber = " & Me.txtClearKitEntry
    CurrentDb.Execute strSql, dbFailOnError
    Me.Crew.Requery

ExitHere:
    On Error GoTo 0
    Exit Sub

ErrorHandler:
    strMsg = "Error " & Err.Number & " (" & Err.Description _
        & ") in procedure ClearKitSelected_Click of Form_Search"
    MsgBox strMsg
    GoTo ExitHere
End Sub
于 2013-07-09T14:00:02.013 に答える
0

これが、最終的に正しく機能させることができた方法です。

Private Sub cmdDelete_Click()
Dim strMsg As String
Dim strSql As String

If Me.Dirty Then
Me.Dirty = False
End If
On Error GoTo ErrorHandler
Const MESSAGETEXT = "Are you sure you wish to delete the current record?"
 If MsgBox(MESSAGETEXT, vbYesNo + vbQuestion, "Confirm") = vbNo Then
     Cancel = True
 End If
 strSql = "DELETE FROM Item WHERE ID = " & Me.txtID2
 CurrentDb.Execute strSql, dbFailOnError

 MsgBox "The Item list has been updated"
 Clear
 List40.Requery

 ExitHere:
 On Error GoTo 0
 Exit Sub

 ErrorHandler:
 strMsg = "Error " & Err.Number & " (" & Err.Description _
     & ") in procedure Delete of Items"
 MsgBox strMsg
 GoTo ExitHere

 End Sub
于 2018-11-21T22:23:59.717 に答える