• ベストアンサー

ACCESSのデータをVBAでHTLMファイルを作成

Access2003のデータをHTMLの別ファイルに書き出すようなVBAを作成しようと思っています。 可能でしょうか? またサンプルプログラム、関数のリファレンスサイトなどがございましたら教えていただけますか? よろしくお願いいたします。

  • fm0606
  • お礼率13% (100/761)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

特定の条件に一致するレコード、またはテーブル内の全てのレコードを HTML に書き出すわけですよね? 生成される HTML ファイルは 1つだけですか? それとも 1レコードから 1ファイルが生成され、レコードの数だけ HTML ファイルが生成されるのでしょうか? 当然ながら、最終的に保存される HTML のソースは既にイメージできてますよね。 あとはその中のどの部分が Access からの情報で、どの部分が固定コードなのかをイメージしてください。 その上で、 FileSystemObject を使ってテキストファイルを生成します。 http://www.google.com/search?num=50&hl=ja&q=fso+%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E4%BD%9C%E6%88%90&lr=lang_ja もしレコードの数だけ HTML ファイルを生成するのであれば、 1) 雛形となる HTML ファイルを 1つだけ作っておきます。 2) 処理の最初に雛形 HTML を FSO で開いてソースを丸ごと読み込んで変数A に格納します。 3) レコードを読み込む度に、変数A の中身を 変数B にコピー。変数B の値うち特定の文字列をレコードから読み込んだ文字列で置換し、保存して閉じる。 次のレコードを読み込んで 3) の処理を行う。 というようにレコードの数だけ 2) と 3) を繰り返せばよいかと。 置換しやすいように、HTML 雛形ファイルの当該場所には何か目立つ文字列を仕込んでおきます。 例えば「$$企業名$$」というような文字列を雛形ファイルに仕込んでおき、あとは $$企業名$$ をレコードから読み込んだ文字列に置換するというわけです。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

#1でおっしゃっておられるように、どの程度のことをしようとしているのでしょうか。 例えばよく教科書にされるFOM出版Access2003応用編11章HTMLファイルを作成する、にクエリとレポートの結果を HTML形式で保存する例が載ってます。 単に保存するときの、ファイルの種類を「HTMLドキュメント」に指定するだけです。これらは手操作での話ですが。 上記を例として、質問者の場合は、それとはどう違うのか、違う部分、上記の前(検索とか)後(後処理)を、説明されてはどうですか。 あるいはデータアクセスページでできるようなこととか。

fm0606
質問者

補足

クエリとレポートを別に存在するテンプレートHTMLに書き加えていくようなVBAを組みたいです。 従来存在するHTMLドキュメントへのエクスポート機能はサイズ、色指定などできなかったかと思われます。 そこでプログラムでカスタマイズされたデザインのHTMLドキュメントを作成しようというのが今回の発端です。 検索機能や、データアクセスページは予定しておりません。制的なHTMLファイルを作成するといったものです。

