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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Web2.0のデータは次世代のイン...
-
ハイフン無しの電話番号データ...
-
型 varchar から型 numeric へ...
-
外部データ取り込みのAccessへ...
-
OpenOfficeのBaseでExcelのデー...
-
ACCESSではどの程度の規...
-
SQL ServerへのODBC接続
-
Accessで入力したデータ...
-
VBAかSQL?
-
ODBC経由の処理が遅い
-
AndroidからのAccessデータベー...
-
アクセスのデータがブッ壊れた...
-
SQLの文、節、句について
-
スタライズとは、どういう意味...
-
JavaとOracle Javaって何が違う...
-
データベースの最適化をマクロ...
-
C#でint型をIntPtr型に変換した...
-
「桐」の得手不得手
-
DB2 UDBって?
-
クエリをキャンセルしたいので...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
型 varchar から型 numeric へ...
-
エクセルのフォームについて(...
-
エクセルの重複データの曖昧検索
-
オラクルのLONG RAW型のテーブ...
-
Access or SQLServer どちらを...
-
カンマ区切りで格納するカラム...
-
【パフォーマンス】ファイル読...
-
リスト形式の表とデータベース...
-
ACCESSで条件付き書式の設定方法
-
ハイフン無しの電話番号データ...
-
ACCESSではどの程度の規...
-
データのインポートに失敗します。
-
エクセルの行数が限界です。
-
データ.mydファイルのテキス...
-
DBとテキストファイルの比較
-
OpenOfficeのBaseでExcelのデー...
-
Accessで入力したデータ...
-
外部データ取り込みのAccessへ...
-
エクセルでカタログ制作(印刷...
-
複数のPCで、同じ1つのシート...
おすすめ情報