はじめまして。よろしくお願いします。
ODBCを利用して、データベースをアクセスしようと思っています。
書籍等を覗いてみると、OpenDatabaseメソッドを使用して、
OpenRecordsetメソッドでレコードセットを作成する。
とかいてあります。
今回、僕が扱うデータベースは2つ(ODBC接続文字列のDATABASE
が2個指定するケース)ありまして、その場合の指定方法が分からず
悩んでいます。もちろん、2つのデータベースをSQLでレコードを作成
します。
どのような指定が必要なのでしょうか?
初心者の質問、また言葉足らずの面もあって申し訳ございませんが、
お気づきの方が居られましたらご教授ください。
No.5ベストアンサー
- 回答日時:
なるほど、売上データの一覧を出したいんだけど、
その明細の担当者や商品名などのマスタ(定数)データは他のDBですよ、というわけですね。
いくつか方法はありますが・・・
いちばん簡単なのは、たとえば
「担当者名抽出関数」や「商品名抽出関数」などを作成して、
引数にコードを指定すれば、名称を戻り値として返す構造にしておきます。
で、売上明細を1レコードづつ描画していく際に、
その関数の戻り値を設定していくやり方。
このやり方がいちばん簡単ですが、同時使用ユーザー数が多かったり、
ネットワークがヘボで遅かったりすると、レスポンスに難ありです。
各名称の抽出関数ではかならずレコードセットオブジェクトを開放してください。
もうひとつは・・・
Accessのmdbを1つワークテーブルとして作成しておき、
売上明細のテーブルと各名称のマスタテーブルをリンクさせておくこと。
こうすれば、そのAccessMDBに貼られたリンクテーブルは同一DB上として
扱うことが出来ます。
このやり方の問題点は、MDBのリンクを使用しているので、環境に依存する、
ということです。フォルダ構造などが変わると、
リンクも再度貼りなおしになるため、メンテナンスに気を使います。
私なら・・・クラ/サバ構造であることを前提にすれば、前者かな。
外していたらごめんなさい。
No.4
- 回答日時:
経験者に格上げ。
何だかコーディングするよりも、設計の問題って気がして、
あなたがちょっと気の毒。
2つDBがあって、その都度両方を参照して画面に出力するというのは
できますけど、
パフォーマンスを考えたら、ひとつのDBに格納すべきです。
それで、2つのテーブルを結合するSQLを一個書けば画面に出力したい
レコードを取得することができるかと思います。(***1)
本題。DBが分かれているなら、2回SQLを発行するしかないですよ。
マスターDBを検索して、出力させる
部店コード、部店名、[個人コード1]、個人名、商品コード、商品名
のデータを表示させる。
次に[個人コード1]に対応するデータを条件(Where句)で指定して、
それに対応する
部店コード、個人コード、商品コード、日別の売上高、売上数量
を売上明細DBより取得する。
DBが二つあるのはメインをサブという位置付けだと思いますが(うそかも)、
メインの情報をサブにバッチ等でコピーするということができれば、
(***1)のように出来ます。
No.3
- 回答日時:
ひょっとして「同じDBにある2つのテーブルに接続したい」ということですか?
でも接続文字列が2つあるんですよねぇ・・・?
まったく違うDBにあるテーブルのデータを結合するには、
SQL一発で行うのは不可能だと思いますが・・・
MDBをつかって、MDBにその2つのDBのテーブルをリンクしておけば、
そのMDBを開けば、可能ですが。
ただ、結合した結果を格納するのはどこになるんでしょうか?
ただ処理に必要なだけであれば問題にはなりませんが・・・。
DBの状況や、具体的に何をしたいのか(仕様面で)を
可能な限り教えていただければもう少し細かいアドバイスが出来るんですが・・・
No.2
- 回答日時:
>2つのレコードを結合する方法が分かりません。
>結合して1つのレコードを作成するには、どのようにすれば良いのでしょう?
>よろしくお願いします。
..すいません、さっぱり書いている内容がわかりません。
結合するといえば「2つのテーブルを結合する」なんて言い方が
あります。
私の回答は「DBオブジェクトを結合することは出来ない」と言う意味で
書いたのであって、レコードを結合するという意味で書いたのではありません。
あなたの書いているソースコードを見せてください。
それでどこが分からないのか書いてもらえれば
ほかの方もアドバイスできると思います。
この回答への補足
回答有難うございます。
おっしゃっている意味は理解していましたが、
私の文章だと分かりづらかったですねm(__)m
ちょっと質問内容をやりたいことに変えてみます。
環境的にはDBが2つあります。
1つはマスターDBとでもいいましょうか。部店コード、部店名、個人コード、
個人名、商品コード、商品名等がいくつかのテーブルに分けて収録してあります。
もう1つは売上明細DBとでもいいますか。そのなかには、部店コード、
個人コード、商品コード、日別の売上高、売上数量等がいくつかのテーブルに
分けて収録してあります。
仕様としては、売上高別にそれぞれの名称を付加して、画面に表示させたいのです。
以上がやりたいことになります。
(上記の説明はあくまで例としてあげていますが本来の仕様も大きくかけ離れて
はいません。)
上記の項目が一つのDBで収録してあれば、分かるのですが、DBが2つの場合、
良い方法が思いつきません。効率の良い方法があれば教えて下さい。
No.1
- 回答日時:
2つのDBをひとつのオブジェクトで指定するってできるんですかね?
できないんではないですか?
私ならDBごとにオブジェクトを作成して、それぞれのオブジェクトに
対して、レコードを作成しますけど、それではだめなのかな?
この回答への補足
回答有難うございます。やはり、出来ないのですかね。
申し訳ないのですが、もう少しお付き合いください。
zerosixさんの案も考えましたが、2つのレコードを結合する方法が
分かりません。
結合して1つのレコードを作成するには、どのようにすれば良いのでしょう?
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript Q&Aの掲示板を作成していてヤフー知恵袋やgoo質問のように質問ごとにURLを生成したい 5 2023/08/04 01:22
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- Access(アクセス) Access DAOのExecuteメソッドのオプション(RecordsetOptionEnum)に 1 2022/09/19 07:34
- MySQL 【投稿情報用データベース posts】は必要ないと思います。 1 2022/06/02 21:25
- Excel(エクセル) エクセルで沢山のレコードの最後に追記するには? 7 2023/04/10 13:27
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- その他(データベース) 業務用のデータベースサーバーの選び方について 4 2022/11/22 10:22
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access vbaで重複レコードの削...
-
Access2013の式ビルダーでユー...
-
sql文で削除クエリを書く
-
重複した複数のレコードを1レ...
-
データがあれば○○なければのSQL
-
ルックアップフィールドについて
-
DAOでSQLServerに接続し、LeftJ...
-
別のaccessファイルからデータ...
-
アクセスで定数を利用したい。
-
ACCESS VBAでテーブル内の特定...
-
「ご処理進めて頂きますようお...
-
CloseとDisposeの違い
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
switch の範囲指定
-
【Excel】特定の文字を含むセル...
-
VBA エンターキーでイベントに...
-
アクセスVBAのMe!と[ ]
-
VBAにてメッセージボックスを最...
-
エクセルVBAで、MsgBox やInput...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データがあれば○○なければのSQL
-
【access】複数のフィールドの...
-
ACCESS VBAでテーブル内の特定...
-
Access vbaで重複レコードの削...
-
ACCESS DCOUNTの抽出条件について
-
Accessで縦と横を入れ替えたい
-
VBAでテーブル名とカラム名を動...
-
DataGridViewで複数条件の抽出...
-
Access から Excelのシートをイ...
-
重複した複数のレコードを1レ...
-
DAOでSQLServerに接続し、LeftJ...
-
SQLServer→Access インポート
-
ACCESSで実行時エラー3008
-
sql文で削除クエリを書く
-
別のaccessファイルからデータ...
-
access追加クエリーでform入力...
-
抽出条件でデータ型が一致しま...
-
【PHP/MySQL】コード上で生成...
-
Accessリンクするテーブルが見...
-
ACCESSで購入回数を表示する方...
おすすめ情報