|
▼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
|
|