Microsoft Access Club Access超初心者対象Forum Access初・中級者対象Forum Access VBA Tips Forum DAO、ADO、SQL Forum

     

リストへもどる

投稿記事の一括表示

タイトル表形式フォームのデータ保存について
記事No83116
投稿日: 2017/06/01(Thu) 12:06
投稿者Kei
OS:Windows 10
Access Version:Access2013

いつもお世話になっております。

初心者で検討違いな質問でしたら申訳ないです。

表形式での保存方法について質問させてください。

現在、表形式でフォームを作成しており、保存、取消、終了のボタンも作成してます。

データを編集した際は、保存ボタンを押さないとテーブルに保存をできないようにしたいと考えています。

ただ、以下のコードで単票形式ではうまく動作しているのですが、表形式だと、下記コードだと1レコードずつの更新を可能としてますので、保存ボタンを押すまではほかのレコードを編集することはできません。

表形式の場合、いくつかのレコードを編集して、保存ボタンを押せば編集した全てのレコードが一度に保存する。という動作をやることが理想なのですが、accessでは無理なのでしょうか?

下記に、単票形式で書いているコードを記載します。

言葉不足かもしれませんが、よろしくお願いいたします。


Private Sub 取消_Click()
Me.Undo
End Sub
------------------------
Private Sub 終了_Click()
If Me.Dirty Then
Select Case MsgBox("データが更新されてます。保存して終了しますか?", vbYesNoCancel)
Case vbCancel
Exit Sub
Case vbYes
保存_Click
Case vbNo
Me.Undo
End Select
End If
DoCmd.Close

End Sub
------------------------
Private Sub 保存_Click()
BeforeUpdate = ""
DoCmd.RunCommand acCmdSaveRecord
BeforeUpdate = "[イベント プロシージャ]"
MsgBox "登録しました"
End Sub
------------------------
Private Sub Form_AfterUpdate()
Select Case Me.ActiveControl.Name
Case "保存", "取消": Me.プロジェクトコード.SetFocus
End Select
Me.取消.Enabled = False
Me.保存.Enabled = False

End Sub
------------------------
Private Sub Form_BeforeInsert(Cancel As Integer)
Form_Dirty Cancel
End Sub
------------------------
Private Sub Form_BeforeUpdate(Cancel As Integer)
Cancel = True
End Sub
------------------------
Private Sub Form_Dirty(Cancel As Integer)
Me.取消.Enabled = True
Me.保存.Enabled = True

End Sub

タイトルRe: 表形式フォームのデータ保存について
記事No83117
投稿日: 2017/06/01(Thu) 12:20
投稿者tkwan
> 
> ただ、以下のコードで単票形式ではうまく動作しているのですが、表形式だと、下記コードだと1レコードずつの更新を可能としてますので、保存ボタンを押すまではほかのレコードを編集することはできません。 
> 
> 表形式の場合、いくつかのレコードを編集して、保存ボタンを押せば編集した全てのレコードが一度に保存する。
> という動作をやることが理想なのですが、accessでは無理なのでしょうか? 


Accessの場合は、カレントレコードを移動するとレコードの更新が実行されます。
連結フォームでは不可能です。

タイトルRe: 表形式フォームのデータ保存について
記事No83119
投稿日: 2017/06/13(Tue) 15:05
投稿者しげ
ワークテーブルを使う方法で検討してみては?

> OS:Windows 10
> Access Version:Access2013
>
> いつもお世話になっております。
>
> 初心者で検討違いな質問でしたら申訳ないです。
>
> 表形式での保存方法について質問させてください。
>
> 現在、表形式でフォームを作成しており、保存、取消、終了のボタンも作成してます。
>
> データを編集した際は、保存ボタンを押さないとテーブルに保存をできないようにしたいと考えています。
>
> ただ、以下のコードで単票形式ではうまく動作しているのですが、表形式だと、下記コードだと1レコードずつの更新を可能としてますので、保存ボタンを押すまではほかのレコードを編集することはできません。
>
> 表形式の場合、いくつかのレコードを編集して、保存ボタンを押せば編集した全てのレコードが一度に保存する。という動作をやることが理想なのですが、accessでは無理なのでしょうか?
>
> 下記に、単票形式で書いているコードを記載します。
>
> 言葉不足かもしれませんが、よろしくお願いいたします。
>
>
> Private Sub 取消_Click()
> Me.Undo
> End Sub
> ------------------------
> Private Sub 終了_Click()
> If Me.Dirty Then
> Select Case MsgBox("データが更新されてます。保存して終了しますか?", vbYesNoCancel)
> Case vbCancel
> Exit Sub
> Case vbYes
> 保存_Click
> Case vbNo
> Me.Undo
> End Select
> End If
> DoCmd.Close
>
> End Sub
> ------------------------
> Private Sub 保存_Click()
> BeforeUpdate = ""
> DoCmd.RunCommand acCmdSaveRecord
> BeforeUpdate = "[イベント プロシージャ]"
> MsgBox "登録しました"
> End Sub
> ------------------------
> Private Sub Form_AfterUpdate()
> Select Case Me.ActiveControl.Name
> Case "保存", "取消": Me.プロジェクトコード.SetFocus
> End Select
> Me.取消.Enabled = False
> Me.保存.Enabled = False
>
> End Sub
> ------------------------
> Private Sub Form_BeforeInsert(Cancel As Integer)
> Form_Dirty Cancel
> End Sub
> ------------------------
> Private Sub Form_BeforeUpdate(Cancel As Integer)
> Cancel = True
> End Sub
> ------------------------
> Private Sub Form_Dirty(Cancel As Integer)
> Me.取消.Enabled = True
> Me.保存.Enabled = True
>
> End Sub

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

ページの先頭へ 前ページへ戻る