ADOのやり方


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
vol060

これならわかるマイクロソフトアクセス活用法
            -->ADOのやり方
              
発行者:高内 章治 2008年5月21日
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┏ 今日の内容 ━━━━━━━━━━━━━━━━━━━━━━━━┓

┃【01 - ご挨拶    】
┃【02 - トピックス  】ADOのやり方

┃【03 - 編集後記    】

┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

─────────────────────────────────
【01 - ご挨拶    】          
─────────────────────────────────

こんにちは、高内(こうない)です。

今回は、

「ADOのやり方」

についてお話したいと思います。




─────────────────────────────────

【02 - トピックス】: ADOのやり方

─────────────────────────────────

前回、クエリでできないことがあるというお話をしました。
そういう時は、ADOというやり方があると言うことをお話しました。

その、ADOのやり方です。

今、アクセス2007を使っていますが、アクセス2003までは、ADOが標準で設定されていたのですが、アクセス2007では、参照設定しないといけないようです。

今日は、ADOの使い方を説明します。

ADOとは、ActiveX Data Objects の略です。
これは、Visual Basicを使ってデータベースに接続して、データを操作するときに使用するオブジェクトです。

これを使って前回のプログラムを作ります。

前回の、例です。


・製品のデータ

製品 時間 項目
A 1000 ??
A 1130 ??
A 1200 ??

製品別のデータに、時間が入っています。
1000は10時00分という意味です。1130 は、11時30分です。

もう一つ時間のデータがあります。

・時間のデータ
(から)(まで)
時間 時間 項目
1000 1059 B1
1100 1159 B2
1200 1300 B3


10時00分から10時59分までだとB1の項目名になります。


この2つのデータを使って、製品別の時間の横に、下のデータの項目名を表示させたいと言うことです。
??の所です。

例えば、1番上のデータは、10時ですがら、時間のデータの「B1」が入ります。
3番目だと、「B3」が入ります。

これを、ADOを使って作成します。

ボタンをクリックしたときの処理の中に作成します。

やり方としては、

  1. 製品のデータを読み込む。

  2. 次に時間のデータを上から読んでいく。

  3. 製品データの時間が、時間のデータの範囲にあったら時間のデータを取り出す。

  4. 製品データ1に項目の入ったデータを書き出す

  5. 次のデータを読んで2から4を繰り返す。


ちょっと複雑ですが。


ADOのステップは、

  1. ADOを定義

  2. ファイルを開く

  3. 処理をする。

  4. ファイルを閉じるです。


実際に使ったプログラムからコピーして修正しました。


ちょっと複雑ですが、イメージはつかめると思います。

******************

'---- 製品データを読む
'---- ADOの定義
Dim cn2 As New ADODB.Connection
Dim rst2 As New ADODB.Recordset

Set cn2 = CurrentProject.Connection
Set rst2 = New ADODB.Recordset
'---- ファイルを開く
 rst2.Open "製品データ", cn2, adOpenStatic, adLockReadOnly

'-----製品データ1へ書き込む
Dim cn3 As New ADODB.Connection
Dim rst3 As New ADODB.Recordset

Set cn3 = CurrentProject.Connection
Set rst3 = New ADODB.Recordset
rst3.Open "製品データ1", cn3, adOpenKeyset, adLockOptimistic

'------製品データが終わるまで繰り返す
Do Until rst2.EOF

'------製品データ1に追加します 
rst3.AddNew
rst3!製品 = rst2!製品
rst3!時間 = rst2!時間



'-----ここで、時間の項目データを持ってくる
Dim cn4 As New ADODB.Connection
Dim rst4 As New ADODB.Recordset

Set cn4 = CurrentProject.Connection
Set rst4 = New ADODB.Recordset
rst4.Open "時間のデータ", cn4, adOpenStatic, adLockReadOnly

 '----- 時間の項目データを1行づつ読んで比較する。
Do Until rst4.EOF

