2017年1月21日土曜日

ms access vba ADO

DAOとADO
どっちがどうなのだかいつも忘れる。

DAOはすでに開発が終了している。
ADOは今も?開発が続いている。

access2000時にADOが出てきたそうだ。

ADOXは新規にデータベースやテーブル、クエリを作ったり既存のテーブルやクエリの構造を変更したりできる。
----------------------------------------------------------------------------------
レコードセットをMsgBoxで表示させたいときにはrsをレコードセットとすると、
MsgBox rs.getstring
MsgBox rs.getstring(2, 1) ----括弧の中はパラメーター。

getstringはRecordset をバリアント型 (Variant) 変数 (BSTR) の文字列として返す。
-----------------------------------------------------------------------------------
データをms accessからms excelへ出力。
CopyFromRecordsetを使う場合。
 objEXE.Cells(14, 2).CopyFromRecordset rs1

Cellsを使う場合。
Dim i As Integer
 rs1.MoveFirst
 rs2.MoveFirst
 rs4.MoveFirst
 i = 0
Do Until rs1.EOF = True
 'Cells(14 + i, 2).Value = rs1.Fields(0).Value   ⇒フィールドがいくつもあるときは、Fields(0)の0のところに変数を入れて移動させたりできる。
 'Cells(14 + i, 4).Value = rs2.Fields(0).Value
 Cells(14 + i, 7).Value = rs4.Fields(0).Value
  i = i + 1
 rs1.MoveNext
 rs2.MoveNext
 rs4.MoveNext
 Loop

------------------------------------------------------------------------------------
フォントサイズの変更は
Dim j As Long
    For j = 14 To 23
        Cells(j, 2).Font.Size = 12
        Cells(j, 4).Font.Size = 12
        Cells(j, 7).Font.Size = 12
    Next j

その他いろいろ
.Font.Name = "MS P明朝"
.Font.Bold = True
.ColumnWidth = 8
RowHeight = 26
-------------------------------------------------------------------------------------


自分がaccessを使いだしたのが2000年頃。
最近は昔つくったものをちょっと手直しするくらい。

ms accessは便利だけど、
ms accessでデータベースを構築してもローカルな環境で使う感じになってしまうからかなぁ。
mysqlとか、そこいら辺のデータべストの相性が良くなると使いやすいのだと思うけど、ODBCとか、安定しないし。
なんてことを言っていたら、最近はそこいら辺、結構安定しているそうだ。

でも、accessのテーブルをmysqlのテーブルに変換すると、情報がかなり減ってしまうんだよなぁ。

最近のaccessはネット上での情報が少ない気がする。
使う人が減っているのかな。

0 件のコメント:

コメントを投稿