フォーム、サブフォームを削除後、はじめのレコードに戻るボタンを作りたいです。
削除まではできたのですが、はじめのレコードにもどることができません。
エラーは出ておらず、削除後の#deletedが各テキストボックスに入った状態で動きが止まってしまいます。
Frm見積書明細がサブフォーム名、T見積書がフォーム名、見積IDはテキストボックスです。
どう修正すればよいでしょうか?
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim vsql As String
Dim i As Variant
Dim x As Variant
Set db = CurrentDb()
x = Me!Frm見積書明細.Form.Recordset.RecordCount
If x = 0 Then
MsgBox "見積書明細の入力がない為削除できません"
Else
i = 見積ID
vsql = "select * from T見積書 where 見積ID = '" & i & "'"
Set rs = db.OpenRecordset(vsql, dbOpenDynaset)
If MsgBox("削除しますか?", vbYesNo) = vbYes Then
DoCmd.SetWarnings False
Me!Frm見積書明細.SetFocus
DoCmd.RunCommand acCmdSelectAllRecords
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.SetWarnings True
rs.Delete
DoCmd.GoToRecord , , acFirst
rs.Close
db.Close
End If
End If
ご回答よろしくお願いします!
No.3ベストアンサー
- 回答日時:
こんばんは。
ご質問文から、フォームウィザードで作成された連結フォームかなと想像しますが、そう仮定すると、
DoCmd.RunCommand acCmdDeleteRecord
rs.Delete
などに違和感を感じるのです。レコードセット rs を開いても、その後に何ら処理があるわけでもありません。
ご提示のソースにある DAO は非連結フォームでレコードを表示する場合の例です。
したがって、ネット検索で一生懸命勉強されているものと推察しますが、色々と混じってしまい混乱されているのではないか、、と。
一度作り直すぐらいの気持ちで整理しましょう。
■ 連結フォームでレコード削除を実現するには
1. まずリレーションシップの設定が必要です。
(添付図参照)
https://hamachan.info/access2019-relation/
2. T見積書をフォームウィザードで親フォームを作成
3. 2. をデザインビューで開き、サブフォームを作成
既存のテーブルを使用、T見積明細を選択
4. 削除ボタンのクリックに設定するイベントプロシージャは次の様な感じ。
Private Sub btn_Delete_Click() '<--ボタン名はご自身のものに合わせる
If Me.NewRecord Then Exit Sub
Dim res As VbMsgBoxResult
res = MsgBox("表示中のレコードを削除しますか?", _
vbOKCancel + vbDefaultButton2 + vbInformation)
If res = vbCancel Then
Exit Sub
Else
DoCmd.SetWarnings False
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.SetWarnings True
DoCmd.GoToRecord acActiveDataObject, , acFirst ’<--データ削除後先頭へ
End If
End Sub
No.4
- 回答日時:
添付図のようなフォームを想像してます。
適当に作ったのでイメージのご参考までに。
頑張って!☆
お返事遅くなり申し訳ありません!
ご丁寧にいろいろとご回答頂きましてありがとうございます。
ご回答を基に直してみましたがレコードに移動できませんでした・・・
レコード移動までの削除動作はしっかり動いてくれました。
親フォーム、サブフォーム共に連結フォームです。
リレーションシップの組み方を確認しました。
添付図で送って頂いたフォームのイメージで間違いございません。
1つ目のレコードのみエラーが出ずにうまく動作してくれます。
他に見直すところがあれば教えて下さい。
宜しくお願いします。
No.2
- 回答日時:
親フォームのT見積書は連結フォームですか?
サブフォームは連結フォーム?
連結フォームと非連結フォームとありまして、用語の意味は検索してみて下さい。
コード全体に違和感があります、、
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
ことしの初夢、何だった?
2025年になりましたね。1年の吉凶を占う風習といわれている初夢。ことし初めて見た夢、覚えていますか?
-
最強の防寒、あったか術を教えてください!
とっても寒がりなのですが、冬に皆さんがされている最強の防寒、あったか術が知りたいです!
-
この人頭いいなと思ったエピソード
一緒にいたときに「この人頭いいな」と思ったエピソードを教えてください
-
【お題】斜め上を行くスキー場にありがちなこと
運営も客も一流を通り越して斜め上を行くスキー場にありがちなことを教えて下さい。
-
Access2000 サブフォームのRecordSet取得法
Access(アクセス)
-
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・ことしの初夢、何だった?
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでレコードの複製
-
Access 指定したレコードへ移動
-
アクセエスのレコードの更新をV...
-
ACCESS 複数のフォームから同一...
-
Accessフォームで詳細内の任意...
-
ファイルメーカーで重複してイ...
-
Accessレコードの削除(VBA)
-
Accessのレコード数をテキスト...
-
access の 最終レコードの判定...
-
AccessのRefresh・Requery・Rep...
-
ACCESSのカレントレコードを、w...
-
AccessVBA フィルタとカレント...
-
ACCESSフォーム入力後の確定
-
アクセスのコンボボックスの内...
-
Accessの「Form_AfterUpd...
-
禁止文字をエクセルかアクセス...
-
新しいレコードへの移動時にト...
-
accessでオートナンバーを使わ...
-
エクセルで、抽出したデータだ...
-
Access サブフォームでの選択行...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ACCESS 複数のフォームから同一...
-
Accessでレコードの複製
-
ACCESSフォーム入力後の確定
-
Accessフォームで詳細内の任意...
-
AccessのRefresh・Requery・Rep...
-
accessでオートナンバーを使わ...
-
Accessで経過日付に応じて色を...
-
アクセエスのレコードの更新をV...
-
access の 最終レコードの判定...
-
MS.Access でサブフォーム付の...
-
DoCmd.SearchForRecord が動か...
-
Accessの「Form_AfterUpd...
-
アクセスで複数レコードを1レ...
-
ファイルメーカーで重複してイ...
-
禁止文字をエクセルかアクセス...
-
ファイルメーカーProでレコード...
-
二つ以上あるものだけを抽出し...
-
AccessVBA フィルタとカレント...
-
アクセスのフォームビューの帳...
-
MSAccess ロック状態かどうかを...
おすすめ情報