• 締切済み

Accessのフォームで入力したファイル名を使ってインポートする方法

Access2000を使ってデータを変換するツールを作ろうとしています。元データをTransferTextを使って取込むことにしたのですが、複数のファイルを取込む為、TransferTextのパラメータであるディレクトリパスとファイル名を、フォーム等で入力して処理したいと考えています。 フォームは次のようなイメージです。 ---------------------------------------------- ■TransferTextを使ってデータを取込むイベント?を呼び出すボタン ■ディレクトリパス、ファイル名の入力ボックス ■入力ボックスに値を入力 ■ボタンをクリックすると、入力値を参照して目的のファイルを定義済のイベントプロシージャ?で取込む ---------------------------------------------- ポップアップで入力する方式はちゃんと動いたのですが、フォーム上で入力した値(ディレクトリパス、ファイル名)を、プロシージャで使うようにしたいのです。 (ファイル名はいくつもありますが、ディレクトパスは共通なので、毎回入れるのが手間なので・・) アドバイスいただきたく。

みんなの回答

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

#1です。 > TransferTextのパラメータとして使う部分で「コンパイルエラー 質問が変わっているように思いますが、元の質問であるテキストボックスの値を持ってくる処理については、これでOKなんでしょうか? 私も Access については素人ですので、ソースの提示もなく、テーブルや取り込むデータについても不明の状態で、何が悪いかと言われても解かりかねます。 こちらは Access97 ですが、mdb と同じフォルダ内にタイトル行付きのCSVファイル(test.csv)をおいて下記のようにしたら取り込めましたが。。。 Private Sub コマンド0_Click() Dim fName As String fName = CurrentDb.Name fName = Left(fName, Len(fName) - Len(Dir(fName))) テキスト1.Value = fName テキスト2.Value = "test.csv" If Not IsNull(テキスト1.Value) And _   Not IsNull(テキスト2.Value) Then   fName = テキスト1.Value & テキスト2.Value    If Dir(fName) <> "" Then     DoCmd.TransferText acImportDelim, , "T_テスト", fName, True    Else     MsgBox fName & " は無い"    End If End If End Sub

Charlie
質問者

お礼

追加の説明ありがとうございます。 ファイルを取り込む処理は、先に作ってあった為、別に記述して別なモジュールとして保存していました。そのモジュールを呼び出して処理させようとした為、うまく動かなかったようです。いただいたサンプルのように、フォームの中に記述したら、ちゃんと動きました。 ありがとうございました。

すると、全ての回答が全文表示されます。
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

テキストボックスのテキスト1とテキスト2があるとして、 Private Sub コマンド0_Click() Dim fName As String 'テキスト1.Value = "c:\" 'テキスト2.Value = "hoge.txt" If Not IsNull(テキスト1.Value) And _   Not IsNull(テキスト2.Value) Then   fName = テキスト1.Value & テキスト2.Value   If Dir(fName) <> "" Then     MsgBox fName & " を発見"   Else     MsgBox fName & " は無い"   End If End If End Sub こんな意味ですか?

Charlie
質問者

補足

ありがとうございます。 教えていただいたやり方を参考にしてやってみましたが、上手く処理できませんでした。 メッセージボックスをポップアップさせて表示させることはできたのですが、VBの処理でTransferTextのパラメータとして使う部分で「コンパイルエラー: 修飾子が不正です」というエラーが出て止まってしまいます。 何が悪いのでしょうか・・・。

すると、全ての回答が全文表示されます。

関連するQ&A