If (rst2!時間 >= rst4!時間(から)) And (rst2!時間 <= rst4!時間(まで)) Then

rst3!項目 = rst4!項目

 '--データが見つかったら次の製品データへいきます 
Exit Do

Else


End If

 '---次の時間データへ行きます 
rst4.MoveNext

Loop

End If


rst4.Close: Set rst4 = Nothing
cn4.Close: Set cn4 = Nothing

    '---これで製品データ1を更新します
rst3.Update

'----次の製品データへ行きます
rst2.MoveNext

  '---製品データを繰り返します。 
Loop

rst3.Close: Set rst3 = Nothing
cn3.Close: Set cn3 = Nothing

 '---- ADOを閉じる
rst2.Close: Set rst2 = Nothing
cn2.Close: Set cn2 = Nothing

******************


参考にしてください。



─────────────────────────────────
【03 - 編集後記    】       
─────────────────────────────────

今、17インチのモニター画面を使っているのですが、一つの画面の中でいくつものプログラムを立ち上げています。

切り替えて使うのは、とても面倒くさいですね。

それで、たまたま17インチのモニターが余っていたので、1つのパソコンに、2台のモニターを使って、右と左で作業しています。

左にプログラム、右にワードで仕事をするなどです。

私が使っているのは、USB対応のバッファローのディスプレイ増設アダプタ(GX-DVI/U2)です。8000円くらいだったと思います。
でも、USB2.0なので、USB2.0でないパソコンは、PCIバスにUSB2.0のボードをつければ使えます(1500円くらいでした。)

生産性がとてもいいですよ。
かなり快適です。
もう1台のモニターで作業できないですね。


◆私がアクセスをマスターできたのは!!
http://www.sk-access.com/kyozai/zaiko1.html  

テーブル作成からVBAまでマスターできます。 
「在庫管理システムをアクセスで作ってみよう」教材です。
http://www.sk-access.com/kyozai/zaiko2.html  


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
●ご意見・ご感想・ご質問
 
『メルマガでもっとお役にたてる情報を配信したいと思いますので、日ごろから疑問に思っていることを教えてください。
宛先はこちらへです』

  •  kohnai★vega.ocn.ne.jp
      (高内:こうない:)
    (メールするときは、★を@に変えてください)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


◎「これならわかるマイクロソフトアクセス活用法」 のバックナンバー・配信停止はこちら

archive.mag2.com/0000222659/index.html

◎以下のホームページからでもバックナンバーを見ることができます。

http://www.sk-access.com/mailmaga/index.html

登録・解除につきましてはご自身でお願いいたします。

※このメールマガジンの転送はOKですが、掲載された記事の内容を許可無く転載することをを禁止させて頂きます。
必ず事前にご相談ください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


1週間でアクセス(Access)のシステム開発ができる〜
「在庫管理システムをアクセスで作ってみよう」教材

「アクセスのプログラム/システムを短期間で開発したい方」、
「アクセスのフォーム/VBAを完全にマスターしたい方」のための
アクセス(Access)を使って1週間でシステム開発する究極の方法とは?

「アクセス(Access)のシステムを無料のSQL Server 2016 Expressへ
移行してみよう」教材

あなたの会社のアクセス(Access)のデータベースやシステムに不安を感じていませんか?
アクセスのデータ量が多くなり処理スピードが遅くなった。
アクセスのデータを共有したい。
セキュリティに不安がある。などと、感じている方は!!
(SQL Server 2016 Expressバージョンです。)


「アクセス(Access)プログラムの仕様書の作り方」教材
マイクロソフトアクセスを使用して、プログラムの作成/システム開発をおこないたい方の為に、
アクセス(Access)のプログラム開発に成功するために絶対に必要な「仕様書」とは?



[↑一番上へ]
[マイクロソフトアクセス活用法(メールマガジン)(ホームへ)]
12:572003

アクセス全体

VBA

SQL Server