tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトル複数テーブルからのデータ検索
記事No11124
投稿日: 2013/08/25(Sun) 11:21
投稿者かっちゃん
いつもお世話になります
複数テーブルからのデータ検索についてお願いします

MeiboF(テーブル)
 No       9(4)
 Namae    x(20)
  Jusyo    x(30)
 KuniCd   9(3)
KuniF (テーブル)
  KuniCd   9(3)
  KuniMei  x(20)
--------------------------------------------------------
    Public Cmd As New OleDbCommand
    Public Adp As OleDb.OleDbDataAdapter
    Private MeiboDs As DataSet
    Private MeiboDt As DataTable

1テーブルの場合
        wkstrSql = "SELECT No, Namae, Jusyo, KuniCd " _
                 & "FROM MeiboF "
        Cmd.CommandText = wkstrSql
        Adp = New OleDbDataAdapter(Cmd)
        MeiboDs = New DataSet
        Adp.Fill(MeiboDs, "MeiboF")
      ' データセット→データテーブル
        MeiboDt = MeiboDs.Tables("MeiboF")

上記構文にKuniFからKuniMei追加したいのですが

下記構文で完成するにはどのように変更したらよろしいでしょうか

        wkstrSql = "SELECT No, Namae, Jusyo, KuniCd, KuniMei " _
                 & "FROM MeiboF, KuniF " _
                 & "WHERE MeiboF.KuniCd = KuniF.KuniCd " _
        Cmd.CommandText = wkstrSql
        Adp = New OleDbDataAdapter(Cmd)
        MeiboDs = New DataSet
        Adp.Fill(MeiboDs, "   ")
      ' データセット→データテーブル
        MeiboDt = MeiboDs.Tables("   ")

よろしくお願いいたします

[ツリー表示へ]
タイトルRe: 複数テーブルからのデータ検索
記事No11125
投稿日: 2013/08/25(Sun) 22:57
投稿者オショウ
>         wkstrSql = "SELECT No, Namae, Jusyo, KuniCd, KuniMei " _
>                  & "FROM MeiboF, KuniF " _
>                  & "WHERE MeiboF.KuniCd = KuniF.KuniCd " _

wkstrSql = "SELECT MeiboF.No, MeiboF.Namae, MeiboF.Jusyo, MeiboF.KuniCd, KuniF.KuniMei " _
         & "FROM MeiboF, KuniF " _
         & "WHERE MeiboF.KuniCd = KuniF.KuniCd "

もともとのコードを実行したら、それなりのエラーコードが取得できる
はずなので、対処は類推できると思いますが・・・

因みに、データベースの種類によっては、表記方法が異なる場合がある
ので、データベースが何なのか、明示しましょう。

以上。参考まで

[ツリー表示へ]
タイトルRe^2: 複数テーブルからのデータ検索
記事No11135
投稿日: 2013/08/31(Sat) 06:59
投稿者かっちゃん
> >         wkstrSql = "SELECT No, Namae, Jusyo, KuniCd, KuniMei " _
> >                  & "FROM MeiboF, KuniF " _
> >                  & "WHERE MeiboF.KuniCd = KuniF.KuniCd " _
>
> wkstrSql = "SELECT MeiboF.No, MeiboF.Namae, MeiboF.Jusyo, MeiboF.KuniCd, KuniF.KuniMei " _
>          & "FROM MeiboF, KuniF " _
>          & "WHERE MeiboF.KuniCd = KuniF.KuniCd "
>
> もともとのコードを実行したら、それなりのエラーコードが取得できる
> はずなので、対処は類推できると思いますが・・・
>
> 因みに、データベースの種類によっては、表記方法が異なる場合がある
> ので、データベースが何なのか、明示しましょう。
>
> 以上。参考まで

いつもありがとうございます
助かります

VB2010 で データベースは "SQL Server" です
 
