Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1955 / 2272 ツリー ←次へ | 前へ→

【4467】フォームの開き方 nssnkg 05/2/24(木) 14:41 質問[未読]
【4470】Re:フォームの開き方 クロ 05/2/24(木) 15:41 発言[未読]
【4471】Re:フォームの開き方 nssnkg 05/2/24(木) 16:28 質問[未読]
【4473】Re:フォームの開き方 クロ 05/2/24(木) 17:40 回答[未読]
【4474】Re:フォームの開き方 nssnkg 05/2/24(木) 18:08 お礼[未読]

【4467】フォームの開き方
質問  nssnkg  - 05/2/24(木) 14:41 -

引用なし
パスワード
   入力フォームでデータ入力を済ませた後に
そのフォームのコマンドボタン_Click一回で
フォームを一旦閉じ、さらに続けてフォームを先ほどのレコードで再度開く。
をVBAで書きたいのですが、方法はありますか?

【4470】Re:フォームの開き方
発言  クロ  - 05/2/24(木) 15:41 -

引用なし
パスワード
   ▼nssnkg さん:
>入力フォームでデータ入力を済ませた後に
>そのフォームのコマンドボタン_Click一回で
>フォームを一旦閉じ、さらに続けてフォームを先ほどのレコードで再度開く。
>をVBAで書きたいのですが、方法はありますか?

どうして?そんなことするのか興味あるんだけど...

【4471】Re:フォームの開き方
質問  nssnkg  - 05/2/24(木) 16:28 -

引用なし
パスワード
   昨日は有難うございました。
実は4450のレスの件が解決できなくて困ってます。
フォームはデータ入力用で、新規にレコード入力した後に、そのまま
更新を掛けると”他のユーザーが同じデータに対して同時に変更を試みて
いるのでプロセスが停止しました”というメッセージが出ます。
一旦フォームを閉じて更新を掛けると更新は出来ますが、レコードが保持
できず困っています。Bookmarkを使いましたが、”Bookmarkが違う”って
メッセージが出ます。どうしていいかわかりません。

【4473】Re:フォームの開き方
回答  クロ  - 05/2/24(木) 17:40 -

引用なし
パスワード
   オブジェクトウィンドウのモジュールで新規作成をクリックして
Option Compare Database
Option Explicit
の直下に
Public varBM As Variant
と書きます。
Ctrl+Sで保存してください。

前のレスの一部削除追加で以下のようにします。

Private Sub コマンド102_Click()
  Dim mySQL As String  'SQLステートメント
  Dim cn As New ADODB.Connection
  Dim com As New ADODB.Command
  

  '現在位置取得
  varBM = Me.Bookmark
     '更新クエリを作成
    mySQL = "update 受注伝票 set 集計月 = #" & 伝票日付 & "# " _
       & "WHERE ((顧客コード = " & 顧客コード & ") and (伝票日付 Between #" & Me!date2 & "# And #" & Me!伝票日付 & "#));"

    DoCmd.Close '←ここを追加
    
    '接続
    Set cn = CurrentProject.Connection
   
    '更新クエリを実行
    Set com.ActiveConnection = cn
    com.CommandText = mySQL
    com.Execute

    DoCmd.OpenForm "受注伝票1" '←ここも追加

End Sub


フォームの開く時のイベントで
If IsEmpty(varBM) Then
Exit Sub
Else
Me.Bookmark = varBM
End If
としてください。

こんな感じでしょうか?
#データの競合の方の調査をした方がいいような気がします...

【4474】Re:フォームの開き方
お礼  nssnkg  - 05/2/24(木) 18:08 -

引用なし
パスワード
    有難うございます。ご指導感謝します。
 新規レコードの日付Aを締め日として、レポート集計用の
集計日フィールドを起算日から締め日まで日付Aの値で更新
するというフォームです。日付Aで集計したいのです。
日付Aは新規レコードになるので、日付Aから一日マイナスした
日付から更新させたら、うまくいきました。日付Aのレコードには
とりあえず別の方法で集計フィールドに日付Aを書き込もうと思ってました。
 クロさんが書いて下さったVBAと両方試してみます。お手数取らせてすみません

1955 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078267
(SS)C-BOARD v3.8 is Free