
No.23
- 回答日時:
ボタンクリックでT_データのチェックの
フィールドをすべてFalseにします。
これでチェックがすべてはずれます。
Private Sub コマンド100_Click()
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("T_データ", dbOpenDynaset)
rs.MoveFirst
Do Until rs.EOF
rs.Edit
rs!チェック = False
rs.Update
rs.MoveNext
Loop
End Sub
この回答への補足
ありがとうございます
でも これですとデータが溜まっていき動きが悪くなっていきませんでしょうか
チェックを入れたレコードを削除したほうが いいのではないでしょうか
どの様なものなのでしょうか
遅くまですいません
No.21
- 回答日時:
最初のコメントの部分が間違っていたようです。
データの流れはデータベース2からデータベース1です。
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 h As Long
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
i = rsOutMain!番号
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
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
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
この回答への補足
ありがとうございます!
理解できました>
データ転送できましたありがとうございます
しかし ボタンを押せば何回同じデータを転送してしまいます
データベース2のチェックフィールドにチェックを入れたデータを転送後に消すにはどの様にすれば良いでしょうか
すいません ご指導をお願いいたします
No.20
- 回答日時:
すみません。
一度コードのコメントを入れて送りなおします。どうやらデータベース1
とデータベース2を反対にしていたようです。
さきほどコメントについてもご破算にしておいて
ください。
コードは間違いないのですが。すもません。
データの送り出しは、
データベース2からデータベース1ですね。
コメントが反対になっていました。
少しお待ちを。
No.19
- 回答日時:
わたしも混乱していました。
はい、取っています。dbIn(データベース1)のrsInNUM(T_番号)
でいいのです。
それと訂正です。
Dim rsInNUM As Recordset 'データベース2のT_番号
これは、
Dim rsInNUM As Recordset 'データベース1のT_番号
です。
これが混乱の元かもしれません。
No.18
- 回答日時:
>はい、取っています。
dbIn(データベース1)のrsInNUM(T_番号)ではなく、
はい、取っています。dbIn(データベース2)のrsInNUM(T_番号)
です。
間違えていました。
No.17
- 回答日時:
>dbInの番号を取得してそれに+1しなければいけないように思うのですが
はい、取っています。dbIn(データベース2)のrsInNUM(T_番号)
の番号というフィールドから取り出して1をくわえたものを
送り込んだレコードの番号としています。
rsInMain.AddNew
rsInMain!番号 = rsInNUM!番号 + 1
rsInMain!項目1 = rsOutMain!項目1
rsInMain!項目2 = rsOutMain!項目2
j = rsInMain!番号
rsInMain.Update
rsInMain!番号 = rsInNUM!番号 + 1
この部分です。
>重複エラーになっています
どのようなエラーですか。
提示したコードの中では番号だけで表現しているので
番号Noと番号を保持しているテーブルのフィールド名
などが分かりにくいかもしれませんが。
コード表にデータベースとテーブルとフィールドの
関係のコメントをすべていれましょうか。
この回答への補足
ありがとうございます
>重複エラーになっています
どのようなエラーですか。
番号の重複エラーです
コード表にデータベースとテーブルとフィールドの
関係のコメントをすべていれましょうか。
すいません お願いできますでしょうか
No.16
- 回答日時:
一応、動作確認をしています。
番号を保持するテーブルの名前をT_番号、フィールドの名前を番号
とします。
IDはインポートすればオートナンバーなので他のデータが
入れば自動的に番号が発行されるのでこれはエクスポートの
対象外ですね。それでは以下です。
Private Sub コマンド0_Click()
Dim dbOut As Database 'データベース1
Dim dbIn As Database 'データベース2
Dim rsOutMain As Recordset 'データベース1のT_データ
Dim rsOutSub As Recordset 'データベース1のT_データ明細
Dim rsInMain As Recordset 'データベース2のT_データ
Dim rsInSub As Recordset 'データベース2のT_データ明細
Dim rsInNUM As Recordset 'データベース2のT_番号
Dim h As Long
Dim i As Long
Dim j As Long
Set dbOut = CurrentDb
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
i = rsOutMain!番号
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
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
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
この回答への補足
ありがとうございます
早速ご指導頂きましたコードを実行しましたが 重複エラーになっています
dbInの番号を取得してそれに+1しなければいけないように思うのですが
すいませんです
度々で申し訳ありませんがよろしくお願いいたします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
型 varchar から型 numeric へ...
-
エクセルのフォームについて(...
-
カンマ区切りで格納するカラム...
-
データのインポートに失敗します。
-
別のACCESSデータベースのテー...
-
オラクルのLONG RAW型のテーブ...
-
ハイフン無しの電話番号データ...
-
DBとテキストファイルの比較
-
【パフォーマンス】ファイル読...
-
リスト形式の表とデータベース...
-
エクセルの重複データの曖昧検索
-
スタライズとは、どういう意味...
-
DB2 UDBって?
-
JavaとOracle Javaって何が違う...
-
Access→Oracleデータ参照にはAD...
-
Accessのレポートで「縦書き」...
-
Macとウィンドウズで使えるデー...
-
どういう専門学校へいくべきで...
-
初心者です。Accessを使って、...
-
バッチファイルから直接db2コマ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
型 varchar から型 numeric へ...
-
オラクルのLONG RAW型のテーブ...
-
ハイフン無しの電話番号データ...
-
エクセルのフォームについて(...
-
ACCESSで条件付き書式の設定方法
-
エクセルの重複データの曖昧検索
-
データを一元化するとして
-
データのインポートに失敗します。
-
カンマ区切りで格納するカラム...
-
エクセルの行数が限界です。
-
リスト形式の表とデータベース...
-
データベースのデファクトスタ...
-
OpenOfficeのBaseでExcelのデー...
-
DBとテキストファイルの比較
-
Access or SQLServer どちらを...
-
ODBCを使わないでExcelへ連携
-
テーブルのエクスポートができ...
-
複数のPCで、同じ1つのシート...
-
メディアプレーヤーの音楽情報
-
別のACCESSデータベースのテー...
おすすめ情報