
No.2ベストアンサー
- 回答日時:
Private Sub Command1_Click()
Dim isOK As Boolean
Dim strSQL As String
Me.MSFlexGrid1.Col = 1 ' 列[ID] を指示
strSQL = "DELETE FROM 仕入記録 WHERE ID=" & Me.MSFlexGrid1.Text ' SQL文作成
isOK = CnnExecute(strSQL) ' SQL文実行
If isOK Then
Me.MSFlexGrid1.RemoveItem Me.MSFlexGrid1.Row
MsgBox "1件のレコードを削除しました。"
End If
End Sub
Microsoft は MSFlexGrid を推奨しているので、それを利用したサンプルを示します。
上記のコードでは首尾よく削除されたら表示行も削除しています。
なお、ここで使っている CnnExecute関数は、回答のために作成したもので十分にテストされたものではありません。
Option Explicit
Const conCNNSTRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\temp\db1.mdb"
Public Function CnnExecute(ByVal strSQL As String) As Boolean
On Error GoTo Err_CnnExecute
Dim isOK As Boolean
Dim cnn As ADODB.Connection
isOK = True
Set cnn = New ADODB.Connection
With cnn
.Errors.Clear
.ConnectionString = conCNNSTRING
.Open
.BeginTrans
.Execute strSQL
.CommitTrans
End With
Exit_CnnExecute:
On Error Resume Next
CnnExecute = isOK
Exit Function
Err_CnnExecute:
isOK = False
If cnn.Errors.Count > 0 Then
ErrMessage cnn.Errors(0), strSQL
cnn.RollbackTrans
Else
MsgBox "プログラムエラーが発生しました。システム管理者に報告して下さい。(CnnExecute)", _
vbExclamation, " 関数エラーメッセージ"
End If
Resume Exit_CnnExecute
End Function
Public Sub ErrMessage(ByVal CnnErrors As ADODB.Error, ByVal strSQL As String)
MsgBox "ADOエラーが発生しましたので処理をキャンセルします。" & Chr$(13) & Chr$(13) & _
"・Err.Description=" & CnnErrors.Description & Chr$(13) & _
"・Err.Number=" & CnnErrors.Number & Chr$(13) & _
"・SQL State=" & CnnErrors.SQLState & Chr$(13) & _
"・SQL Text=" & strSQL, _
vbExclamation, " ADO関数エラーメッセージ"
End Sub
No.1
- 回答日時:
VB6.0ですと、昔の記憶ですが、DataGridに表示するときにそれぞれの行のPKを保持してると思うのですが、それを使って、SQL文を発行してやったとおもいます。
基本はそれだと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- Oracle sql(oracle)で質問です。 テーブルAのカラム名、日付(yyyymmdd)の値を テーブルB 2 2023/01/06 10:31
- Access(アクセス) AccessVBAで任意の複数リンクテーブルをAccessVBAを動かす際に削除したいと考えておりま 1 2022/11/17 15:45
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) アクセス 削除するレコードを含んだテーブルを指定してくださいのエラー対処方法 1 2022/11/24 15:01
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Access(アクセス) Accessの参照フィールドの列がずれてしまいます 1 2023/07/19 15:00
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「更新に必要なキー列の情報が...
-
半角スペースの置換でエラーを...
-
Access2003でのテーブルの有無確認
-
【マクロ】列を折りたたみ非表...
-
Excel 2019 のピボットテーブル...
-
変数が選択リストにありません
-
エクセルVBAで5行目からオート...
-
「直需」の意味を教えてください
-
Accessでテーブル名やクエリ名...
-
エクセルグラフの凡例スペース
-
FROM の中で CASE を使えるでし...
-
Accessのクエリでデータの入力...
-
accessで重複を防ぎたい
-
Accessでコードを入れると名前...
-
ACCESSで400以上のフィールドが...
-
SQLでの変数の扱いについて
-
access2000:フォームで入力し...
-
Accessファイルを作成者以外は...
-
Access テキスト型に対する指定...
-
エクセルマクロにて最終行まで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
access2000でつまづいてます
-
「更新に必要なキー列の情報が...
-
Accessの更新前処理について。D...
-
access count数を変数に格納
-
[Access]削除時のエラーメッセ...
-
Access2003でのテーブルの有無確認
-
access vbaでクエリデータの中...
-
ACCESSのFindコマンドが遅い
-
AceessVBA 非同期処理について
-
ADOでループすると1レコードず...
-
Set rst = db.OpenRecordset("S...
-
レコードのロックについて
-
Access VBAで自動連番を振るには
-
VB2010のSQLを使ったレコードカ...
-
HerokuのDBへのinsert方法
-
Access VBA
-
テーブルの削除
-
フォーム内で複数のレコードを表示
-
adoのWHERE句 クエリだとフィ...
-
Insertの構文を教えて下さい
おすすめ情報