Access VBA質問箱 IV

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

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


4746 / 9994 ←次へ | 前へ→

【8490】Re:価格更新について
回答  小僧  - 06/8/21(月) 13:09 -

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

> これはファイルを選択するとき、フォームの欄にどのファイルを選んだか
> アドレス(例:c:\uriage\支店\0827.csv)が分かるように表示させる仕組みです。

>この場合、更新したいcsvファイルの選択はフォーム上で出来るのでしょうか。

前回の質問を拝見させて頂いたのですが、
ファイルダイアログは使用されているのでしょうか。

まだ使われていないのでしたら
AccessやOSのバージョンによって使えるものが違いますので
明記して下さいね。

>>・ワークテーブルの削除クエリ
>>・ワークテーブルへの追加クエリ(もしくはTransferTextメソッド)

この部分をまず作っていきましょう。

CSVの内容が

4901085096321,150
4901085096332,120
4901085096343,100

の様に見出し行なし、1行目がJANコード、2行目が価格とします。
(JANコードは適当です)

ワークテーブル、W_新規価格表を用意します。
JANコード:テキスト型(主キー)
価格   :通貨型

下記コードを標準モジュールに記述します。


Sub 追加クエリの実行()
Const CSVPath = "c:\uriage\支店\0827.csv"

Dim i As Long
Dim strSQL As String
Dim Path_Name As String
Dim File_Name As String


'CSVPath の後ろから「\」の位置を求める
  i = InStrRev(CSVPath, "\")
  
'CSVPath をパス名とファイル名に分割。ファイル名の「.」は「#」に変更
  Path_Name = Left(CSVPath, i - 1)
  File_Name = Replace(Mid(CSVPath, i + 1), ".", "#")
  
'ワークテーブルの削除クエリを作成/実行
  strSQL = "DELETE FROM W_新規価格表"
  CurrentDb.Execute strSQL, dbFailOnError
  
'追加クエリを作成/実行
  strSQL = "INSERT INTO W_新規価格表( JANコード, 価格) " _
      & "SELECT [" & File_Name & "].F1, [" & File_Name & "].F2 " _
      & "FROM [" & File_Name & "] IN '" & Path_Name & "'[Text;HDR=NO;]"

  CurrentDb.Execute strSQL, dbFailOnError
  
End Sub


今回は Const句でインポートするファイルを固定していますが、
FileDialogの部分ができているのでしたら
ファイル名も可変にする事も可能です。

CSVに対しての SQLの作り方については
YU-TANGさんのWebサイトで詳しく触れられているので
参考になさってみて下さい。

YU-TANG's MS-Access Discovery
外部テキストファイルとの接続方法
http://x7net.com/~access/AcTipsGnrlHowToAttachExternalText.html
925 hits

【8470】価格更新について TB1 06/8/17(木) 11:15 質問
【8472】Re:価格更新について 06/8/17(木) 13:06 回答
【8478】Re:価格更新について TB1 06/8/17(木) 14:34 発言
【8483】Re:価格更新について TB1 06/8/18(金) 17:15 質問
【8488】Re:価格更新について 小僧 06/8/20(日) 11:20 発言
【8489】Re:価格更新について TB1 06/8/21(月) 11:08 質問
【8490】Re:価格更新について 小僧 06/8/21(月) 13:09 回答
【8492】Re:価格更新について TB1 06/8/21(月) 14:20 発言
【8493】Re:価格更新について 小僧 06/8/21(月) 15:06 回答
【8495】Re:価格更新について TB1 06/8/21(月) 15:57 質問
【8496】Re:価格更新について 小僧 06/8/21(月) 18:21 回答
【8499】Re:価格更新について TB1 06/8/22(火) 11:25 質問
【8512】Re:価格更新について 06/8/24(木) 17:29 発言
【8517】Re:価格更新について TB1 06/8/25(金) 11:01 お礼

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