三流君 ASPで遊ぶ、失敗する RSSを登録する

AB型の変わり者Ken3が不定期で、Web、ASP関係のサンプルや失敗談を独り言風に書きます。反面教師として気軽に読んで下さい(笑ってください)。*初心者大歓迎です。

現在休刊中です    
解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。
2005/08/08

[ASPで遊ぶ No.106] - ADO Excel接続 シート名を取得したい .OpenSchema(adSchemaTables)

このメルマガの解除は http://www.mag2.com/m/0000099248.htm からできます。
このメルマガの解除は http://www.mag2.com/m/0000099248.htm からできます。

花からおいしい焼酎できました 
花酵母焼酎なでしこ/玉姫を購入する↓
http://www.kurokiya.com/nadeshiko.html
本格焼酎「なでしこ」は、撫子酵母で造られた日本で初めての麦焼酎です。
花の香りが逃げないように、ゆっくりと時間をかけて低温で仕込みました。
華やかな香りと優雅な味わいが特徴の花酵母焼酎です。
25% 720ml 1本 定価:1095円 1ケース(12本) 13,140円
http://www.kurokiya.com/nadeshiko.html

このメルマガの解除は http://www.mag2.com/m/0000099248.htm からできます。
このメルマガの解除は http://www.mag2.com/m/0000099248.htm からできます。
====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*=
[ 三流君 ASPで遊ぶ、失敗する No.106 ]   2005/08/08 月曜日 発送予定
=*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====
AB型の変わり者Ken3が不定期で、
Web、ASP関係のサンプルや失敗談を独り言風に書きます。
反面教師として気軽に読んで下さい。(笑ってください)
ASP系HP: http://www.ken3.org/asp/   
BackNo.  : http://www.ken3.org/backno/backno_asp_mokuji.html
質問感想 : http://www.ken3.org/cgi-bin/bbs/asp/wforum.cgi
              *↑返事が遅いけど、初心者さん歓迎
weblog   : http://ken3-info.blog.ocn.ne.jp/day/  ←最近流行のblog
----------------------------------------------------------------------------
<ADO Excel接続 シート名を取得したい .OpenSchema(adSchemaTables)> 

こんにちは、三流プログラマーのKen3です。

今回は、
ADO Excel接続 で xxxx.xlsのシート名を取得
そんなことにチャレンジしてみたいと思います。

いつもの三流的なアプローチなので、実際はアレンジして使ってください。
※一部でも参考になればいいんだけど・・・

/*
 * 1.今回のキッカケ
*/

http://www.ken3.org/asp/backno/asp084.html
からの書き込みで、
----
>今回、はじめてASPでExcel操作をする事になり、右も左もわかりません。
>ひととおり読ませていただきましたが、おしえてください。
>シート名を取得するにはどうすれば良いのでしょうか?
----
と質問をもらう。

/*
 * 2.人間なってない 問題の解答
*/

この質問に対して、

----
>こんにちは。
>私もシート名の取得方法わからないのですが、
>
>ADO テーブル名 取得
>の3つでGoogleを検索すると、
>
>ADO と ADOX を組み合わせて SQL Server のテーブル一覧を取得します。
>http://homepage2.nifty.com/inform/vbdb/ado_sqlservertables.htm
>なんてのがアリ、
>
>SQLServerだとできそうですが、今回はxlsだからダメか・・・
>※ADO関係のプロパティやサイトを探ってみては?
>
>お力になれずスミマセン。
>他の場所で解決方法が見つかることを願いつつ失礼します。
>※回答を期待されていて待ちぼうけさせると悪いので、
> 短いけどすぐに返信しました・・・
----

と、とんでもなく不親切な回答を・・・
※なんとなくできそうなURL紹介して終わり...
 社内の後輩だったら二度と質問こない先輩上司って感じで、感じ悪い。

/*
 * 3.なぜかいつも同じ目線に立てない私
*/

性格がプログラムに出てくるとかよく聞くけど、
質問に対する回答で人間ができていないのがよくわかったり。

少し前、VBA系でも↓、
http://www.ken3.org/vba/backno/vba170.html

