• 締切済み

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

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

  • THUBAN
  • お礼率76% (771/1002)

みんなの回答

回答No.1

例) SELECT * FROM 区分マスタ WHERE カラム名=対象データ; うーーん、これは基本中の基本と思えますが。。。

THUBAN
質問者

お礼

ありがとうございます。 SQLのSELECT文の記述はなんとなく理解しているのですが、VBのフォーム上でテキスト入力された後の動きをでどうやるかで悩んでます。 以下のような動作をさせたいと思っています。 TextBoxに入力した項番(数値)をキーに、Enter押したタイミングで、mdbテーブルから名前データを取得したい。 mdbテーブルは テーブル名:HINBAN_MASTER <項番>(数値) <名前>(テキスト)

関連するQ&A

  • 条件に応じたSQL文について

    お世話になっております。 以下の場合どのようにSQLを書くかで困っています。 どうかお願いします。 DBはOracle10gです。 テーブルA 区分   integer コード   integer(上記区分が0の場合は得意先のコード、1の場合は商品のコードが登録されています。) 得意先マスタ コード integer 名称 varchar 商品マスタ コード integer 名称 varchar 上記のテーブルAを読んで、 区分が0の場合は得意先マスタの名称 区分が1の場合は商品マスタの名称 をもってきたいのですがやり方がわかりません。 どうかよろしくお願いします。

  • SQLの作成について

    SQLの作成について 以下のようなDBがあるとします。 ---------------------- DB1(マスタ)  区分   フラグ  名称   A    1    男   A    2    女   B    1    車   B    2    飛行機   B    3    電車   C    1    コンビニ   C    2    スーパー   C    3    百貨店   D    1    デスクトップ   D    2    ノート ---------------------- ----------------------- DB2  区分1 フラグ1 名称1 ・・・ 区分4 フラグ4 名称4   A   2           D    1 ----------------------- DB2の区分とフラグから、DB1を参照して 取ってきたDB1の名称をDB2に書き込みたいです。 名称の1つ毎に、SQLを発行し、それぞれ名称を取得するなら where DB1.区分=DB2.区分 and DB1.フラグ = DB2.フラグ みたいな感じでそのまま出来ると思いますが、 今は、1つのSQLでDB2の複数の名称を一気に取得したいと考えてます。 どのようなSQLが良いのでしょうか

  • SQLで取得可能でしょうか

    SQLで取得可能でしょうか 今2つのテーブルがあるとします。 ---------------------- テーブル1  KEY    項目   1   テスト1   2   テスト2   3   テスト3 ----------------------- ---------------------- テーブル2   CD  名称    1   か   1   き   2   さ   2   し   2   す   3   た ----------------------- テーブル1のKEYはキーで重複しません。 テーブル2のCDは重複しますが、内容はテーブル1のKEYとリンクします。 今、テーブル1のKEY1件につき、データを1件取得したいのですが、 テーブル2の名称も取得したいです。 データは1件しか取得しない為、名称は、特定文字(例として/)で 区切って取得したいです。 期待したい結果 ----------------------  KEY  名称   1  か/き   2  さ/し/す   3  た ---------------------- このような取得は可能でしょうか? 尚、SQLの発行は1回のみで行いたいです。 よろしくお願いします。

  • SQL文をどう記述すれば良いか教えて下さい。

    テーブルAが以下の様に在るとします。 連番(ユニークキー)/日付/社員コード/所属コード そして、社員コード、所属コードの名称が、テーブルBに登録されています。 区分/コード/名称 ここで、区分+コードでユニークキーとなっていて、区分=1は社員コード、区分=2は所属コードとなっています。 単純に、テーブルAから、ある日付を指定して、連番・社員コード・所属コードを取得する場合、SQL文は以下の様になると思います。 SELECT 連番,社員コード,所属コード FROM テーブルA WHERE 日付='20030401' この時、同時に、テーブルBから社員コードに対応する名称、及び所属コードに対応する名称を取得したい場合は、どの様に記述すれば良いのでしょうか?

  • mdbがとじれない

    VB6で開発をしています。 DB変数A = OpenDatabase(【mdb名】) Set QUERY変数B = DB変数A.CreateQueryDef("") QUERY変数B.SQL = SQL文 QUERY変数B.Execute (中略) Set レコード変数C = DB変数A.OpenRecordset(SQL文2) (中略) Set DB変数A = Nothing といった処理を行っています。 この処理を繰り返すのは問題ないのですが、 この処理で使用している【mdb名】はレコードロックされたままになってしまいます。 どのように修正したらよいのでしょう?

  • 同一コード毎に最新の名称を取得するSQL

    いつもお世話になります。 以下のデータ構造において、以下の条件にあてはまるレコードを 取得するにはどのようなSQLになりますでしょうか。 (1)同一のコード、区分において、有効期間開始日が最新のもの (2)同一のコード、区分、有効期間開始日において、有効期間終了日が最新のもの 【テーブル】 ※主キー:コード、区分、有効期間開始日、有効期間終了日 コード 区分 有効期間開始日 有効期間終了日 名前 10000 A01 19800101 99991231 名称1 10000 A01 20000101 99991231 名称2 20000 A01 19800101 19991231 名称3 30000 C01 19800101 19991231 名称4 30000 C01 19800101 99991231 名称5 30000 B01 20000101 99991231 名称6 40000 D01 19800101 99991231 名称7 40000 D01 20000101 20201231 名称8 ↓ 【取得結果】 10000 A01 20000101 99991231 名称2 20000 A01 19800101 19991231 名称3 30000 C01 19800101 99991231 名称5 30000 B01 20000101 99991231 名称6 40000 D01 20000101 20201231 名称8 ようするに、最新データの名前のデータを取得したいのですが、その最新の 定義が上記にあげたものになります。 連続投稿になってしまい申し訳ないのですが、どうしてもスマートな SQLを思いつかず、皆様のお知恵をお借りしたいと思った次第です。 宜しくお願いします。

  • SQL で数値フィールドにDBNULLをセットする

    VB2008 で商品マスタメンテ プログラムの開発をしています。 入力画面に入力された各項目で、MDBの商品マスタテーブルを更新するのですが、 入力されなかった項目にDBNULLをセットする場合のSQL文の記述方法を教えて下さい。 例)商品マスタの項目: 商品コード(テキストタイプ)                商品名称(テキストタイプ)                商品名カナ(テキストタイプ)                入数(数値タイプ) 画面から入力された内容を退避する一時ワークエリア SyohinCD As String SyohinNM As String SyohinKN As String Irisu As Object   とし、入力内容をセットしています。   ここで、入数が入力されなかった場合、 SQL = "" SQL = SQL & "UPDATE 商品マスタテーブル SET 商品名称 = ’ " & SyohinNM & "’," SQL = SQL & " 商品名カナ = ’ " & SyohinKN & "’," SQL = SQL & " 入数 = " & Irisu & ","   SQL = SQL & " WHERE 商品コード = ’" & SyohinCD & "’"   SQL = SQL & " ;" とすると、入数 のところで「構文エラー」になってしまいます。 ( ' (シングルクォーテーション)は、見やすさのために全角(’)にしています。)    入数は 0(ゼロ)と DBNULL を区別したいので、入力がない場合は、DBNULL を    セットしたいのですが、どのように記述すれば良いでしょうか。    おわかりの方がおられましたら、教えていただきたく、よろしくお願い致します。

  • SQLServerからMDBへのデータバックアップ

    SQLServer7.0からクライアントPCへMDB形式でデータバックアップを取ろうと考えており VBAを使って以下のPGを作成したのですがSQLServerのテーブルが参照できないらしく テーブルが見つかりませんとエラーが出てしまいます。 SQLServerのテーブル指定部分がいけないのは分かっているのですがどう記述すれば分かりません。 本来このようなレベルでは自分で調べなければいけないことは重々承知なのですが、 うちの会社には書籍がほとんど無いのです・・・。 下記の方法はネットで調べました。 DoCmd.CopyObject以外でももっ効率よくテーブルごと転送する方法はあるのでしょうか? お恥ずかしい話ですが、識者の方 ご教授よろしくお願い致します。 Dim db As DAO.database Dim DBname As String Dim DB_SQL As String DBname = "c:\temp\ZZZ.mdb" If Dir(DBname) <> "" Then Kill DBname End If Set db = CreateDatabase(DBname, dbLangJapanese) db.Close Set db = Nothing DB_SQL = "DRIVER={SQL Server};SERVER=XXX;DATABASE=XXX;UID=XXX;PWD=XXX" DoCmd.CopyObject DBname, , acTable, DB_SQL & ".テーブル名" Exit Sub

  • 異なるDBのSQL

    SQLを始めたばかりの初心者です。 oo4oやADOを使用して、オラクルサーバーのデータをSELECT文で オラクル内の複数のテーブルを結合してListViewで表示する プログラムを作成中です。 オラクルサーバーにメインデーターがあり 各クライアントにMDB形式でマスタデータがあります。 MDBのマスタデータにはたとえばですが、テーブル名 [商品テーブル] フィールド名[コードナンバー]、[商品名]... となっており、サーバーには、テーブル名[商品コード]  フィールド名[コードナンバー]、[受注日]....があるとします。 クライアントからoo4oやADOを使用して、サーバーのデータを SELECT文でオラクル内の複数のテーブルを結合して ListViewで表示するのはできます。しかし [コードナンバー]は取得できるのですが、サーバーのテーブルには、 [商品名]がないためとうぜん表示できません。 この場合、オラクルから取得したデータをマスタデータのあるMDBに新しくテーブルを 作りそこに一度格納して再度ADOで結合処理して 商品名を表示する方法しか考えつかないのですが、 ほかに良い方法はありますでしょうか? ADOで接続MDBに保存再度ADOで接続して表示では レスポンスが悪いかなと思いまして... *VB6 winXP-pro オラクル9i

  • SQL文を教えて下さい

    VB2008、SQL Server で開発をしています。 下記の条件でデータを取得したいのですが、SQL文がうまくできず、困っています。 おわかりの方、教えてください。 仕様:得意先マスタ(得意先M)の全件と、売上テーブル(売上T)を読みます。     売上テーブルの商品コードの商品名を商品マスタ(商品M)より取得します。     得意先マスタの全得意先を取得する必要があります。     すべての得意先の売上データが存在するわけではありません。 ACCESS上でクエリを作成し、SQLビューにすると、こうなります。 inptSyoCD:画面から入力した商品コード 1,まず、クエリ1: SELECT 売上T.伝票日付, 売上T.伝票番号, 売上T.得意先コード, 売上T.明細区分, 売上T.商品コード, 商品M.商品名称 FROM 売上T LEFT JOIN 商品M 売上T.商品コード = 商品M.商品名 WHERE 売上T.明細区分=1 AND 売上T.商品コード= inptSyoCD ; 2,次に、実際に処理するSQL文: SELECT 得意先M.得意先コード, 得意先M.得意先名称,       クエリ1.伝票日付, クエリ1.伝票番号, クエリ1.明細区分, クエリ1.商品コード, クエリ1.商品名  FROM 得意先M LEFT JOIN クエリ1 ON 得意先M.得意先コード = クエリ1.得意先コード ORDER BY 得意先M.得意先コード,売上T.伝票日付,売上T.商品コード; この2つをひとつのSQL文にする方法がわかりません。 よろしくお願いいたします。

専門家に質問してみよう