Access VBA質問箱 IV

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

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


3329 / 9994 ←次へ | 前へ→

【9926】Re:インポート時の重複データ処理
回答  小僧  - 07/10/15(月) 10:06 -

引用なし
パスワード
   ▼みう さん:
こんにちは。

B) の方のコードです。
SQL(クエリ)を使って処理してみます。


まず、test にインデックスを張ります。
日付と社員番号で一意(Unique)になる様ですので

CREATE UNIQUE INDEX index1 ON test (日付, 社員番号);

上記をクエリにして実行されてみて下さい。

手動でつくる場合は hatena さんの詳しい説明がありますので
下記を参考にして下さい。

h tp://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=9826;id=access


Function DataImport() As Boolean
Dim strSQL As String

'W_ワークテーブルの初期化
  strSQL = "DELETE FROM W_ワークテーブル"
  CurrentDb.Execute strSQL, dbFailOnError


'------------------------------------
'インポート処理
'------------------------------------

  If DCount("*", "Q_重複レコード") > 0 Then
    If MsgBox("重複データが見つかりました。" & vbCrLf _
    & "インポート処理を中止しますか?", "" _
    & vbCritical + vbYesNo) = vbYes Then
      DataImport = False
      Exit Function
    End If
  End If

'testテーブルの重複データ更新処理
  strSQL = "UPDATE test " _
      & "INNER JOIN W_ワークテーブル " _
      & "ON (test.日付 = W_ワークテーブル.日付) AND " _
       & "(test.社員番号 = W_ワークテーブル.社員番号) " _
     & "SET test.項目1 = W_ワークテーブル!項目1, " _
       & "test.項目2 = W_ワークテーブル!項目2;"
     
     '項目1、項目2の所は実際に更新したいフィールド名になります
     
  CurrentDb.Execute strSQL, dbFailOnError
     

'全データをtestテーブルに追加
'Index1 が張ってあれば、重複レコードはインポートされない
  strSQL = "INSERT INTO test( 日付, 社員番号, 項目1, 項目2 ) " _
      & "SELECT W_ワークテーブル.日付, " _
         & "W_ワークテーブル.社員番号, " _
         & "W_ワークテーブル.項目1, " _
         & "W_ワークテーブル.項目2 " _
      & "FROM W_ワークテーブル;"
  CurrentDb.Execute strSQL

  DataImport = True

End Function


項目1、項目2の所は
みうさんが実際にお使いのテーブルに合わせて下さい。

3,362 hits

【9912】インポート時の重複データ処理 みう 07/10/10(水) 11:34 質問[未読]
【9913】Re:インポート時の重複データ処理 小僧 07/10/10(水) 13:08 回答[未読]
【9914】Re:インポート時の重複データ処理 みう 07/10/10(水) 14:10 質問[未読]
【9915】Re:インポート時の重複データ処理 小僧 07/10/10(水) 14:51 回答[未読]
【9916】Re:インポート時の重複データ処理 みう 07/10/10(水) 17:06 質問[未読]
【9917】Re:インポート時の重複データ処理 小僧 07/10/10(水) 17:34 回答[未読]
【9918】Re:インポート時の重複データ処理 みう 07/10/10(水) 18:07 質問[未読]
【9919】Re:インポート時の重複データ処理 小僧 07/10/10(水) 18:51 回答[未読]
【9921】Re:インポート時の重複データ処理 みう 07/10/11(木) 11:03 質問[未読]
【9922】Re:インポート時の重複データ処理 みう 07/10/11(木) 13:32 質問[未読]
【9923】Re:インポート時の重複データ処理 小僧 07/10/11(木) 15:09 回答[未読]
【9924】Re:インポート時の重複データ処理 みう 07/10/12(金) 11:52 質問[未読]
【9925】Re:インポート時の重複データ処理 小僧 07/10/12(金) 18:36 回答[未読]
【9926】Re:インポート時の重複データ処理 小僧 07/10/15(月) 10:06 回答[未読]
【9927】Re:インポート時の重複データ処理 みう 07/10/15(月) 16:04 お礼[未読]

3329 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078201
(SS)C-BOARD v3.8 is Free