プロが教えるわが家の防犯対策術!

Visual Basic 初心者です。
Accessデータベース上にある指定した数値を、Excelの指定されたシートのセルに落とすことは可能でしょうか?
もし可能であれば簡単にそのプログラムであったり、それが記載されている文献、URLを教えていただけると幸いです。
よろしくお願いいたします。

A 回答 (2件)

>Visual Basic 初心者です


VB6なのか(AccessVBA,エクセルVBAレベルなのか)、VB.NET系なのか
>Accessデータベース上にある指定した数値を
テーブル等の有るフィールド(1つ?複数?)の数値か、テーブルの
1つのレコードの有るフィールドの1つの数値か
それを決定する条件的なことも、質問に書かないとわからないと思うが。
ーー
Google ででも 「Access Excel VBA」などで照会すれば
http://itpro.nikkeibp.co.jp/article/COLUMN/20060 …
のような記事が沢山出る。これは例として最適ではないが。
それらを継ぎはぎして、自分でまずやってみるべきだと思う。
エクセルVBA側からやるほうが少し易しいかと思う。
下記をエクセルのVBEの標準モジュールにコピペして、実行してみてください。その際の条件を下記に挙げていますから注意。
ーー
ただし2ソフトのデータ連携など、拙速に学習の最初の段階からやるというのは難しいように思う。すぐ他人に聞かねばならない(質問する)ことになり、他人頼みになってしまう。時間がかかることになると思う。
ーーー
WEBに載っていたものを多少修正した。
エクセルVBAでアクセスのテーブルを読む課題。
とりあえず評示はMsgboxでやっている。
Sub test01()
Dim myrec As ADODB.Recordset
Set myrec = New ADODB.Recordset
Dim cnt As String
Dim sql As String
cnt = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db2.mdb"
sql = "SELECT * from 生徒"
myrec.Open sql, cnt
myrec.MoveFirst
i = 1
MsgBox myrec.Fields.Count
Do Until myrec.EOF = True
For j = 0 To 10 'myrec.Fields.Count - 1
MsgBox myrec.Fields(j).Value
Next j
myrec.MoveNext
i = i + 1
Loop
myrec.Close
Set myrec = Nothing
End Sub
ーー
ただし、準備として
アクセスのdb2.mdbが有ること(自分のケースに書き換えること)
テーブル「生徒」が有ること。(同上)
テーブルのセルのデータに空白Nullがないこと。
参照設定をしておくこと。
それは、ツールー参照設定
Microsoft Active Data objects X.X Libralyにチェエク
ーー
更なる課題
選択のクエリSQL文について、質問者に合うようにするには、を勉強する
あとエクセルのセルにデータをセットする方法を勉強する。
http://www.accessclub.info/actips/tips_105.htm
などを組み合わせて色々やってみること。
    • good
    • 0

C:\Temp\DB11.MDB


tab1: テーブル

ID_売上日_________品目_金額
__1_2008/10/01_A_____\1,000
__2_2008/10/02_B_____\2,000
__3_2008/10/03_C_____\5,000
__4_2008/10/04_D_____\6,000
__5_2008/10/05_E_____\1,000

エクセル
1000

=DBLookup("金額", "tab1", "id=1")

このようにA1にAccessのテーブルを参照する式を書くことで目的は達成できます。

※エクセルに式を組み込んで参照したいのでしょうか?
※であれば、DBLookup関数を補足します。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!