• ベストアンサー

ACCESSのテーブルをHTMLファイルで出力したい

ACCESSのテーブルをHTMLファイルで出力したいと考えています。 VBAでプログラムを作成すればいいのでしょうか。 ACCESSははじめたばかりでよくわかりません。 丸投げのようで恐縮ですが、宜しくお願い致します。 *************************************** テーブル1 *************************************** ID 名前 住所 1 伊藤 愛知 2 加藤 大阪 3 稲垣 東京 … *************************************** 2.html *************************************** <html> <body> <table> <tr> <td>ID</td> <td>名前</td> <td>住所</td> </tr> <tr> <td> … ここにテーブル1のデータを出力したい … </table> </body> </html> *************************************** 2.htmlのファイルを出力するようなことをしたいと考えています。 宜しくお願いします。

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

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

Private Sub コマンド_Click() myHTM = "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>" _ & vbCrLf & "<html><meta http-equiv='Content-Type' content='text/html; charset=shift_jis'>" _ & vbCrLf & "<head><title>トップページ</title></head><body><table>" mySQL = "SELECT t1名前.番号, t1名前.名前, t2年令.年令 " _ & "FROM t1名前 INNER JOIN t2年令 ON t1名前.番号 = t2年令.番号;" Set myRS = CurrentDb.OpenRecordset(mySQL) Do '番号か 項目名で 指定します MsgBox myRS(0).Name & " : " & myRS(0).Value 'どちらの方法でも 同じように データが取り出せます MsgBox myRS("名前").Name & " : " & myRS("名前").Value 'Nameは項目名 Valueは項目の内容です myHTM = myHTM & vbCrLf & "<tr><td>" & myRS(0).Value _ & "</td><td>" & myRS(1).Value _ & "</td><td>" & myRS(2).Value & "</td></tr>" myRS.MoveNext If myRS.EOF Then Exit Do Loop myHTM = myHTM & vbCrLf & "</table></body></html>" MsgBox myHTM Set myRS = Nothing End Sub 2つのテーブル t1名前 t2年令 の項目3つをHTMLにします 連続して処理する時は Doループや Forループを使います 条件になるまで実行して 無くなったら脱出 として処理します writeは HTMLを作成してから 最後に1回だけでもいいと思います Set myRS = CurrentDb.OpenRecordset(mySQL) クエリの結果を レコードセット という入れ物に入れます myRS.MoveNext で順番に取り出すことができます (次のレコードに進む) Do から Loop の間を 繰り返して実行しています If myRS.EOF Then Exit Do 終わりにEndOfFileなったら脱出します  

smorgas030
質問者

お礼

ありがとうございます。 教えていただいたとおりにやったらできました。

その他の回答 (1)

  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.1

http://www.moug.net/tech/acvba/0090017.htm 単純にHTMLに落とすだけなら上のような方法があるみたいです。(自分はVBAのプロじゃないのであんまし詳しくは回答できませんが。 質問者さんの言うような HTMLファイルの中に、自在にテーブルのデータを表示したい のでしたら、ASPだとかCGI、PHPあたりを勉強することになるでしょう。

smorgas030
質問者

お礼

回答ありがとうございます。 テーブルと書きましたが、クエリの結果を出力したいと考えています。 また、出力するファイル名が2.htmlとなっていますが、 フォームの画面でファイル名を入力して、 その名前がファイル名になるような感じにもしたいです。 可能でしょうか。宜しくお願い致します。 *************************************** テーブル1 *************************************** ID 名前 住所 1 伊藤 愛知 2 加藤 大阪 3 稲垣 東京 … *************************************** 2.html *************************************** Private Sub test_Click() Dim fNAME As String fNAME = "c:2.html" Open fNAME For Output As #1 Print #1, "<html>" Print #1, "<head>" Print #1, "<title>トップページ</title>" Print #1, "</head>" Print #1, "<body>" … ここにクエリの結果を入れたいと考えています。 … Print #1, "</body>" Print #1, "</html>" Close #1 '閉じる End Sub

関連するQ&A