• ベストアンサー

ACCESS2003のデータ取得関数

前質問で外部ファイルに書き込むことがわかり、次は実際にAccess2003のデータを取得して外部データに反映させたいです。 動作環境として、*.mdbファイルにあるテーブルからデータを取得するというものです。 DB接続からテーブル指定、特定のカラムからデータの取得、クローズといった一連のサンプルプログラムの参考サイトがございましたら教えていただけますか。 また、テーブルにパスがかかっていた場合の関数またはロジックなどございましたら併せてお願いします。

  • fm0606
  • お礼率13% (100/761)

質問者が選んだベストアンサー

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

何を使ってmdbからレコードを取得するのか不明ですが VBだとADOを使って Dim strDatabase As String Dim strSQL As String Dim cn As ADODB.Connection Dim rs As ADODB.Recordset strDatabase = "C:\フルパス\ファイル名.mdb" strSQL = "select 取得したいフィールド名 from テーブル名" 'ここで抽出条件等指定 cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & strDatabase 'パスワードがある場合は cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=C:\フルパス\ファイル名.mdb;" & "Jet OLEDB:Database Password=パスワード;" Set rs = cn.Execute(strSQL) 'SQLを発行してレコードセットする '取得したレコードセットで処理をする cn.Close こんな感じですが。

