アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります
■概要
Accessのボタンで複数のCSVファイルを一括にひとつのテーブルにインポートさせたいのですが

■内容
テキストボックス、参照ボタン、実行ボタンをフォーム上に設置
参照ボタンでダイアログボックスを表示させCSV複数選択し
選択内容がテキストへ反映。
実行ボタンで選択された複数CSVをインポートさせたいです

当方初心者なのでVBA等の回答があれば幸いです
ご教授よろしくお願い致します。

A 回答 (4件)

#3です。


当方、Access2000ですので、WindowsAPIのお世話にならないと、ファイル選択のダイアログが使えません。
http://www.accessclub.jp/samplefile/samplefile_7 …
を改造して、複数選択可能にした事がありますが、2002以降の方には意味がありません。
参考URLはご参考になりませんか。検証できる環境がないので、外していたらすみません。
>.AllowMultiSelect = true
に変更して、複数選択可能にしてやると
>For each varSelectedFile In .SelectedItems

>Next
の所で、選択したファイルに対して、順次処理が出来ると思います。
>テキストボックス内にファイル名を書き込み
を行う必要は無いと思いますが、いかがでしょう。

参考URL:http://www.accessclub.jp/samplefile/samplefile_1 …

この回答への補足

返事ありがとうございます

複数選択を実行できたとしてもテキストボックスには
1ファイルパスしか記載されず実行も当然1ファイル文です

妥協したとしてテキストファイルなしの状態での
実際どのように組み合わせればよいかご教授願います

'最初に開くホルダーを当ファイルのフォルダーとします。
.InitialFileName = CurrentProject.Path

If .Show = -1 Then 'ファイルが選択されれば -1 を返します。
For Each varSelectedFile In .SelectedItems
FileSelect = varSelectedFile
Next
'このぶぶんに何かを記載する?
End If

補足日時:2008/05/08 14:40
    • good
    • 0

参考URLの記事を見つけました。

これはワード文書の事例ですが、csvもテキストファイルとして処理すれば、選択ファイルを一時ファイルに統合できると思います。(それから一括インポート)
残念ながら、ODC_FileDlgObjs.exe サンプル コードに辿り着けません。英文のダウンロードセンターで検索してもヒットしません。中途半端になってしまいましたが、ご参考まで。
もちろん、取得した複数ファイルの情報に対して、ループ処理して次々にインポートして、追記するのが素直でしょうが。

参考URL:http://msdn.microsoft.com/ja-jp/library/cc326127 …

この回答への補足

ですよね
Dim MyPath As String
Dim MyFile As String
Dim MyName As String

MyPath = "C:/" '【データ保存先バスの設定】
MyFile = MyPath & "*.csv" '【拡張子csvのファイルのみ取得】
MyName = Dir(MyFile, vbNormal)
Do While MyName <> ""
If MyName <> "." And MyName <> ".." Then
If GetAttr(MyPath & MyName) <> vbDirectory Then
DoCmd.TransferText acImportDelim, "インポート定義名", "テーブル名", MyPath & MyName, False, "" '【取得したファイルをインポート】
End If
End If
MyName = Dir
Loop


参考URLhttp://penhagi.com/access/ota2004/3207.htm
上記をどのようにすればダイアログ表示 テキストボックス内にファイル名を書き込み実行ボタンで吸い上げさせるかわかりません

補足日時:2008/05/02 10:56
    • good
    • 0

うーん、何故同じ質問を繰り返して無駄にトピを増やすのですか?



http://okwave.jp/qa3965156.html

こちらのNo1で

>こちらについてはdir関数で
とありますが、これについて少しは調べてみましたか?

>実行ボタンで選択された複数CSVをインポートさせたいです

ファイルが複数ある場合は、その都度インポートするのでは無く
一旦一まとめにしてからインポート、という手段もあります。

Line Inputステートメントについて調べてみると良いでしょう。
    • good
    • 0

アクセスの質問ですか。


>当方初心者なのでVBA等の回答があれば幸いです
これは丸投げの質問で規約違反。
少し勉強してから質問すべき。AccessVBAをここで答えられるほど簡単ではないと思う。
ーー
アクセスの「マクロ」(VBAではない)で「テキスト変換」というのがあるからこれでも手がかりに、考えたら。
そしてVBA化というかModule化はどうするかに進む。
ーー
http://oshiete1.goo.ne.jp/qa1705027.html

この回答への補足

imogasiさまお返事ありがとうございます
現状のVBAを表示します
imogasiさまならわかるとおもいますのでコードの補助は入れません
Private Sub 参照_Click()
Dim strFileName As String
'ファイルを開くダイアログを表示
strFileName = GetFile("")
If Len(strFileName) > 0 Then
Me.テキスト1 = strFileName
Else
MsgBox "ファイルは選択されていません!
End If



End Sub
Private Sub 実行_Click()
TextConv Me.テキスト1, "BフレCSV", "Bフレ"
Me.Requery '画面を更新します。


End Sub
Sub TextConv(strFle As String, strInp As String, strTbl As String)
If MsgBox("インポートしますか?", 4, "実行確認") = vbYes Then
DoCmd.TransferText acImportDelim, strInp, strTbl, strFle, False



MsgBox "テーブルデータを更新しました"
End If
End Sub

どこを変更するかわかりますか?
尚、手をつけられない解答等はえんりょうくださいね。imogasiさん

補足日時:2008/05/01 12:01
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A