>まるで腰高の内野手みたいな一歩も動く気ない回答だ。
>※サッカーの腰高ディフェンダー、バスケの棒立ち選手って感じかな。
>
>いつから自分が嫌いな歳だけ高い(プライドも高い)プログラマーになっちまったんだ、
>動けよコラ、ボール(質問)に真剣に飛びつけよと思いつつ・・・
>(※自分から動けなくなった先輩プログラマーって...イヤだけど自分がなるとは・・)
>けっ、プログラムや解説は三流でも、
>できない時の予防線のハリカタは超一流ですね。
>~~~~~~~~~~~~~~~~~~
>(※できないのを認めたくない、プライドだけが高いプログラマーって嫌だよね。
>  見習いたくないけど私みたいな先輩達が一部に居るのも(多い?)のも事実だったり)

と、不親切さを書いてたのに直ってないねまったく。
動けよコラ(サンプル作れよ、動き出せよ)

/*
 * 4.資料を見つけ やっと動き出す
*/

チョット調べると、
[HOWTO] Visual Basic または VBA から ADO を Excel データで使用する
http://support.microsoft.com/default.aspx?scid=kb;JA;257819#top

Excel のデータ ソース構造 (メタデータ) を取得する 
なんて感じの資料がMicrosoftから見つかる。

テーブル情報のクエリ 
Set rs = cn.OpenSchema(adSchemaTables)
と書いてあり、

>Jet プロバイダは 9 つのフィールドを含むレコードセットを返します。
>そのうち次の 4 つのフィールドにのみ値が入力されています。 
> table_name  
> table_type - "TABLE" または "SYSTEM TABLE" 
> date_created  
> date_modified  
>特定のテーブルの 2 つの日付フィールドには常に同じ値が表示されます。
>この値は "最終更新日" です。つまり、"date_created" は作成日を示して
>いない場合があります。 
>
>ODBC プロバイダも 9 つのフィールドを含むレコードセットを返します。
>そのうち次の 3 つのフィールドにのみ値が入力されています。 
>
> table_catalog - ブックが存在するフォルダ 
> table_name  
> table_type - Jet プロバイダと同じ  

なんか調べられそうな予感がしたり。

/*
 * 5..OpenSchema(adSchemaTables)をテストする
*/

重い腰を上げ(だったら初めから動けよな)
.OpenSchema(adSchemaTables)をテストする

まずは、接続でしょ?

  'ADO DB Connection オブジェクトを作成する、英文そのままじゃん
  Set db=Server.CreateObject("ADODB.Connection")
↑オブジェクト作成して、
↓接続文字列でファイルの場所+名前を指定するServer.MapPath("test057.xls")
  '接続文字列
  strCon = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
      "Data Source=" & Server.MapPath("test057.xls") & ";" & _
      "Extended Properties=Excel 8.0"
  'データベース(xls)を開く
  db.open strCon

DBとして、.xlsが開けたから、ここから探ってみます。

  'adSchemaTables情報を開く
  Set Rs = db.OpenSchema(adSchemaTables)
で、簡単に開けるみたい。
サンプルでは、手抜きで↓
  Set Rs = db.OpenSchema(20)  'オイオイ20とか書くなよ(adSchemaTables=20なので)
と、Constとか使わないで直値で20とか書いてるけど。

あとは、レコードをResponse.Writeで表示させるみたいに、
  'テーブルでデータを表示する
  Response.Write "<TABLE border='1'>"

  '項目名の表示(Rsとレコードセットと同じく扱ってみた)
  Response.Write "<TR>"
  For Each FldA In Rs.Fields '項目分ループする
      Response.Write "<TH>" & FldA.Name & "</TH>" '.Nameで項目名を表示
  Next
  Response.Write "</TR>"

  'レコードが終了するまでループ(レコードって表現はチト変かな?)
  Do While Rs.EOF = False
      Response.Write "<TR>"
      For Each FldA In Rs.Fields '項目分ループする
          Response.Write "<TD>" & FldA.Value & "</TD>"  '.Valueで値を表示
      Next
      Response.Write "</TR>"
      Rs.MoveNext  '次のレコードへ移動
  Loop

  Response.Write "</TABLE>"   'テーブル終了

