Access VBA質問箱 IV

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

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


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

【9873】テキストデータの読込について NEMOTO 07/9/27(木) 16:53 質問[未読]
【9874】Re:テキストデータの読込について hatena 07/9/27(木) 21:14 回答[未読]
【9876】Re:テキストデータの読込について NEMOTO 07/9/28(金) 9:38 質問[未読]
【9877】Re:テキストデータの読込について hatena 07/9/28(金) 10:00 回答[未読]
【9878】Re:テキストデータの読込について NEMOTO 07/9/28(金) 15:04 質問[未読]
【9889】Re:テキストデータの読込について hatena 07/9/28(金) 20:45 回答[未読]
【9893】Re:テキストデータの読込について NEMOTO 07/10/1(月) 14:16 発言[未読]
【9896】Re:テキストデータの読込について hatena 07/10/1(月) 17:38 回答[未読]
【9897】Re:テキストデータの読込について NEMOTO 07/10/1(月) 18:24 質問[未読]
【10004】Re:テキストデータの読込について VBWASURETA 07/11/22(木) 10:58 回答[未読]

【9873】テキストデータの読込について
質問  NEMOTO  - 07/9/27(木) 16:53 -

引用なし
パスワード
   テキストデータを読込みたいのですが今まではテーブルとしてリンクして処理していたのですがダイレクトでテキストデータを読込したいのです。
どのような記述をすればいいのでしょうか?
テキストデータには下記のようなデータです。
12000/01/01元旦
22000/01/02休日
よろしくお願いします。

【9874】Re:テキストデータの読込について
回答  hatena  - 07/9/27(木) 21:14 -

引用なし
パスワード
   >テキストデータを読込みたいのですが今まではテーブルとしてリンクして処理していたのですがダイレクトでテキストデータを読込したいのです。
>どのような記述をすればいいのでしょうか?

どこに読み込むのでしょうか。
読み込んでどのように利用したいのでしょうか。
もう少し具体的な説明が必用と思われます。

【9876】Re:テキストデータの読込について
質問  NEMOTO  - 07/9/28(金) 9:38 -

引用なし
パスワード
   ▼hatena さん:
こんにちは
Accessのモジュールでテキストデータをダイレクトで読込したいのです
TransferText メソッドを使用しないでです。
どのような記述をすればいいのでしょうか?
モジュールの中で読込んだテキストテータを編集していきたいのです。

【9877】Re:テキストデータの読込について
回答  hatena  - 07/9/28(金) 10:00 -

引用なし
パスワード
   >Accessのモジュールでテキストデータをダイレクトで読込したいのです
>TransferText メソッドを使用しないでです。
>どのような記述をすればいいのでしょうか?
>モジュールの中で読込んだテキストテータを編集していきたいのです。

下記にいろいろな方法が紹介されてます。

外部テキストファイルとの接続方法
h tp://www.f3.dion.ne.jp/~element/msaccess/AcTipsGnrlHowToAttachExternalText.html

【9878】Re:テキストデータの読込について
質問  NEMOTO  - 07/9/28(金) 15:04 -

引用なし
パスワード
   ▼hatena さん:
ありがとうございます
下記のモジュールを参考にしていますが記述の意味がよくわからないところがあるので教えていただけないでしょうか?
Private Type 運送会社  ' ユーザー定義型を定義します。
  運送コード As String * 8
  運送会社  As String * 20
  電話番号  As String * 12
  改行    As String * 2
End Type

Public Sub GetFixedLenText()
  ' 固定長テキストファイルをユーザー定義型変数に読み込んで、
  ' イミディエイト ウィンドウに書き出します。
  Const TXT_NAME As String = "C:\Temp\運送会社.txt"
  Dim intFileNum As Integer
  Dim my運送会社 As 運送会社
  ' 未使用のファイル番号を取得します。
  intFileNum = FreeFile
  ' シーケンシャル入力モードでファイルを開きます。
  Open TXT_NAME For Random Access Read As #intFileNum _
    Len = Len(my運送会社)
  ' ファイルの終端までループを繰り返します。
  Do Until EOF(intFileNum)
    ' レコードを読み込みます。
    Get #intFileNum, , my運送会社
    Debug.Print my運送会社.運送コード, _
          my運送会社.運送会社, _
          my運送会社.電話番号
  Loop
  Close #intFileNum ' ファイルを閉じます。
End Sub

