Excelファイルのデータベース操作(Excel97-2000)
♪ODBCドライバの接続文字列
Driver={Microsoft Excel Driver (*.xls)};DBQ=(ファイルパス);ReadOnly=0
ReadOnly=1とすると読み取り専用。OLE DBでは設定不可。
登録済みのデータソース名に対して「DSN=(データソース名)」もOK。
♪OLE DBプロバイダの接続文字列
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=(ファイルパス);Extended Properties="Excel 8.0;HDR=YES;"
HDR=NOとすると先頭行からデータ行とする。ODBCでは設定不可。
♪トランザクション
トランザクションは実装されていない。コマンド発行で即時更新。
♪テーブル指定
[シート名$セル範囲] で指定した範囲をDBの表として扱う。セル範囲省略可。
実際に有効になるのは、指定したセル範囲とシート全体のセル範囲の共通部分。
セル範囲の先頭行がヘッダ行(セル値が列名)、2行目以降がデータ行。
空のセルはFn(nはセル範囲内の順序)、重複する項目は2番目以降に1,2,…を付記。
例:セル値 IDX,NAME,,,データ,NAME → 列名 IDX,NAME,F3,F4,データ,NAME1
♪ODBCドライバのデータ型
シート・列の書式設定により決まる。行・セルの書式設定は無視。
標準・数値・会計・パーセンテージ・分数・指数・文字列 → NUMBER
通貨 → CURRENCY
日付・時刻 → DATETIME
セルが空か、セル値を列のデータ型に変換できないときはDBNULL。
文字列もNUMBER型となる。入力によっては変換されない。文字列型は返せない?
♪OLE DBプロバイダのデータ型
セルの書式設定により決まる。標準のときはセル値で判別される。
数値・パーセンテージ・分数・指数 → DBTYPE_R8
通貨・会計 → DBTYPE_CY
日付・時刻 → DBTYPE_DATE
文字列 → DBTYPE_WVARCHAR
セルが空か、セル値が列のデータ型に変換できないときはDBNULL。
♪更新コマンド(UPDATE、INSERT、DELETE)
DELETE文は使用できない。
INSERT文は、指定したセル範囲またはシート全体のセル範囲の次の行に挿入。
UPDATE文は、有効なセル範囲を越えたセルに値をセットできない。
シートのセル範囲外のセルに値を挿入するとセル範囲を拡張する。
しかし、セルにNULLをセットするなどしてもセル範囲は縮小されない。
♪SQLの例
Sheet1の1行目は空、A2~C10にデータが入っているものとする。
SELECT F1, F2, F3 FROM [Sheet1$A1:C8]
→ 3列(A~C)×7行(2~8)のレコードセットを返す。
SELECT * FROM [Sheet1$A1:Z999]
→ 3列(A~C)×9行(2~10)のレコードセットを返す。
UPDATE [Sheet1$A1:C10] SET F2 = 'DEF'
→ B2~B10がDEFに更新される。9を返す。
UPDATE [Sheet1$A1:C2] SET F2 = 'GHI', F3 = 160 WHERE F1 = 2
→ A2が2ならばB2~C2がGHI,160に更新される。0または1を返す。
INSERT INTO [Sheet1$A1:C12] VALUES (11, 'JKL', NULL)
→ 11行目に11,JKL,空が挿入される。1を返す。
INSERT INTO [Sheet1$D7:E7] (F1, F2) VALUES ('MNO', 220)
→ D8~E8にMNO,220が挿入される。1を返す。
note
このブログを検索
ラベル
ブログ アーカイブ
-
▼
2005
(284)
-
▼
4月
(27)
- 民需
- BAND AGE
- そんなにもみしだくなんて
- おかわり談義
- すれ違った自動車のナンバーをすべて覚えておくタイプ
- 粟村テック
- 卓越した生活・神の生活
- あいつは泳がせておけ
- 電車男専用車両
- プライドのダンナは許せない
- エムピオという選択肢
- 九分九厘バスクリン
- ふくふくー
- 一本道のある風景
- きょうのガセビア
- そんなにがっついているように見えますか?
- ペイルキュート
- しっくいハウス症候群
- 左曲がりのダンディ
- 来週も俺は同じ服で 同じ場所にいるさ
- 先走らなくてよかった
- 「卒業」みたいに
- あたえたもうた
- 家で一人でテレビ見てブツブツ言っているタイプ
- 妹モノとか出てきたらリアクションに困る
- こんなときにする質問
- 以下略ん
-
▼
4月
(27)
0 件のコメント: