Access VBA質問箱 IV

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

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


1824 / 2272 ツリー ←次へ | 前へ→

【5089】リストボックス ぶる 05/5/23(月) 16:14 質問[未読]
【5090】Re:リストボックス クロ 05/5/23(月) 16:36 発言[未読]
【5095】Re:リストボックス ぶる 05/5/24(火) 0:06 質問[未読]
【5096】Re:リストボックス クロ 05/5/24(火) 8:36 回答[未読]
【5097】Re:リストボックス ぶる 05/5/24(火) 13:00 質問[未読]
【5098】Re:リストボックス クロ 05/5/24(火) 13:59 回答[未読]
【5100】Re:リストボックス クロ 05/5/24(火) 14:42 回答[未読]
【5102】Re:リストボックス ぶる 05/5/25(水) 13:00 お礼[未読]

【5089】リストボックス
質問  ぶる  - 05/5/23(月) 16:14 -

引用なし
パスワード
   現在VBAの勉強している初心者です。

「フォルダを参照すると自動でそのフォルダにあるテキストファイルをテーブルにインポートして、そのテーブルの情報をリストボックスに表示させる」
ということをやりたいと思っています。
なんとかフォルダを参照してインポートするところまでは出来たのですが
テーブルの情報をリストボックスに表示させるやり方がわかりません。
どなたか教えていただけませんか。
説明不足だったらすみません

【5090】Re:リストボックス
発言  クロ  - 05/5/23(月) 16:36 -

引用なし
パスワード
   テーブル情報とは何を差すのでしょうか?

【5095】Re:リストボックス
質問  ぶる  - 05/5/24(火) 0:06 -

引用なし
パスワード
   説明不足でした。すみません(><)
あと、少し内容が変わったので書きます

やりたい事は、
「フォルダAにはテキストファイルが複数入っていて
フォームの参照ボタンを押してフォルダAを選択すると
テキストファイルのファイル名の一覧がリストボックス(それ以外でもアリ)
に表示され、表示されたファイル名をクリックすると
別のテキストボックスに内容が表示される」
です。
まだ初心者なもので、一度テーブルにインポートしてからのほうが
いいのかどうか分かりません。
ご意見お願いします。

【5096】Re:リストボックス
回答  クロ  - 05/5/24(火) 8:36 -

引用なし
パスワード
   ファイル名を格納する為のテーブルを用意します。
テーブル名:T_Aフォルダ
フィールド:格納ファイル名/テキスト型

リストボックスを設置
リストボックス名:lst1
値集合ソースは「T_Aフォルダ」で作成。

ファイル名を取得するためにコマンドボタンを用意します。
コマンドボタン名:cmbGetFN
クリック時のイベントにコードで

Private Sub cmbGetFN_Click()
Dim db As DAO.Database
Dim strSQL As String, MyPath As String, MyName As String

MyPath = "D:\圧縮解凍\A\" ' Aフォルダのフルパス
MyName = Dir(MyPath & "*.TXT") 'Aフォルダ内のtxt拡張子ファイルを調べる

Set db = CurrentDb
'フォルダ内のTXTファイル名を格納するテーブル「T_Aフォルダ」の
'現在格納レコードの消去
strSQL = "DELETE * FROM T_Aフォルダ;"
db.Execute strSQL

Do While MyName <> ""
 'フォルダ内のTXTファイル名を格納するテーブル「T_Aフォルダ」に格納
 strSQL = "INSERT INTO T_Aフォルダ ( 格納ファイル名 ) SELECT '" & MyName & "';"
 db.Execute strSQL
 MyName = Dir
Loop
db.Close: Set db = Nothing
Me.lst1.Requery
End Sub

記述します。
これでリストボックスにAフォルダ内のTXTファィル名が表示されます。
※DAOを使いますので、「参照設定」で[Microsoft DAO 3.* Object Library] を
 参照してください。
※Aフォルダ内のTXTファイルを加えたり、消したりしてリストが都度最新のものに
 なるか試してください。

まずは、ここまで

【5097】Re:リストボックス
質問  ぶる  - 05/5/24(火) 13:00 -

引用なし
パスワード
   表示させる所までは問題なく出来ました^^
ありがとうございますっ

後は、「クリック毎にそのファイルの内容がテキストボックスに内容が表示される」
という処理なんですが
テキストの内容はTransferTextで一度インポートしてからのほうがいいでしょうか?
ちょっとやってみたんですが、うまく目的のフィールドに内容が入ってくれません
他に良い方法などがあったら教えてほしいです^^

【5098】Re:リストボックス
回答  クロ  - 05/5/24(火) 13:59 -

引用なし
パスワード
   ▼ぶる さん:
>後は、「クリック毎にそのファイルの内容がテキストボックスに内容が表示される」
>という処理なんですが
>テキストの内容はTransferTextで一度インポートしてからのほうがいいでしょうか?
>ちょっとやってみたんですが、うまく目的のフィールドに内容が入ってくれません
>他に良い方法などがあったら教えてほしいです

リストボックスのダブルクリック時にイベントに

TransferTextでうまく入らないとはどういうことでしょうか?
テキストファイルはどんな形式(固定長/TAB切り/CSV等)でしょうか?
一度、手動でインポートしてウィザード上で「設定」で「インポート定義」を
保存して、TransferTextのSpecificationNameにインポート定義を指定しても
ダメでしょうか?

【5100】Re:リストボックス
回答  クロ  - 05/5/24(火) 14:42 -

引用なし
パスワード
   これじゃ↓なんだか分かりませんよね。m( _ _ )m
>リストボックスのダブルクリック時にイベントに
TransferTextでいいと思います。

Dim MyPath As String, MyName As String
MyPath = "D:\Aフォルダ\" ' Aフォルダのフルパス
MyName = Me.list.Column(0, Me.list.ItemsSelected)
'現在格納されているレコードの破棄
DoCmd.RunSQL "DELETE * FROM 格納先テーブル名;"
'レコードのインポート処理
DoCmd.TransferText acImportFixed, "インポート定義名", "格納先テーブル名", MyPath & MyName

固定長の場合は第一引数は「acImportFixed」になります。
また、第二引数のインポート定義は事前に手動で作成されておくといいと思います。

【5102】Re:リストボックス
お礼  ぶる  - 05/5/25(水) 13:00 -

引用なし
パスワード
   なんとかテキストボックスに表示できるようになりました^^
色々とありがとうございましたっ

1824 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078229
(SS)C-BOARD v3.8 is Free