No.7ベストアンサー
- 回答日時:
新規追加したとき、あるいは、途中のレコードを削除したときも、含めて、常にサブフォームの明細IDが1から始まる連番になるコード例です。
'削除後確認
Private Sub Form_AfterDelConfirm(Status As Integer)
If Status <> acDeleteOK Then Exit Sub
If Me.NewRecord Then Exit Sub
With Me.RecordsetClone
.Bookmark = Me.Bookmark
Do Until .EOF
.Edit
!明細ID = .AbsolutePosition + 1
.Update
.MoveNext
Loop
End With
End Sub
'更新前処理
Private Sub Form_BeforeUpdate(Cancel As Integer)
If Me.NewRecord Then Me.明細ID = Me.CurrentRecord
End Sub
「サブフォーム 連番を維持する」をキーワードにググるといろいろサンプルコードが見つかると思います。
hatena1989様
ご回答ありがとうございます。無事注文IDごとの子IDを作成する事ができました。
ググってはみたのですが、なかなか思い通りのページに当たるのは難しかったです。
また何かありましたらよろしくお願いいたします。
No.5
- 回答日時:
No4のような事だとします。
サブフォームのレコードソースはNo3と同じT明細にします。
T明細に明細ID以外に品名というフィールドがあるとします。
つまり、
明細ID 品名 他のフィールド1 他のフィールド2
のようになっているとします。
サブフォームの品名の更新後処理に以下を設定していください。
Private Sub 品名_BeforeUpdate(Cancel As Integer)
Dim i As Long
i = DMax("明細ID", "T明細") + 1
Me!明細ID = i
End Sub
piroin654様
この度はご回答ありがとうございました。
私の説明不足により、何度もお手数をおかけしてしまい大変申し訳ありませんでした。
また、出張によりお返事が遅れてしまい大変申し訳ありませんでした。
hatena1989様の方法にて無事に解決いたしました。
本当にお世話になり、ありがとうございました。
また何かありましたらよろしくお願いいたします。
No.3
- 回答日時:
サブフォームのレコードソースをT明細とします。
T明細はテーブルで、フィールドの明細IDは数値型
とし、主キーを設定しません。
なお、以下はDAOを使っているので、コード表の
参照設定から、
Microsoft DAO xx Object Library
にチェックを入れ↑ボタンで上げられるところまで
あげてください。xxは3.6のような数字です。
以下はフォームを開くときのイベントです。
Private Sub Form_Open(Cancel As Integer)
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("T明細", dbOpenDynaset)
If rs.RecordCount = 0 Then
rs.AddNew
rs!明細ID = 1
rs.Update
End If
rs.Close: Set rs = Nothing
db.Close: Set db = Nothing
Me.埋め込み0.Requery
End Sub
なお、上記の最後の
Me.埋め込み0.Requery
の埋め込み0とはサブフォームを表示するコントロールで
サブフォームそのもではありません。初期値では
埋め込み0のような名前になっていますが、
分からないときはフォームのデザインビューで
サブフォームの縁を右クリックしてプロパティ
で確認してみてください。
No.2
- 回答日時:
サブフォームのレコードは、たとえば
伝票処理ごとにデータを他のテーブルに
移動させるのですか。
新たな伝票処理のときはサブフォームの
中は空にしておくのでしょうか。
No.1
- 回答日時:
普通は、サブフォームの開くときの
イベントに、
Private Sub Form_Open(Cancel As Integer)
DoCmd.GoToRecord , , acFirst
End Sub
で、一番最初に移動するはずですが。
この回答への補足
piroin654様
早速のご回答ありがとうございました。
私の書き方が悪くて申し訳ありません。
一番最初のレコードへの移動ではなく、明細IDに1番からの連番を振りたいと考えております。
もし、方法が解るようでしたらご回答いただければと思います。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
サブフォームに対してGoToRecor...
-
Access2007 ラベルの削除がで...
-
Access Dsum関数
-
ACCESSのフォームで列固定?
-
ACCESS VBA メインフォーム及び...
-
親フォームからサブフォームの...
-
全てのサブフォーム名を取得したい
-
クエリで出来た表にチェックボ...
-
サブフォームを非表示させる方...
-
ACCESS サブフォームの...
-
Accessのサブフォームつきフォ...
-
Access SUMの結果が何もない時...
-
access フォーム上で複数行の...
-
ACCESSのサブフォームコピーに...
-
YahooのIDがロックされてしまい...
-
Access レポート印刷するときに...
-
iphoneのフルスクリーンの解除方法
-
passwordが入れられません・・・・
-
レコードを保存するコード ア...
-
Word縦書きで左から右への行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
サブフォームに対してGoToRecor...
-
クエリで出来た表にチェックボ...
-
ACCESS──メインフォームでサブ...
-
サブフォームを非表示させる方...
-
親・子リンクフィールドの設定...
-
親フォームからサブフォームの...
-
ACCESSサブフォームにデータ反...
-
Access VBA には Gridはないで...
-
ACCESSにて
-
アクセス2003のサブフォームの...
-
サブフォームのあるフォームか...
-
ACCESSのフォームで列固定?
-
Accessで埋め込んだサブフォー...
-
ACCESSで条件によってサブフォ...
-
ACCESS VBA メインフォーム及び...
-
サブフォームに変数を代入し、R...
-
ACCESS サブ・メインフォーム...
-
ACCESSのサブフォームコピーに...
-
Access 登録ボタンからサブフォ...
-
Access Dsum関数
おすすめ情報