- 締切済み
AccessからExcelへのデータのアウトプット
Visual Basic 初心者です。 Accessデータベース上にある指定した数値を、Excelの指定されたシートのセルに落とすことは可能でしょうか? もし可能であれば簡単にそのプログラムであったり、それが記載されている文献、URLを教えていただけると幸いです。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
>Visual Basic 初心者です VB6なのか(AccessVBA,エクセルVBAレベルなのか)、VB.NET系なのか >Accessデータベース上にある指定した数値を テーブル等の有るフィールド(1つ?複数?)の数値か、テーブルの 1つのレコードの有るフィールドの1つの数値か それを決定する条件的なことも、質問に書かないとわからないと思うが。 ーー Google ででも 「Access Excel VBA」などで照会すれば http://itpro.nikkeibp.co.jp/article/COLUMN/20060127/228088/ のような記事が沢山出る。これは例として最適ではないが。 それらを継ぎはぎして、自分でまずやってみるべきだと思う。 エクセル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 などを組み合わせて色々やってみること。
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関数を補足します。