関連するQ&A

  • ACCESS2003のデータ取得関数(クエリー版)

    前質問でAccess2003のデータをテーブルより取得して外部データに反映することができました。 こんどはクエリーからデータを取得して外部ファイル(HTMLドキュメント)を作成するようなVBAの関数を教えていただけますか。 よろしくお願いいたします。

  • VBAでMDEファイルを作成したい

    お世話になっております。 Access2002を使用しております。 タイトルのとおり、MDEファイルの作成をVBAのプログラムで作成したいと考えております。 対象のMDBファイルは自分自身ではなく、 特定対象のファイルです。 Accessのメニューから作成する方法は、 ログ等で提示されていますが、VBAでの方法が 探し出せませんでした。 どのようにすればよいのでしょうか? よろしくお願いいたします。

  • MS Accessで作成したmdb形式ファイルにアクセスしたい

    MS Access2000で作成したMDBファイルにC言語(VisualC++5.0)で 作成したモジュールからSELECT文やINSERT文などのSQL文を発行するなどして、 MDB内のデータをアクセスしたいのですが、インターネット上にそのような プログラムのサンプルが紹介されているサイトをご存知ないでしょうか?

  • AccessでVBAを使って

    AccessでVBAを使ってやりたいことがあります。 あらかじめExcelで作成したHTMLファイルを作ります。 ファイルの内容は「Click」という文字列にハイパーリンクが仕掛けてあります。 やりたいことは、自動的にHTMLファイルを開いて、 Clickの文字列を完全一致で探し出して、 そのハイパーリンクをクリックしたいのです。 どなたかご回答をよろしくお願いいたします。

  • ACCESSのテーブルのデータ追加VBA

    (サーバーのORACLEのデータベースに追加) ACCESSのAテーブルのデータをBテーブルに追加する。追加クエリを使わずVBAで作成したいのですが、どうすればよいのでしょうか。 追加クエリだと件数が多いのか、タイムアウト、ログオーバーのような エラーになってます。 A,Bテーブルは同じレイアウトです。 Bテーブルは空です。 また、サンプルが出ているようなサイトを探しているのでですが どこか良いACCESS専用の質問サイトがありますか。 ACCESS CLUBはなんだか私には使いづらいので他のサイトがあれば宜しくお願いします。

  • ACCESSでクエリーを読み取ってhtmlファイルに出力するVBA

    特定のクエリーのデータを順に読み取り1行づつデータが終わるまで出力しhtmlファイルを作成するプログラムをACCESSのVBAで組もうとしておりますが、VBAでクエリーのデータを読み込む手順が判らず困っております。 (次の例はクエリー"q0001"を読み込んで、Cドライブ直下に"test01.html"というファイルを作成するというもの) 何卒宜しくお願いいたします。 Sub hemlwrite() 'htmlを書き出すプログラム Dim fNAME As String 'ファイル名格納用 fNAME = "c:\test01.html" '作成するhtmlファイル名と格納場所の指定 Open fNAME For Output As #1 'ファイル番号1で新規作成 'データ書き込み、 Print #1, "<html>" Print #1, ----- -- 'ここにクエリー"q0001"のデータを順に読み取りそのフィールドの内容を出力する Print #1, "</html>" Close #1 '閉じる MsgBox fNAME & "を作成しました。" End Sub

  • Access VBA サンプル

    AccessのVBAをVBAエキスパートのテキストを使い、勉強しています。サンプルが少し、わかりづらく、別のサンプル集みたいな本を買いたいのですが、お勧めのものがあれば、ぜひ教えてください。 よろしくお願いします。

  • Access2000のVBAについて

    Access2000のVBAでバッチファイルを実行しようとしていますが、どのように定義をしたらよいかわかりません。サンプルがありましたら、アドバイスをお願い致します。

  • VBAでUTF-8テキストファイル作成したい

    VBA,文字コードなどにあかるくない初心者です。 VBAを利用して、エクセルのとあるセルに記載されている文字を UTF-8形式でテキストファイルに出力させたいと考えています。 (多言語対応のため・・・、韓国語や中国語でセルに記載された文字を  UTF-8形式でテキストファイルに文字化けしないよう出力させたいためです。) どのように実現が可能か、いくつか検索をしてみましたが 難しくてわかりませんでした。 VBAのサンプルコードを教えていただけないでしょうか。 もしくは、初心者でもわかりやすい実現方法が記載されたサイトを教えていただけないでしょうか。 よろしくお願い致します。 ※今文字コードを意識せずに下記のようなVBAを書いています。(簡略化して記載しています。) Sub test() Open "C:\Sample\Data.txt" For Output As #1 'ファイルを新規作成 'データ書き込み Print #1, Cells(1, 1) Close #1 End Sub

  • アクセスVBAでのファイル操作

    他人の作成したプログラムの修正を依頼され困っています。 アクセスVBAを使用してエクセルファイルを作成するプログラムなのですが 同じ名前のファイルがあると誤動作するみたいなので、ファイルの有無を検知して 先にファイルがあるときは削除を行いたいのです。 エクセル作成部のプログラムを見ると、以下のようになっています   xlsObj.DisplayAlerts = False xlsObj.ActiveWorkbook.SaveAs fileName:="エクセル用_" + Format$(Now(), "yyyy_mm_dd")+ ".xls" xlsObj.Quit この命令でマイドキュメントに作成されるみたいです。 作成するパソコンが何台もあり、 ファイル削除の命令の kill (”C:\Documents and Settings\(任意)\My Documents ~ 任意の部分をどう表現すればよいかわかりません。 わかる方いらっしゃいましたら御回答をお願いいたします。 kill 命令を使用しない別回答でもかまいません。

専門家に質問してみよう