ASP上1画面に複数のテーブルからデータを取る方法

このQ&Aのポイント
  • ASP上の1画面で複数のプルダウンを設置し、DBからデータを取得する方法について教えてください。
  • DBのサーバーはsqlserverです。各テーブルの項目は異なるため、JOINは使用できません。
  • 1つのDBを読み込む際は、指定のコードを使用しています。
回答を見る
  • ベストアンサー

ASP上1画面に複数のテーブルからデータを取るには

いつもお世話になっております。 ASPの1画面に、複数のプルダウンを設置して、 そのプルダウンの内容をDBから拾ってきたいと思ってます。 DBのサーバーはsqlserverです。 各テーブルは、項目が全く違うのでJOINは使えません。 ご存知でしたら、ご教授お願いします。 1つのDBを読み込む際は、以下のコードにておこなってます。 <%@ LANGUAGE="vbscript" CODEPAGE=65001 %> <% Session.CodePage=65001 %> <!--#include file="config.inc"--> <!--#include file="dblib.asp"--> <% ' データベース利用用変数 Dim Conn ' Connection オブジェクト Dim Rs ' レコードセットオブジェクト Dim SQL ' SQL 文格納用 ' データベース接続の確立 Set Conn = ConnectDB(DSN) ' 会社の一覧を取得 SQL = "Select 法人コード,会社コード,法人名称 From 法人マスタ ORDER BY 法人コード" Set Rs = ExecSql(Conn, SQL) %> どうぞよろしくお願いいたします。

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

  • ベストアンサー
  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

複数のRecordSetを取得すればいいのではないでしょうか。 <%@ LANGUAGE="vbscript" CODEPAGE=65001 %> <% Session.CodePage=65001 %> <!--#include file="config.inc"--> <!--#include file="dblib.asp"--> <% ' データベース利用用変数 Dim Conn' Connection オブジェクト Dim Rs1 ' レコードセットオブジェクト1 Dim Rs2 ' レコードセットオブジェクト2 Dim Rs3 ' レコードセットオブジェクト3 Dim SQL' SQL 文格納用 ' データベース接続の確立 Set Conn = ConnectDB(DSN) ' 会社の一覧を取得 SQL = "Select 法人コード,会社コード,法人名称 From 法人マスタ ORDER BY 法人コード" Set Rs1 = ExecSql(Conn, SQL) SQL = "Select なんちゃらしゃん From なんちゃらマスタ ORDER BY なんちゃらコード" Set Rs2 = ExecSql(Conn, SQL) SQL = "Select ぷるっぴ From ドンタコスマスタ ORDER BY 有明海沿岸コード" Set Rs3 = ExecSql(Conn, SQL) ' TODO: Connはどこで始末してる? %>

taka78ube
質問者

お礼

すばやいご回答ありがとうございました。 Dim Rs1 ' レコードセットオブジェクト1 Dim Rs2 ' レコードセットオブジェクト2 Dim Rs3 ' レコードセットオブジェクト3 を作って、各時SQLを実行して、 うまくテーブルを読み込むことができました。 大変助かりました。 どうもありがとうございました。