wkstrSql = "SELECT MeiboF.No, MeiboF.Namae, MeiboF.Jusyo, MeiboF.KuniCd, KuniF.KuniMei "
          & "FROM MeiboF, KuniF " _
          & "WHERE MeiboF.KuniCd = KuniF.KuniCd "
Cmd.CommandText = wkstrSql
        Adp = New OleDbDataAdapter(Cmd)
        MeiboDs = New DataSet
ー→   Adp.Fill(MeiboDs, "XXXXX")
      ' データセット→データテーブル
ー→   MeiboDt = MeiboDs.Tables("YYYYY")

上記部分のXXXXX と YYYYY の部分はどのように設定したらよいのでしょうか
よろしくお願いいたします

[ツリー表示へ]
タイトルRe^3: 複数テーブルからのデータ検索
記事No11136
投稿日: 2013/08/31(Sat) 08:52
投稿者オショウ
> 上記部分のXXXXX と YYYYY の部分はどのように設定したらよいのでしょうか

  SQL Server なのに、何故、OleDb 使っているのでしょうか?
  Imports System.Data.SqlClient
  として、SqlClientクラス使ってSQL Server にアクセスしたら・・・

  XXXXX と、YYYYY は、自分で決めた名称を書けばよいです。
  この場合、同じ名前(文字列)になります。

以上。

[ツリー表示へ]
タイトルRe^4: 複数テーブルからのデータ検索
記事No11137
投稿日: 2013/08/31(Sat) 11:23
投稿者かっちゃん
> > 上記部分のXXXXX と YYYYY の部分はどのように設定したらよいのでしょうか
>
>   SQL Server なのに、何故、OleDb 使っているのでしょうか?
>   Imports System.Data.SqlClient
>   として、SqlClientクラス使ってSQL Server にアクセスしたら・・・
>
>   XXXXX と、YYYYY は、自分で決めた名称を書けばよいです。
>   この場合、同じ名前(文字列)になります。
>
> 以上。

ありがとうございました。

もう一つ面倒をおかけいたします
他のシステムではデータベースに"アクセス"を使っております。
その場合はどのような設定になるのでしょうか

よろしくお願いいたします

[ツリー表示へ]
タイトルRe^5: 複数テーブルからのデータ検索
記事No11138
投稿日: 2013/08/31(Sat) 15:54
投稿者オショウ
> 他のシステムではデータベースに"アクセス"を使っております。
> その場合はどのような設定になるのでしょうか

  ACCESS は、あまり詳しくないもので・・・

  ACCESS は何をお使いですか?
  拡張子がMDBでご使用?

  それと、OSとOSのエディションは?
  32/64bitも影響します。

※ 魔界の仮面弁士さんが、お詳しかったかと。
  振ってすいません。

以上。

[ツリー表示へ]
タイトルRe^6: 複数テーブルからのデータ検索
記事No11141
投稿日: 2013/09/02(Mon) 22:56
投稿者かっちゃん
> > 他のシステムではデータベースに"アクセス"を使っております。
> > その場合はどのような設定になるのでしょうか
>
>   ACCESS は、あまり詳しくないもので・・・
>
>   ACCESS は何をお使いですか?
>   拡張子がMDBでご使用?
>
>   それと、OSとOSのエディションは?
>   32/64bitも影響します。
>
> ※ 魔界の仮面弁士さんが、お詳しかったかと。
>   振ってすいません。
>
> 以上。

色々ありがとうございます
  ACCESS は Microsoft Access 2010 です
 拡張子は accdb も mdb も使っております
  OS は Windows 7
         32 ビット

よろしくお願いいたします

[ツリー表示へ]
タイトルRe^7: 複数テーブルからのデータ検索
記事No11142
投稿日: 2013/09/03(Tue) 02:23
投稿者オショウ
>   ACCESS は Microsoft Access 2010 です
>  拡張子は accdb も mdb も使っております
>   OS は Windows 7
>          32 ビット

  検索すれば、結構ヒットする・・・

  http://hanatyan.sakura.ne.jp/patio/read.cgi?no=253
  http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=36170&forum=7
  http://bbs.wankuma.com/index.cgi?mode=al2&namber=56279&KLOG=94