で、OKみたいです。
※システム情報が詰まっているレコードにアクセスするイメージかなぁ???

http://www.ken3.org/cgi-bin/test/test106-1.asp
で、テスト実行できます。
試してみてください。

/*
 * 6.終わりの挨拶 </HTML>
*/

今回は、
.OpenSchema(adSchemaTables)
を使って、ADO Excel接続 したシート名を取得してみました。

人間性悪い三流プログラマーのサンプルですが、
何かの参考となれば幸いです。

ASP、VBScript勉強中の三流プログラマーのKen3でした。

------------------------------------------------------------------
今回のメルマガはどうでしたか?あなたの評価をクリックしてください
------------------------------------------------------------------
満足(参考になった)     http://www.ken3.org/cgi-bin/an/a.asp?K=ASP&NO=106&A=5
まぁまぁ(一部参考に..) http://www.ken3.org/cgi-bin/an/a.asp?K=ASP&NO=106&A=4
普通(どちらとも言えない http://www.ken3.org/cgi-bin/an/a.asp?K=ASP&NO=106&A=3
なんかなぁ(期待と違った http://www.ken3.org/cgi-bin/an/a.asp?K=ASP&NO=106&A=2
不満(読んで損した気分) http://www.ken3.org/cgi-bin/an/a.asp?K=ASP&NO=106&A=1
※↓途中経過、みなさんの評価
  http://www.ken3.org/cgi-bin/an/a.asp?K=ASP&NO=106&A=0
  ↑あなたの評価とのギャップは?

----------------------------------
関連項目(ただのバックナンバー紹介)
----------------------------------




--------------------
読者からのお便り紹介
--------------------



----------------------------------------
メールで問い合わせ・感想を送る
----------------------------------------
皆さまのご意見・ご感想・投稿、、毒舌、、どんどんお待ちしております。
面白そうな話、ご意見、注意書き?などあったら、教えてください。
メールに気軽に書いて mailmaga@ken3.org へ送ってください。
(メールソフトで返信ボタンを押して送ってください)
指摘メールやご意見メール、
嫌いそうに見えて、実は好き(変わり者)なんで、どんどん、送ってください。
※送られてきたメールは、メルマガで紹介するかもしれません。
 紹介禁止のときは、転載禁止と入れて置いてください。
 勝手なお願いでスミマセン・・・

----------------------------------------
メルマガ解除方法(登録も出来るけど(笑))
----------------------------------------
三流君のメルマガの解除は(小涙)
このメルマガの解除は http://www.mag2.com/m/0000099248.htm からできます。
このメルマガの解除は http://www.mag2.com/m/0000099248.htm からできます。
お手数ですがアドレス入力後、解除ボタンで(小涙)
*友人・知人への紹介、読者登録も上記で(小嬉)
 文章・説明にクセのあるメルマガなので、紹介するときは注意してね。

----------------------------------------
リンク、転載、引用について
----------------------------------------
もちろん、勝手にやってOKです。バグや障害付きサンプルもどんどん使ってください
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^( まぁ、丸々使えるのは無いので修正しつつ使ってね)
連絡無しでリンクしてもいいし、リンクしましたの連絡ありでも好きなように。
※三流君( http://www.ken3.org/asp/ )でこんなこと書いてました
 と、宣伝付きの引用だと、嬉しいけど(少しは誘導を狙って・・・)
*あっ、私のサンプルを他の掲示板などで丸投げで質問するのやめてね(笑)
 3回ほど、どこかで見たことあるサンプルだなぁってのを見かけた(笑)
 そんな時は、作者に問い合わせてくださいよ。。頼りにならないけど。

<―ーーーーーーー キ リ ト リ セ ン ―ーーーーーーー>

■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
ここから、広告や自分のHP/メルマガの紹介(本文と関係無しです)

自称AB型の変わり者 Ken3(元コンビニ店長、現在三流プログラマー)
が自分の失敗談、体験談を書いたメルマガとHPです※読んで笑ってね
http://www.ken3.org/24h/   ---- コンビニ関係の裏話、店長時代の話を少し
http://www.ken3.org/vba/  ----- VBAのサンプル解説、主にExcel/Access関係
http://www.ken3.org/guchi/  --- プログラマー関係の話を混ぜて語る本人の愚痴

※おっ、と思ったら覗きに来てくださいね。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■

DVD
*渡辺美里 スタジアム伝説 FOREVER 1986 ~ 2005 BORN FINAL
http://h17-aug.gon.cc/ASIN/B000ANW0VY.html

*F1グランプリ 2005 Vol.2 Rd.8~Rd.13
http://h17-aug.gon.cc/ASIN/B000ALJ29O.html

*WRC 世界ラリー選手権 2005 vol.11 ドイツ
http://h17-aug.gon.cc/ASIN/B000ALJ2Q2.html

*あいくるしい DVD-BOX
http://h17-aug.gon.cc/ASIN/B0009W5MR0.html

SOFT/GAME
*ファイナルファンタジーX/X-2 アルティメット ボックス
http://h17-aug.gon.cc/ASIN/B000A41FPU.html

*アルティメット ヒッツ ファイナルファンタジーX
http://h17-aug.gon.cc/ASIN/B000A41FNC.html

-【けんぞう!】---------------------------------------------------------
転職関係、在宅プログラマー、SOHOの広告まとめました
http://www.ken3.org/etc/500yen/zaitaku.html いろいろとあるので転機の人はぜひ
登録料無料、匿名で探せるので在宅で小金稼ぎの人も見てね
~~~~~~~~~~~~~~~~
オレ様、私は、SE様だ、月給30万以上ボーナス100万を探すのもありだよ。
私にみたいにVBA少しできるぐらいだと仕事無いよ・・・
と軽く言われても匿名なら気にならないし(笑)
逆にこんな簡単な仕事で月給27万貰えるの?って会社もあるし、世の中イロイロ。
http://www.ken3.org/etc/500yen/job.html
------------------------------------------------------------------------ 

-【けんぞう!】---------------------------------------------------------
実家の貧乏酒屋
^^^^^^^^^^^^^^

ヘルシア緑茶をケースで売ってます↓。(アニキのコンビニから購入して通信販売)
http://www.kurokiya.com/kao.html
のしょぼいHPは、↑私が作った通販のページなんだけど・・・
「体脂肪が気になる人」
  ~~~~~~~~~~~~~~~~~~
  じゃなくって
  「コンビニ店員の目が気になる人は」(こいつヘルシア飲んでるぞの目が気になる)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  定価+税金+送料で通信販売してます(笑)ヨロシクデス。
    ※完全な定価です、ささやかな割引は2ケース目と4ケース目が送料無料です。

う〜ん、プログラマー相手のセールストークイマイチ。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
コンピュータ関係のお仕事されている皆さん、
話題のヘルシア緑茶はどうでしょうか?不健康(オイオイ)な自分にご褒美で・・
かなりシブメノ味が眠気覚ましにもなりますよ。
缶コーヒーから乗り換えてみては?どうでしょうか?
※カテキン効果じゃなくて、缶コーヒーで+される糖分が無くなっただけで
 実はヤセル効果があったりしてね(オイオイそりゃ無いでしょ)
ご注文は↓から、
http://www.kurokiya.com/kao.html
不健康な在宅プログラマーより 提案でした(いつもの宣伝カヨ!!!)
------------------------------------------------------------------------ 
花酵母焼酎なでしこ/玉姫を購入する
http://www.kurokiya.com/nadeshiko.html
本格焼酎「なでしこ」は、撫子酵母で造られた日本で初めての麦焼酎です。
花の香りが逃げないように、ゆっくりと時間をかけて低温で仕込みました。
華やかな香りと優雅な味わいが特徴の花酵母焼酎です。
25% 720ml 1本 定価:1095円 1ケース(12本) 13,140円
http://www.kurokiya.com/nadeshiko.html
------------------------------------------------------------------------

現在休刊中です
解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。
上へ戻る