関連するQ&A

  • VBSの中で書くSQL文の記述方法

    よろしくお願いします。 select * from db1 into id,password,date,name where db1_id = **** and db1_password = **** and db1_date = 99999999; (db1_id,db1_password,db1_dateがプライマリキー) db1という表からプライマリキーに該当したデータを取り出し、 変数に格納したいと思っています。 このSQL文をASPのVBSの中で実現する方法を教えてください。 <% Dim Conn,SQL,RS Dim id Dim password Dim date Dim name db1=server.mappath("db1.mdb") DBName="Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & db1 Set Conn = Server.CreateObject("ADODB.Connection") Conn.open DBName SQL = "select * from db1" INTO = "into id,password,date,name" WHERE = "where db1_id = **** and db1_password = **** _ and db1_date = 99999999" SQL = SQL & INTO & WHERE & ";" Set RS = Server.CreateObject("ADODB.Recordset") RS.Open SQL, Conn,3,3 %> これでうまくいくかな~と思ったのですが・・・。

  • Access2000のデータをASPで表示させるには?

    間違ってソースを全部消してしまって、記憶を頼りに戻してみたのですが、Accessのデータの表示方法がわからなくなってしまいました。 ↓これがそのソースです <%@ LANGUAGE="VBScript" %> <% Option Explicit %> <Html> <Head> </Head> <Body> <% Dim db,rs,sql Set db = Server.CreateObject("ADODB.Connection") db.Open ("db1")←データベース名入れるんですよね? sql = "Select id,namae,n_yomigana,juusyo,j_yomigana From table1 where db1" Set rs = db.Execute (sql) Response.Write rs.fields("id") Response.Write "<br>" Response.Write rs.fields("namae") Response.Write "<br>" Response.Write rs.fields("n_yomigana") Response.Write "<br>" Response.Write rs.fields("juusyo") Response.Write "<br>" Response.Write rs.fields("j_yomigana") Response.Write "<br>" rs.close db.close %> </Body> </Html> ソースを丸ごと載せてしまってごめんなさい、読みにくいですよね。 足りないところや直し方が思い出せなくて困っています。 ご迷惑おかけしますが、アドバイスお願いします。

  • ASPから異なる複数のDBサーバーに接続する方法

    ASPの質問です。WEBサーバーと複数のDBサーバーがあります。 ADODB.Connectionでオラクルサーバーに接続し、データベースオブジェクトを作成しています。 別々のDBサーバーにあるテーブルを結合して利用したいのですが、ASPで可能でしょうか? 例えば"select * from A,B where A.ID=B.ID"というSQL文を実行する(AとBは別々のDBサーバーにある)。 とりあえず、代替案で検討しているのは片方のDBサーバーにデータベースリンクで他方のDBサーバーのVIEWを作ろうかと思っています。できればASPで解決したいのですが、よろしく御願いします。

  • ASPでORACLEのエラーが発生するのですが、対処方法をお教えください。

    Win2000(IIS) + ORACLE8.1.6 でASPを使ったWEBサーバを構築しようとしています。 まず手始めに、単純にデータを登録するような簡単なASPを作成しようとしているのですが、 下記処理が、133行目でエラーになってしまいます。 ※当然の事ながら、ODBC接続の設定は正常に行えていることを確認しております。  (Accessでリンクテーブルを使って、ODBC経由でテーブルにデータを追加できます。) <処理内容 (/Oracle/newtoroku.asp の一部)> 126行目 Dim Conn,SQL,RS 127行目 DBName="Provider=msdaora;Data Source=xxxxx;User ID=xxxxx;Password=xxxxx" 128行目 Set Conn = Server.CreateObject("ADODB.Connection") 129行目 Conn.open DBName 130行目 SQL = "select * from XXテーブル" 131行目 Set RS = Server.CreateObject("ADODB.Recordset") 132行目 RS.Open SQL, Conn,3,2 133行目 rs.AddNew <エラー内容> ADODB.Recordset (0x800A0CB3) 現在の Recordset は更新をサポートしていません。 プロバイダか、選択されたロックタイプの限界の可能性があります。 /Oracle/newtoroku.asp, line 133

  • SELECT文を発行して、ACCESSより取得する方法

    既存のプログラムを元に、 以下のようなソースを作成したのですが、 取得出来ませんでした。 参照設定やパスの設定、SQL文は正しいです。 どこがマズイのでしょうか? アドバイスをお願い致します。 Dim db  As DAO.Database Dim rs  As DAO.Recordset Dim SQL As String 'データベース接続 Set db = OpenDatabase("DBのパス") 'データ検索SQL SQL = "" SQL = " SELECT文 " 'ACCESSより取得 Set rs = db.OpenRecordset(SQL) db.Close rs.Close

  • ソートの設定

    ASPでアクセス97を使って品番、納期という順番に表示させたいのですが うまくいきません。 SQL文を使って品番順にはならんだのですが、納期がばらばらになってしまいます。どうしたら品番、納期順という並びになるか教えて下さい。 Dim Conn,SQL,RS xxxx=server.mappath("*****.mdb") DBName="Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & xxxx Set Conn = Server.CreateObject("ADODB.Connection") Conn.open DBName SQL = "select * from ******" SQL = SQL & " order by 品番 asc" set RS = Server.CreateObject("ADODB.Recordset") RS.Open SQL, Conn,3,3

  • エクセルからSQLServerのデータを操作したいのですが

    エクセルからSQLServerのデータを操作したいのですが 下記コードをエクセルに入力して実行すると conn.Open connstrの部分にて 実行時エラー"-2147217887(80040e21)' 複数ステップの OLE DB の操作エラーが発生しました。各OLE DBの状態の値を確認してください。 作業は終了しませんでした。 とでてしまいます。 どのようにしたらいいのでしょうか? 教えてください。 Const connstr ="Data Source=●●●\SWLEXPRESS;Initial Catalog = DBweb;Integrated Security=True" は Web.configで接続されている <add name ="webConnectionString" connectionString="Data Source=●●●\SWLEXPRESS;Initial Catalog = DBweb;Integrated Security=True"_ providerName = "System.Data SqlClient"/>からproviderNameを抜かしてとったのですがいいのでしょうか? ------------------------------------------- Sub SQL() Const connstr ="Data Source=●●●\SWLEXPRESS;Initial Catalog = DBweb;Integrated Security=True" Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim strSQL As String strSQL = "SELECT * FROM DBtable" conn.Open connstr rs.Open strSQL, conn Range("A2").CopyFromRecordset rs rs.Close conn.Close Set rs = Nothing Set conn = Nothing End Sub

  • 初歩的なSQLですが・・・

    私の環境はOS:Xp      ACCESS2000です。 宜しくお願いします 今AccessVBAで作業をしているのですが、 Dim ws As DAO.Workspace Dim DB As DAO.Database Dim rs As DAO.Recordset Dim sql As String Set ws = DBEngine.Workspaces(0) Set DB = ws.Databases(0) sql = "select MAX(銀行コード) from 銀行テーブル ;" Set rs = DB.OpenRecordset(sql) Me.合計 = rs このSQL文で銀行テーブルに入っている銀行コードの最大値を取得したいのですが、取得した後どのように記述したら「rs」から値を引っ張り出せるのでしょうか? 宜しくお願いします。

  • VB テーブルのデータを出荷先ごとにcsv出力

    お世話になります。 VBは素人で、自分なりにネットでいろいろ調べて、下記の物を作ってみたのですが、 うまくいかず、とても悩んでおります。 知ってる方、どなたか教えて頂けませんか? よろしくお願いいたします。m(_ _)m ------------------------------------------------------------------ 目的: (1)テーブルのフィルド名を、各CSVの一行目に出力したい。 (2)テーブルのフィルドは30項目ぐらいあるため、下記のように個別出力ではなく、   一括で出力できるようにしたいです。 (3)すべての項目には、” ”で囲み、カンマで区切りをしたいです。 ------------------------------------------------------------------ Option Compare Database Option Explicit Private objDB As DAO.Database Private objExcel As Object 'EXCELオブジェクト Private objWorkBook As Object 'WORKBOOKオブジェクト Private objSheet As Object 'SHEETオブジェクト Public Sub CSVsyuturyoku() Dim db As DAO.Database Dim rs1 As DAO.Recordset Dim rs2 As DAO.Recordset Dim flag As Boolean Set db = CurrentDb Set rs1 = db.OpenRecordset("SELECT DISTINCT 氏名 FROM 出荷データ") Do Until rs1.EOF Set rs2 = db.OpenRecordset("SELECT * FROM 出荷データ" _ & " WHERE Nz(氏名) = '" & rs1!氏名 & "'") flag = True Open CurrentProject.Path & "\ファイル" & rs1!氏名 & ".csv" _ For Output As #1 Do Until rs2.EOF 'Print #1, Nz(rs2!商品名) Print #1, rs2!商品コード & "," & rs2!商品名 & "," & rs2!単価 ' ↑フィルド項目数が多すぎたため、全部書ききらず。。。 rs2.MoveNext Loop Close #1 rs1.MoveNext Loop rs1.Close: Set rs1 = Nothing If flag Then rs2.Close: Set rs2 = Nothing db.Close: Set db = Nothing ' 終了の表示 MsgBox "ファイル出力が完了しました。" End Sub

  • ASP レコードセットしたオブジェクトを戻り値に出来ませんか?

    ASPは本当にドキュメントが少なく困っています。 ---Main.asp---------------------------------- Dim RetRec 'DB接続 Call DBOpen() 'SQL文 strSQL = "SELECT・・・・" 'レコードオープン実行 Set RetRec = RecOpen(strSQL) 'レコードカウント取得 RecCnt = RetRet.RecordCount  ・  ・  ・ --DBCon.asp-------------------------- Public Function RecOpen(SQLPrm) 'オブジェクト宣言 Set G_RecMap = Server.CreateObject("ADODB.Recordset") 'レコードオープン G_RecMap.Open SQLPrm, G_Conn, 3, 3, 1 '復帰値作成 RecOpen = G_RecMap Exit Function End Function ----------------------------------------- エラー内容 オブジェクトでサポートされていないプロパティまたはメソッドです。: 'RecordCount' ・・・当然のことながら、復帰値をオブジェクトとして 拾っていないので、上記エラーが表示された。 ------------------------------------------- 上記のようにレコードセットしたオブジェクトは返せますでしょうか?同じ要領で行うと上手く行かないのですが。。。お手数ですが、よろしくお願いします Sessionの使用は禁止となっています。

専門家に質問してみよう