Const TXT_NAME とはどのような命令文なのでしょうか?
intFileNum = FreeFile
  ' シーケンシャル入力モードでファイルを開きます。
  Open TXT_NAME For Random Access Read As #intFileNum _
  Len = Len(my運送会社) のFor Random Access Read As #intFileNum の
部分もよくわかりません。
よろしくお願いします。

【9889】Re:テキストデータの読込について
回答  hatena  - 07/9/28(金) 20:45 -

引用なし
パスワード
   >Const TXT_NAME とはどのような命令文なのでしょうか?

Const は定数宣言です。TXT_NAME が、"C:\Temp\運送会社.txt"
という文字列の代わりになります。ヘルプに詳細が載ってますので、
お調べください。

>intFileNum = FreeFile
>  ' シーケンシャル入力モードでファイルを開きます。
>  Open TXT_NAME For Random Access Read As #intFileNum _
>  Len = Len(my運送会社) のFor Random Access Read As #intFileNum の
>部分もよくわかりません。

まずは、Open、Read メソッドをヘルプでお調べください。

ちなみに、これは、固定長形式のテキストファイルの読み込み例ですが、
対象ファイルは固定長形式なのですか。

読み込みファイルの形式、また、読み込んだ後、どのような処理をするのか、
によって適切な方法が異なってきますので、とりありず、いろいろな方法の
載っているサイトを紹介したのですが、
Const の意味を聞いてくるというレベルでは、
これらのコードを利用・応用するのはちょっと厳しいかも。

【9893】Re:テキストデータの読込について
発言  NEMOTO  - 07/10/1(月) 14:16 -

引用なし
パスワード
   ▼hatena さん:
ありがとうございます。
レベルが低いのはわかっています。
自分なりにがんばりますのでよろしくお願いします。

【9896】Re:テキストデータの読込について
回答  hatena  - 07/10/1(月) 17:38 -

引用なし
パスワード
   >レベルが低いのはわかっています。
>自分なりにがんばりますのでよろしくお願いします。

どんな形式のテキストファイルなのか、
どのような編集をしたいのか、
詳細がわからないとこれ以上は回答できません。

前記の参照先、ヘルプ、等で自分なりにコードを書いて、
どこまでできて、どこで、どのようにうまくいかないのか、
説明して質問してください。

【9897】Re:テキストデータの読込について
質問  NEMOTO  - 07/10/1(月) 18:24 -

引用なし
パスワード
   ▼hatena さん:
▼hatena さん:
こんばんは
d:\Tkyuujitsu.txtテキストデータには下記データで
12000/01/01元旦
22000/01/02休日
32000/01/03休日

Const txt_name As String = "d:\Tkyuujitsu.txt"
Dim intfilenum As Integer
Dim index As Double
Dim filedata As String * 31

intfilenum = FreeFile
Open txt_name For Random As #intfilenum Len = Len(filedata)
index = 1
Do Until EOF(intfilenum)
Get #intfilenum, index, filedata

読込むと桁ずれしてしまいます。
12000/01/01
22000/01/02
32000/01/03
にするとうまく読込めます。
全角で読込むとうまくいきません。
よろしくお願いします

【10004】Re:テキストデータの読込について
回答  VBWASURETA  - 07/11/22(木) 10:58 -

引用なし
パスワード
   こんにちは。始めまして

最近VBから遠ざかって忘れ欠けてますが、
多分で書き込みします。

桁ズレというより、読み込むレコード長の問題ですよね?
NEMOTOさんバイトとかわかりますでしょうか?
>Dim filedata As String * 31
この部分ですが、
filedataという変数は31バイト取りますよという宣言だったと思います。

全角文字とかは2バイトつまり、半角文字の1バイト、改行コード2バイト等を
混在の場合はそれらを考慮しないといけないと思います。
※型はもしかするとOS、アプリに依存する場合もあるかもです。

なので、どうしてもバイナリデータとして取得しないといけない
問題なのでしょうか?

1行単位で取得するだけで十分であれば以下のような感じでいいように
思います。(いや、VBAから離れてもまだまだ書けるもんですね)

  Dim filenumber as Integer
  Dim buf as String
  filenumber = FreeFile
  Open FName For Input Access Read As #filenumber
    Do Until EOF(filenumber)
      Line Input #filenumber, buf '1行単位に取得
      Debug.Print("ここで取得したテキスト内容を処理")
    Loop
  Close #filenumber

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