- 締切済み
AccessのDBをExcelのListboxに読み込む方法
AccessのMDBファイルをExcelのListboxに読み込みたいのですが、方法がわかりません。 要はExcelのVB上の変数に、MDBファイルのデータが読み込めれば良いのですが・・・ どなたか分かる方いらっしゃいませんか?
- dande
- お礼率16% (1/6)
- Visual Basic
- 回答数1
- ありがとう数3
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- TAGOSAKU7
- ベストアンサー率65% (276/422)
アクセスのデータを取りこむには、もちろん接続が必要となります。 環境と接続法式が記載されていませんので、DAO接続でのサンプルを作りました。 個人的にはADO接続がいいと思っておりますが、接続文字が環境により不定なため、使用しませんでした。 DAOを使用するためには、VBAの編集画面にて[ツール][参照設定]にて Microsoft Office x.x Object Library (x.x 部分はできるだけ数字が大きいものを使用してください。) を指定する必要があります。 質問の内容からすると、Accessデータを読み込めたらOKだと思って、リストボックスへの代入部分は作成しておりません。 プログラム中の「PRINT DATA」となってるコメント部分を、適当に変更してください。 開発環境:EXCEL97 Option Explicit Sub Main() '定数 Const DB_FILE As String = "c:\test.mdb" Const TBL_NAME As String = "テーブル1" 'DB操作変数 Dim acDB As Database Dim acRs As Recordset Dim strSQL As String 'ワーク変数 Dim intFldCnt As Integer Dim i As Integer 'DB/RECORD OPEN Set acDB = OpenDatabase(DB_FILE) strSQL = "select * from " & TBL_NAME Set acRs = acDB.OpenRecordset(strSQL) 'PRINT DATA intFldCnt = acRs.Fields.Count Do Until acRs.EOF For i = 0 To intFldCnt - 1 Debug.Print acRs(i).Value, Next i Debug.Print acRs.MoveNext Loop PGMEND: 'ALL CLOSE/FREE acRs.Clone acDB.Close Set acRs = Nothing Set acDB = Nothing End Sub
関連するQ&A
- tableからlistboxにデータをならべるにはどうしたよよいのでしょう
VBを勉強しております。accessをデータベースにしてデータをlistboxに並べたいのですが、なんとかテーブルまではたどりついたのですが、listboxにならびません。WEBや書物を参考に listbox1.databindings.add("text",table,"○○")としてみたのですが だめでした。どのようにするとlistboxにデータがなるぶのでしょう。
- ベストアンサー
- Visual Basic
- Excel → Access データをインポート
OS WinXP Pro SP2 Office 2000 SP3 はじめまして。 マクロ(Excel VBA)を記述しているExcelファイル(Xls_Macro.xls)とインポート用データのExcelファイル(Xls_Data.xls)は別々のファイルになっていて、マクロを実行するとExcelファイルとインポート用データのExcelファイルのデータをAccessファイル(Access.mdb)にインポートする仕組みを開発しています。 インポート用データのExcelファイル(Xls_Data.xls)をADOで接続しレコードセットでデータを取得し、Accessファイル(Access.mdb)もADOで接続しレコードセットの「.AddNew」でAccessファイル(Access.mdb)に更新しようと考えています。 この考え方で問題ないのでしょうか!? もっと簡単な方法があるという方や、何か良い方法をお持ちの方 いらっしゃいましたら、よろしくお願いいたします。
- 締切済み
- その他(プログラミング・開発)
- ListBoxのデータを高速でファイルに書き込む方法 VB.NET
ListBoxに大量のデータを登録してありそれをファイルに保存する場合 Dim data As String For i As Integer = 0 To ListBox1.Items.Count - 1 data = data & ListBox1.Items(i) & VbCrLf Next という方法で変数に読み込むとデータが大量にある場合 非常に遅く、OutOfMemoryのエラーが出てしまったりするのですが、 このような場合により適切な方法がありましたらご教授頂けないでしょうか。 宜しくお願いいたします。
- ベストアンサー
- Visual Basic
- ExcelでListBoxを閉じるには?
Excelにリストボックスを作成します。 そして、特定のセルの値が変更されたら、入力候補をリストボックスに表示する。 リストボックスの項目をダブルクリックまたはEnterキーを入力したら、 リストボックスを非表示にする。 (要は、オートコンプリートなんですが、入力候補は別シートの値を表示したい) ということをしたいのです。 が、VBAで Private sub ListBox1_KeyDown(...) ListBox1.Visible = false end sub とやってしまうと、excelがアプリケーションエラーで死んでしまいます。 どのようにすればよいのでしょうか? よろしくお願いします。
- 締切済み
- オフィス系ソフト
- 100万行位のファイルを出来るだけ速くListBoxに登録したい
vbCrLfで区切られた100万行位のテキストファイルがあり、 これを出来るだけ速くListBoxに登録するには どのような方法が良いでしょうか。 現在はStreamReaderで変数strに読み込んで、 Dim Data() As String = Split(str,vbCrLf)で配列に読み込み、 ListBox1.Items.AddRange(Data) で登録しているのですが、何分もかかってしまいます。 良い方法がありましたら、ご教示頂けると助かります。
- ベストアンサー
- Visual Basic
- Excel VBA ListBoxのマウスホイールでエラーになる
エクセルマクロでListBoxを使ったのですが、そのListBoxにフォーカスが当たっている状態でマウスホイールを回転させるとエラーになります。VB6.5でなるようです。回避策はないものでしょうか?
- ベストアンサー
- Visual Basic
- VB2008 Expressで、Excelファイルへのアクセスについて
VB2008 Expressで、Excelファイルへのアクセスについて質問します。 プログラミングが本業ではありませんが、社内で使用するツールとして、VB6+ADOで、AccessのMDBを使ったDBソフトを作った経験はあります。 そろそろ、.netを勉強しようと思うのですが、手元にあるのは、VB2008のExpressバージョンです。 これを使って、ExcelのxlsをDBのように扱うことは可能なのでしょうか? 「DBのように」というのは、xlsファイルをレコードセットに格納し、条件にあったレコードを抽出することを想定しています。 同様なことが、ExcelVBAで可能ならば、それでもいいのですが。 よろしくお願いします。
- ベストアンサー
- Visual Basic
- MS Accessを共有した際にファイルが壊れるのを回避する方法
ちょっとしたツールをAccessで開発したいのですが、 Accessファイルを共有するとファイルが頻繁に壊れると伺いました。 そこで以下のような回避策を考えてみたのですが、 効果はありますでしょうか。 これでは、あまり意味がないとか、他に注意したほうが良い点等ありましたら、アドバイスいただければと思います。 なお、ツールは、50名位が使用(同時アクセスは3名~4名程度)予定で、 サーバ上にメインのmdbファイル(以下「サーバmdb」)を、各クライアントにもそれと連携するmdbファイル(以下「クライアントmdb」)を置くことを想定しています。 (1) データは全てサーバmdbで保持する。クライアントmdbには、入力用のフォームと、サーバmdbから取得したデータを一時的に保持するテンポラリのテーブルを持つ。 (2) クライアントmdbからサーバmdbにアクセスし、必要なデータをクライアントmdbにインポートする。 (3) クライアントmdbで、取り込んでデータをもとに、データの追加・修正を行い、当該データをサーバの所定のディレクトリにCSVで出力する (4) サーバmdbは、日次で、所定のディレクトに配置された、クライアントmdbから出力されたファイルを読み込み、データを更新する (5) (4)の読込み・更新作業中は、クライアントmdbからサーバmdbにはアクセスしない(外部ファイルで制御) 以上です。 要は、クライアントmdbが、直接サーバmdbを更新しないようにし、参照のみにするということです。 よろしくお願いします。
- ベストアンサー
- その他(データベース)
- Access起動中にエクセルからADOでデータの更新ができない
こんばんは。原因がわからないので質問させてください。 SQLサーバーのデータをAccessのmdbへリンクテーブルしています。 (SQLサーバー → Access) 全て一つのパソコンで行なっています。(LANには接続していません) Accessのmdbファイルを起動している時に ExcelからSQLサーバーのAccessにリンクしている上記のテーブルへ ADOを使ってデータを追加しています。 (Excel → Access) しかし、「rs.Update」の部分で 「ODBC--リンク テーブル'テーブル1'での更新に失敗しました。」 となってしまいます。 なので、一度mdbファイルを落として、コードを再開すると通るので ADOでExcel → Accessにデータを追加し終わってから再度mdbファイルを立ち上げています。 また同じ状態(mdbファイルを起動)で Excel → SQLサーバー へ更新クエリをしようとすると「時間切れになりました」となります。 (こちらもmdbファイルを落とすと再開できます。) いちいちmdbファイルを落とすのめんどうなのですが 回避する方法はありますか? cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "C:\Users\Documents.test.mdb" rs.Open "テーブル", cn, adOpenStatic, adLockPessimistic rs("フィールド") = True rs.Update '保存 rs.Close: Set rs = Nothing というコードを書いています。 Accessを落とせば正常に動きます。 ご教授よろしくお願い致します。
- ベストアンサー
- その他(データベース)
- Access(アクセス)のDB(データベース)の作り方。
はじめまして、Access(アクセス)初心者です。 生産管理をやっているのですが、この度アクセスを用いて管理していこうかと思い、勉強中です。 生産管理といっても、在庫や顧客情報など色々なデータベースが必要であることがわかりました。 作成しているうちに、ごちゃごちゃしてわからなくなり、 結果何がしていのかわからなくなった次第です。(笑) ~質問~ 生産管理を1つのアクセスファイルで完結するのと、 在庫管理や顧客情報などの小さく分けたファイルを用いてテーブルのリンクを行うのとでは、どちらがいいのでしょうか? 私の思いとしては、小分けにしたファイルを用いて作った方がわかりやすいのですが、テーブルのリンクをした時に何らかの弊害が発生するのでしょうか? ~要約~ (1) 生産管理.mdb (在庫管理テーブル) (顧客情報テーブル) (工程管理テーブル) (社員情報テーブル) (2) 生産管理.mdb 在庫管理.mdb 顧客情報.mdb 工程管理.mdb 社員情報.mdb (各データベースをリンクする) データ量にも関係すると思うのですが、 データベースを構築するにあたり(1)と(2)はどちらがいいのでしょうか? また、テーブル等をリンクした場合、発生する弊害はあるのでしょうか? ご指導の程お願い致します。
- ベストアンサー
- その他(データベース)
お礼
ありがとうございました。 実は昨日解決できました。申し訳ありません。