![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?a65a0e2)
No.35ベストアンサー
- 回答日時:
レコードカウントで採番する場合は、
rsInMain.AddNew
rsInMain!番号 = rsInNUM!番号 + 1
rsInMain!項目1 = rsOutMain!項目1
rsInMain!項目2 = rsOutMain!項目2
j = rsInMain!番号
rsInMain.Update
のところで、
rsInMain!番号 = rsInNUM!番号 + 1
を
rsInMain!番号 = rsInMain.RecordCount + 1
に置き換えればいいです。
それと、
'T_番号の更新
rsInNUM.Edit
rsInNUM!番号 = rsInNUM!番号 + 1
rsInNUM.Update
の部分はコメントアウトするか削除します。
こちらの環境では、レコードソースを
クエリ、テーブル、SQLどれも問題はないのですが。
一応、簡単にT_テーブルでオートフォームでフォームを
つくり、あとボタンをくっつけた簡単な
フォームでやっています。
大変 お世話になりました
ようやく完成いたしました。
どの様にお礼を言って良いのかわかりませんが
今後とも よろしくお願いいたします。
ご指導ありがとうございました。
No.34
- 回答日時:
すこし状況がわかりました。
まず、最適化をしてください。
多分、何度もプログラムを入れ替えたり、
データをセットしたりするとファイルの
最適化が必要になることがあります。
この回答への補足
すいません
用事で外出していました 今戻りまして 遅くなりまてすいません
まずプログラム起動時に自動で最適化をしています
それと鉛筆マークは出ていません チェックボックスにチェックを入れ直しても同じで
2回実行しないとダメのようです ??
それと データベース2のT_データのナンバーを番号テーブルから取っていますが
T_データの最後のレコードを取得した方が良いようです
間違って番号テーブルのデータを消したらヌルでエラーになりますし
生成された番号が違う場合も有りうりますのでT_データの最終レコードを取得した方が確実なので
ご指導頂けますでしょうか
No.32
- 回答日時:
(2)
チェックを入れたときにチェックを入れたレコードの
左端に鉛筆マークが表示されたままボタンクリックを
するとレコードロックのエラーが表示されます。
したがって、鉛筆マークが消えるようにどれか他の
レコードのフィールドをクリックして鉛筆マークが
黒い三角マークになるようにしてください。
これでチェックを入れたレコードの事前処理が
確定したことになります。
この意味はチェックボックスもテキストボックスと
同様に一つのレコードの中のフィールドですから
レコードを確定させるためにチェックをいれたら
フォーカスを他のレコードに移動させて暗黙的に
レコードの更新を確定させるというものです。
したがって、2回ボタンを押したらできるということは
一つのレコードの更新が確定していないが二回押すことに
よりフォーカスが移動してレコードの更新が確定した
ということです。
単独のチェックボックスと違ってレコード帳票フォームなどの
レコードはチェックボックスのチェックを入れただけでは
レコードの確定がしない、ということです。
この回答への補足
ありがとうございます
チェックボックスの件 なんとか自己解決致しました
ありがとうございます
番号の件 よろしくお願いいたします。
No.31
- 回答日時:
T_データを表示しているのはサブフォームでは
ないですね。
(1)
End Sub の前に
Me.Requery
をいれてください。この場合はサブフォーム
でない場合です。
(2)
チェックを入れたときにチェックを入れたレコードの
左端に鉛筆マークが表示されたままボタンクリックを
するとレコードロックのエラーが表示されます。
したがって、鉛筆マークが消えるようにどれか他の
レコードのフィールドをクリックして鉛筆マークが
黒い三角マークになるようにしてください。
これでチェックを入れたレコードの事前処理が
確定したことになります。
これ以外に何かでていますか。
エラーが表示されていましたか。
テーブルを指定するとどうですか。
No.29
- 回答日時:
なお、データの削除の部分は単純に前のコードに
削除の部分を追加してだけです。その部分を
はずせば前のコードと同じです。
この回答への補足
ありがとうございます
データベース2のT_データのクエリーを造りそれをフォームに引き込みしチェックボタンを設定
チェックを要れPrivate Sub コマンド0_Click()を実行させると処理されますが
そのまま続けて違うレコードにチェックを入れPrivate Sub コマンド0_Click()を実行させると
処理ができません
おそらくクエリーで取っているためだと思いますが 続けて処理するにはどの様にすればよいでしょうか
ご指導お願いいたします。
No.28
- 回答日時:
字数がぎりぎりだったのでのですが、
たぶん全部一つにして掲示できたと思います。
追加した部分はたいした文字数ではないのですが、
一つにしようとして、既存のコメントの中の
長い部分を二つくらい除けました。
午前のつもりがお昼ですね。
Loopの終了後、データの削除が始まる前に、
MsgBox("データの転送終了。データの削除開始。")
End Subの前に
MsgBox("処理完了")
などを入れて終了確認をしてもいいかもしれません。
データが少なければあまり意味がないかもしれませんが、
一つの案です。
以上です。データの転送、削除を確認をしてみてください。
No.27
- 回答日時:
Private Sub コマンド0_Click()
Dim dbOut As Database 'データベース2
Dim dbIn As Database 'データベース1
Dim rsOutMain As Recordset 'データベース2のT_データ
Dim rsOutSub As Recordset 'データベース2のT_データ明細
Dim rsInMain As Recordset 'データベース1のT_データ
Dim rsInSub As Recordset 'データベース1のT_データ明細
Dim rsInNUM As Recordset 'データベース1のT_番号
Dim i As Long
Dim j As Long
'データベースの設定
Set dbOut = CurrentDb 'データベース2
Set dbIn = DBEngine.Workspaces(0).OpenDatabase("C:\データベース1.mdb")
'各データベースのテーブルの設定
Set rsOutMain = dbOut.OpenRecordset("T_データ", dbOpenDynaset)
Set rsOutSub = dbOut.OpenRecordset("T_データ明細", dbOpenDynaset)
Set rsInMain = dbIn.OpenRecordset("T_データ", dbOpenDynaset)
Set rsInSub = dbIn.OpenRecordset("T_データ明細", dbOpenDynaset)
Set rsInNUM = dbIn.OpenRecordset("T_番号", dbOpenDynaset)
'T_データのエクスポート(データベース2からデータベース1へ)
rsOutMain.MoveFirst
Do Until rsOutMain.EOF
If rsOutMain!チェック = True Then
'T_データに紐付けられたT_データ明細レコード検出用
i = rsOutMain!番号
'データベース1のT_データへのレコードの追加
rsInMain.AddNew
rsInMain!番号 = rsInNUM!番号 + 1
rsInMain!項目1 = rsOutMain!項目1
rsInMain!項目2 = rsOutMain!項目2
j = rsInMain!番号
rsInMain.Update
'T_データ明細のエクスポート(データベース2からデータベース1へ)
'T_データに紐付けられたT_データ明細のエクスポート
rsOutSub.MoveFirst
Do Until rsOutSub.EOF
If rsOutSub!番号 = i Then
'データベース1のT_データ明細へのレコードの追加
rsInSub.AddNew
rsInSub!番号 = j
rsInSub!名前 = rsOutSub!名前
rsInSub!住所 = rsOutSub!住所
rsInSub!電話 = rsOutSub!電話
rsInSub.Update
End If
rsOutSub.MoveNext
Loop
'T_番号の更新
rsInNUM.Edit
rsInNUM!番号 = rsInNUM!番号 + 1
rsInNUM.Update
End If
rsOutMain.MoveNext
Loop
'T_データの削除
rsOutMain.MoveFirst
Do Until rsOutMain.EOF
If rsOutMain!チェック = True Then
i = rsOutMain!番号
rsOutMain.Delete
'T_データ明細の削除
rsOutSub.MoveFirst
Do Until rsOutSub.EOF
If rsOutSub!番号 = i Then
rsOutSub.Delete
End If
rsOutSub.MoveNext
Loop
End If
rsOutMain.MoveNext
Loop
rsOutMain.Close
Set rsOutMain = Nothing
rsOutSub.Close
Set rsOutSub = Nothing
rsInMain.Close
Set rsInMain = Nothing
rsInSub.Close
Set rsInSub = Nothing
rsInNUM.Close
Set rsInNUM = Nothing
dbOut.Close
Set dbOut = Nothing
dbIn.Close
Set dbIn = Nothing
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) IT用語について質問です。 以前ITパスポートの試験を受けた際にデータベースが何の集まりかについての 2 2022/12/10 12:29
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- MySQL データベースの複製の仕方(mysql) 2 2023/05/30 18:24
- JavaScript Q&Aの掲示板を作成していてヤフー知恵袋やgoo質問のように質問ごとにURLを生成したい 5 2023/08/04 01:22
- Oracle 参照関係のフィールドについて 1 2023/05/27 17:49
- Excel(エクセル) エクセルで沢山のレコードの最後に追記するには? 7 2023/04/10 13:27
- MySQL 【投稿情報用データベース posts】は必要ないと思います。 1 2022/06/02 21:25
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- PHP PHPSpreadsheetによる書き出し時のページネーション方法について 1 2023/03/20 10:35
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
型 varchar から型 numeric へ...
-
DBとテキストファイルの比較
-
オラクルのLONG RAW型のテーブ...
-
エクセルの行数が限界です。
-
ハイフン無しの電話番号データ...
-
【ACCESS】複数のパソコンから...
-
拡張子「**.mdx」のファイル...
-
データのインポートに失敗します。
-
ODBCを使わないでExcelへ連携
-
Access管理とExcel管理
-
【パフォーマンス】ファイル読...
-
エクセルのフォームについて(...
-
エクセルの重複データの曖昧検索
-
POSTGRESQLにEXC...
-
AndroidからのAccessデータベー...
-
listener.logが肥大化
-
RBDの反対語は?□DB??
-
LVMでHDDが壊れた時の対応
-
データベースの2GBって・・・?
-
DB2で複数DBからSELECT等
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
型 varchar から型 numeric へ...
-
ハイフン無しの電話番号データ...
-
エクセルのフォームについて(...
-
オラクルのLONG RAW型のテーブ...
-
カンマ区切りで格納するカラム...
-
ACCESSで条件付き書式の設定方法
-
エクセルの重複データの曖昧検索
-
【ACCESS】複数のパソコンから...
-
ODBCを使わないでExcelへ連携
-
拡張子「**.mdx」のファイル...
-
【パフォーマンス】ファイル読...
-
〔VBA・マクロ〕EXCELからAC...
-
OpenOfficeのBaseでExcelのデー...
-
POSTGRESQLにEXC...
-
DBとテキストファイルの比較
-
ACCESSではどの程度の規...
-
データのインポートに失敗します。
-
Access or SQLServer どちらを...
-
データベースソフトのTCARDにつ...
-
CSVでDLしたデータにダブルクォ...
おすすめ情報