※ 聞く前に検索してみれば?

以上。

[ツリー表示へ]
タイトルRe^8: 複数テーブルからのデータ検索
記事No11144
投稿日: 2013/09/04(Wed) 21:58
投稿者かっちゃん
> >   ACCESS は Microsoft Access 2010 です
> >  拡張子は accdb も mdb も使っております
> >   OS は Windows 7
> >          32 ビット
>
>   検索すれば、結構ヒットする・・・
>
>   http://hanatyan.sakura.ne.jp/patio/read.cgi?no=253
>   http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=36170&forum=7
>   http://bbs.wankuma.com/index.cgi?mode=al2&namber=56279&KLOG=94
>
> ※ 聞く前に検索してみれば?
>
> 以上。

ありがとうございました
すみません、検索しましたがわかりませんでした

wkstrSql = "SELECT * from MeiboF "
この時は MeiboF の1つのテーブルしか使っていないので
"XXXXX","YYYYY" の部分は下記のようにテーブル名を入れるのですが
 ー→ Adp.Fill(MeiboDs, "MeiboF")
 ー→ MeiboDt = MeiboDs.Tables("MeiboF")

次のようにMeiboF, KuniF の2つ以上のテーブルを使っている時の設定がわかりません
下の構文の"XXXXX","YYYYY"の部分はテーブル名をつなげるのでしょうか
 ー→  Adp.Fill(MeiboDs, "MeiboF", "KuniF")
 ー→  MeiboDt = MeiboDs.Tables("MeiboF", "KuniF")

wkstrSql = "SELECT MeiboF.No, MeiboF.Namae, MeiboF.Jusyo, MeiboF.KuniCd, KuniF.KuniMei "
          & "FROM MeiboF, KuniF " _
          & "WHERE MeiboF.KuniCd = KuniF.KuniCd "
    Cmd.CommandText = wkstrSql
        Adp = New OleDbDataAdapter(Cmd)
        MeiboDs = New DataSet
ー→   Adp.Fill(MeiboDs, "XXXXX")
      ' データセット→データテーブル
ー→   MeiboDt = MeiboDs.Tables("YYYYY")

よろしくお願いいたします

[ツリー表示へ]
タイトルRe^9: 複数テーブルからのデータ検索
記事No11147
投稿日: 2013/09/05(Thu) 09:15
投稿者とくま
> 次のようにMeiboF, KuniF の2つ以上のテーブルを使っている時の設定がわかりません
> 下の構文の"XXXXX","YYYYY"の部分はテーブル名をつなげるのでしょうか
>  ー→  Adp.Fill(MeiboDs, "MeiboF", "KuniF")
>  ー→  MeiboDt = MeiboDs.Tables("MeiboF", "KuniF")

すでに回答もらっているわけですが、もう一度読み返してみては?
>  XXXXX と、YYYYY は、自分で決めた名称を書けばよいです。
>  この場合、同じ名前(文字列)になります。

[ツリー表示へ]
タイトルRe^10: 複数テーブルからのデータ検索
記事No11150
投稿日: 2013/09/06(Fri) 08:05
投稿者かっちゃん
> > 次のようにMeiboF, KuniF の2つ以上のテーブルを使っている時の設定がわかりません
> > 下の構文の"XXXXX","YYYYY"の部分はテーブル名をつなげるのでしょうか
> >  ー→  Adp.Fill(MeiboDs, "MeiboF", "KuniF")
> >  ー→  MeiboDt = MeiboDs.Tables("MeiboF", "KuniF")
>
> すでに回答もらっているわけですが、もう一度読み返してみては?
> >  XXXXX と、YYYYY は、自分で決めた名称を書けばよいです。
> >  この場合、同じ名前(文字列)になります。

大変、ありがとうございました
助かりました。
今後もよろしくお願いいたします

[ツリー表示へ]