関連するQ&A

  • ACCESS2003のデータ取得関数(クエリー版)

    前質問でAccess2003のデータをテーブルより取得して外部データに反映することができました。 こんどはクエリーからデータを取得して外部ファイル(HTMLドキュメント)を作成するようなVBAの関数を教えていただけますか。 よろしくお願いいたします。

  • mdbからのデータ取得をSQLで行いたいのですが・・・

    VB.NETで開発中です。 “TEST”という名称のmdb(MS-Access)のDBに接続し、“区分マスタ”というテーブルからデータを取得したいのですが、これをSQL文で行いたいと思っています。 サンプル的なコードを記述して教えていただけると助かります。 よろしくお願い致します。

  • アクセスのデータを取り込みたい

    アクセスのデータを取り込みたい アクセスのクエリも理解できない、超初心者です。 db1.mdbのテーブル1のA列B列のデータだけをdb2.mdbのテーブル2に取り込みたいのですが、やり方が分かりません。先輩に聞いたら、マクロを使えば簡単だよ、あとは自分で調べなと言われ、まったく見当がつきません。 どなたかご教授願います。よろしくお願いいたします。

  • (ACCESS)複数mdbからのデータ取得方法

    よろしくお願いします。 ACCESSはあまり使ったことがない者です。 下記ようなACCESSのデータ取得の方法を教えてください。 構造の同じテーブルを持つ複数のmdbから、1つのリストを作りたいと考えています。 各mdbの違いは、ファイル名と中身のデータのみで、他は全く同じです(ひとつのテンプレートの複製です)。 A部門.mdb (商品リストテーブル ・・・A部門の商品リスト) B部門.mdb (商品リストテーブル ・・・B部門の商品リスト) : Z部門.mdb (商品リストテーブル ・・・Z部門の商品リスト) ↓ 全商品リスト.csv (全社分の商品リストテーブルのデータ) mdbが数十ファイルあるので、一つずつcsv取得して繋げるのはたいへんです・・・。 何か一発で取得できるような方法はないでしょうか? ユニオンクエリ?等を使うとできるのでしょうか・・・。 同じフォルダ下にあるmdbを次々に開いて同じクエリを実行する機能とか、マクロとか? 現状こうなってしまっており、一つのmdbに統合するのは、運用上制約があって無理なのです。 何かうまいアイデアがあれば教えていただきたくお願いします。

  • 他ファイルのテーブルの情報を取得したい

    アクセス DCount関数で他のファイルのテーブルの件数を取得することは不可能でしょうか? ファイル1.mdbとファイル2mdbがあり、 ファイル2mdbには、 テーブル名 フィールド:a と言うデータがあります。 ファイル1.mdbにはテーブルはありません。 ファイル1.mdbのVBAで ファイル2.mdbのテーブル名のレコード件数を取りたいのですが 不可能でしょうか? ファイル1.mdbのVBEで Sub 関数で件数を取得() MsgBox DCount("[テーブル名]", "a") End Sub とやってもエラーになります。この関数にファイルを指定する部分もありません。 エラー内容は --------------------------------------------------------- 実行時エラー3078 入力テーブルまたはクエリーが見つかりませんでした。        そのテーブル・クエリーが存在するか確認して下さい。 --------------------------------------------------------- です。 ADOを使うしかないのでしょうか?できればADOは使いたくありません。 アドバイスよろしくお願いします。

  • カーソルでのデータ取得

    いつもお世話になっております。 カーソルをオープンしたあとに(閉じる前に)、 カーソルのデータ取得元テーブルのデータが変化しても問題ありませんよね? ロジック的には。。。 OPEN カーソル カーソルデータ取得元テーブルのトランケート カーソルデータを1件ずつ編集し、データ取得元テーブルにINSERT CLOSE カーソル って感じなんですが。 キー重複などの関係で、一度テーブルを初期化した後に、もともとそのテーブルから取得したデータを編集し、INSERTしたいんです。 カーソルはOPENした時点の値を持ち続けるんですよね? 質問がわかりにくくてすみません

  • Accessのテーブルへのリンク

    いま、ASPのDBとして使っているAccessのファイル A.mdbがあります その中の一つのテーブルを別のAccessファイル B.mdbにリンクして、参照したいと思っています。 しかし、B.mdbからリンクするときに インポートすると、A.mdbの変更が反映されず、 リンクすると、B.mdbで変更したものがA.mdbにも反映されて困っています. やりたいことはB.mdbから安全に(変更なしで)A.mdbのテーブルを 閲覧したいのです. ・A.mdbの変更をB.mdbに反映したい ・B.mdbのテーブルの変更はA.mdbに影響がない と言うことです. どうかお力添えを よろしくお願いします.

  • VBAでアクセスDBからデータの取得について

    DBからデータを取得する際、キー選択ボックス(コンボボックス)で選択した文字列をテーブル名に指定したいのですが、実行時エラー3709「この操作を実行するために接続を使用できません。このコンテキストで閉じているかあるいは無効です。」となってしまいます。 '***************************** 'DBからデータ取得 '***************************** If OptionButton1 = True Then myRS.Open Source:="SELECT" & キー選択Box.Text, ActiveConnection:=myConn2 Else myRS.Open Source:="テーブル1", ActiveConnection:=myConn Range("A2").CopyFromRecordset Data:=myRS myRS.Close: Set myRS = Nothing myConn.Close: Set myConn = Nothing myConn2.Close: Set myConn2 = Nothing End If End Sub 以上、よろしくお願いします。

  • MDBファイル(Access)からデータを取得できなくて、困っています…

    Visual studio 2005(C#を使っています)で、mdbファイル(Access)のデータを取り込むプログラムを組もうとしているのですが、上手くいかなくて困っています。 具体的には、 (1)mdbファイルに接続 (2)mdbの1行分の複数のデータを配列にそれぞれ格納 (3)格納したデータ(数値)をグラフ上にプロット というプログラムです。教えて頂きたいのは、(1)と(2)を実現するプログラムです。何冊かテキストを読み、書かれていたサンプルプログラムを打ち込んでみたんですが、どうも上手くいきません。 宜しくお願い致します。

  • Accessのデータ共有について

    現在社内の顧客管理システムをAccessにて構築しており、データテーブルファイル(mdb)をファイルサーバに置き、クライアントPCはフォームやクエリだけのmdbを使用してテーブルのリンクでデータ共有しています(Accessのデータ分割ツールにてテーブルとフォーム、クエリを分離しただけの状態で運用しています)。これまでは、この状態でも運用出来ていましたが、データ量が多くなるにつれ、段々動作が重くなってきた為、処理速度改善の為に、以下の二案を検討していますが、どちらの案が効果的なのでしょうか? 【案1】 クライアント用mdbファイルに同じテーブル構成の一時テーブルを作成し、mdbファイル起動時と、「更新」ボタンを別途作成し、「更新」ボタンが押下されたタイミングで、ファイルサーバのデータベースからADOにて一時テーブルに全データを読み込む。更新系の処理は、各クライアントの一時テーブルとファイルサーバのデータベースに対して行う。 【案2】 現状フォームの遷移については、 「DoCmd.OpenForm」関数の引数に検索条件を指定する方法で行っている為、この部分を ・ADOにてデータを取得  ↓ ・遷移後のフォームに値をセット と言った処理に変更する。 また、上記以外の方法で何か良い方法がありましたらご指摘頂ければと思いますので、よろしくお願いします。

専門家に質問してみよう