テーブル名:項目名
海:気温、水温、大きさ(0:大きい、1:小さい)
教科書:科目、値段

上記のようなテーブルがあり、以下のようなSelect文によりデータを
データセットに取得したいのですが、
コンパイルは通り、実行するとFillメソッドでエラーになります。
try~catchをしてエラーの内容を見てみると「FROM句の構文エラー」と出ています。
Fillメソッドの2つめのパラメータにどちらのテーブル名を入れても、
同じエラーになります。
複数のSelect文をAdapterに設定した場合、
2つ目のパラメータは一体なんなのでしょうか。
Adapterを2つに分ける方法ではなくこの方法でどうすればいいのか、
教えてください。よろしくお願いいたします。
初心者ですので、簡単に教えていただけるとありがたいです。
--------------------------------------------------Dim oleCn As OleDb.OleDbConnection = New OleDb.OleDbConnection
Dim dataSet = New DataSet
oleCn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;"~

Dim oDataAdapter As New OleDb.OleDbDataAdapter("SELECT 科目 FROM 教科書" + _
"SELECT 水温 FROM 海 WHERE (大きさ = 0)", oleCn)

oDataAdapter.Fill(dataSet)

このQ&Aに関連する最新のQ&A

A 回答 (5件)

おっと。


.NET Tipsにありましたか。
Select文の間にセミコロンを入れると複数テーブルの取得は出来るのですね。
テーブルをマップする方法も書いてあります。
    • good
    • 0
この回答へのお礼

ありがとうございます。
今回はC#ではなく、VBですので、
;を入力しても駄目でした。
C#では出来てVBでは出来ないような処理なのかもしれませんね。
(そんなことがあるのかどうかもわからないですが・・・)

お礼日時:2005/04/22 14:01

まず、2テーブルへのSQL。



OleDb.OleDbDataAdapter
できません。

System.Data.SqlClient.SqlConnection
できます。(やってみました)
あげられたTipsのHPがCで書かれているため「;」についての議論がされてますが、文末以外に2SQLの区切りにもあります。
VB.NETでも有効です。

参考URLを見たらわかりますが、Accessを利用しているのであれば、そもそもが違うのであきらめましょう。

Fillについては、もう一個質問があがっているのでそっちで答えます。

参考URL:http://www.atmarkit.co.jp/fdotnet/basics/adonet0 …
    • good
    • 0

>今回はC#ではなく、VBですので、


>;を入力しても駄目でした。

SQLコマンドのSELECT文を区切る“;”は必要です。
そうしないと不正なSQLコマンドになり、「FROM句の構文エラー」となります。
C#のステートメントの“;”と勘違いしてませんか?

#3が言うように、使用しているDBが複数結果セットを返せないのかも知れませんが。
    • good
    • 0
この回答へのお礼

ありがとうございます。
・・・。
C#の“;”と勘違いしていました。
確かにSGL文の中に“;”があっても、C#とは関係ないですね・・・。
またまた勉強になりました。

お礼日時:2005/04/25 10:05

@ITのサンプルはSQL Server 2000やMSDEを使ったものです。


データベースの違いによるものなのかもしれないですね。
    • good
    • 0
この回答へのお礼

ありがとうございます。
なるほど、そうですか。
プログラム経験が浅いのでちょっと違うだけで混乱してしまいます。
もっと勉強していきたいと思います。

お礼日時:2005/04/25 09:56

エラーメッセージをよく見て、何で怒られているのかを考える/調べること。



>「FROM句の構文エラー」

どう見ても第2パラメータの問題には見えません。

で、やりたいことはSELECT文を二つ同時に発行して、DataSetにDataTableを二つ受け取る
ことでしょうか?
無理だと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
やりたいことはその通りです。
やはり無理なのでしょうか。
http://www.atmarkit.co.jp/fdotnet/dotnettips/137 …
を見て出来るのではないかと考えていたのですが・・・。

お礼日時:2005/04/22 13:15

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエラー発生アプリケーション mmc.exe

管理ツールのイベントログを見たり、保存したりすると、管理ツールが落ちてしまいます。
何とか、落ちながら保存された、イベントログには
「エラー発生アプリケーション mmc.exe、バージョン 5.1.2600.0、エラー発生モジュール mmcndmgr.dll、バージョン 5.1.2600.0、エラー発生アドレス 0x00054e27」
とあります。
何が壊れているんでしょうか。

Aベストアンサー

mmc.exeは管理ツール。mmcndmgr.dllはそのアイコン・ファイルのようですが。回答になっていませんね。
http://www.zdnet.co.jp/magazine/pcjapan/0009/sp4/08.html

参考URL:http://www.zdnet.co.jp/magazine/pcjapan/0009/sp4/08.html

QMicroSoft BasicのDim文とVisualBasicのDim文の違い

私が20年前にMicroSoft Basicを使っていたときは、DIM文はDIMENSIONの略で配列型変数の宣言に使っていました。

最近VisualBasicの勉強を始めたのですが、変数の宣言はすべてDim文になっており、昔のMS BasicのDim文と意味合いが変わっているのに驚いています。

ここで質問させてください。
・なぜ配列を意味するDimension文が変数の宣言なのか?
・どのバージョンのBasicからDim文の意味が変わったのか?

私が使用していたのはNEC N-Basic,N-88Basic,N-98Basicです。

Aベストアンサー

VISUAL BASIC のDimは ディメンジョンの略です。
私の経験ではVB2.0時代からありました。

配列0を考えた場合変数とおなじであるからだとおもいます

Q"mmc.exe"ってどんな働きをするのでしょうか?エラーメッセージが表示されるのですが...

本日2度ほど"mmc.exe"のアプリケーションエラーが発生しました。
表示メッセージは次のようなものでした。
"0x77a5db1"の命令が"0x72392d74"のメモリを参照しましたが、メモリが"read"になることはできませんでした。
発生したのはACCESS2000でテキストファイル(6MB位の大きいもの)にリンクを貼ろうとした際、ACCESSの反応がなくなっため、強制終了してからです。
何らかの修復をしなければならない重要なメッセージなのかどうかわからず質問させていただきました。
mmc.exeで検索したところ、2件ほどヒットしましたが、今回の私の事象とは異なったため、質問しました。
よろしくお願いします。

Aベストアンサー

mmcはMicrosoft Management Consoleです。
MSの検索でMMCで検索すれば何個か文献が出るでしょう。
ヘルプ見ても出てくるはずです。
コントロールパネルの管理ツール内のアプレットはたいていMMCのコンソール
だったはず。

解決策はやはりとりあえずSP2当てて様子を見るというのは(Windows2000ならば)。

参考URLはSP2のダウンロードページです。

参考URL:http://www.microsoft.com/japan/windows2000/downloads/servicepacks/sp2/default.asp

QDim x As Integer = 0

いつもお世話になっております。

只今、本に記載してあるソースコードを手入力しています。
標記のように入力したら、『コンパイルエラー 修正候補:ステートメントの最後』というエラーが出ました。

(1)このエラーは無視してもよいのでしょうか?
(2)そもそも、変数の宣言文の後ろに=0をつけている意味がわかりません。当方VB初心者です。

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

Aベストアンサー

この点は(変数の宣言と初期化は)言語による、と考えるべきです。
この質問は何の質問か。
VB系統らしいことは判るが
VB以外のBASIC
VB6
VBA
VB.NET系統
のどれか質問に書くべき。質問者は経験が無くて、視野がそこまで行かないのかも知れないが。
ーーー
VBAでは(多分VBでも同じ。テスト環境がないので)
Sub test01()
Dim x As Integer
x = 0
MsgBox x
End Sub
はOK
ーー
Sub test01()
Dim x As Integer =0
MsgBox x
はDim x As Integer =0
と入力した段階でエラー。
http://www.bunsugi.ed.jp/vba4graduate/vba_hensuusyokika.htm
ーーー
定数のConstであればこういう書き方はOK
Sub test01()
Const x As Integer = 0
MsgBox x
End Sub
ーーー
VB.NETでは、OK
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Dim x As Integer = 10
MsgBox(x)
End Sub
ーー
Javaでは可能であるようです
http://msugai.fc2web.com/java/var2.html
ーーーーー
>ろに=0をつけている意味がわかりません
宣言と同時に値を与える=初期化する

この点は(変数の宣言と初期化は)言語による、と考えるべきです。
この質問は何の質問か。
VB系統らしいことは判るが
VB以外のBASIC
VB6
VBA
VB.NET系統
のどれか質問に書くべき。質問者は経験が無くて、視野がそこまで行かないのかも知れないが。
ーーー
VBAでは(多分VBでも同じ。テスト環境がないので)
Sub test01()
Dim x As Integer
x = 0
MsgBox x
End Sub
はOK
ーー
Sub test01()
Dim x As Integer =0
MsgBox x
はDim x As Integer =0
と入力した段階でエラー。
http://www.bunsug...続きを読む

Qこのホ-ムペ-ジでの質問一覧画面がエラーで出ない

このホ-ムペ-ジですが
マイページ → 関心カテゴリーの質問一覧
を押してもエラ画面ーになり表示出てきません
自分の質問解答履歴は出ます
なぜエラーに ???
宜しくお願い致します

Aベストアンサー

エラーが続出していますね。
更新ボタンを押すと表示されることが多いです。

Qマクロで100マス計算! Dim i,j As Integer For i = 2 ToRang

マクロで100マス計算!

Dim i,j As Integer

For i = 2 ToRange(”A1”).End(xlDown).Row
For j=2 To Range(”B1”).End(xlToRight).Column

Cells(i,j).Value = Cells(i,1).Value * Cells(1,j).Value
Next j
Next i
Endsub

上記のように記述しましたが、
iの最終行が2となってしまっていますがなぜこのコードが間違っているのか分からないです。。どなたか教えていただけたら嬉しいです!

Aベストアンサー

確認してはいませんが…


>改行、スペースは実際にはきちんととっていますので気にしないでください
とのことなので、違っているのかもしれませんが、

>For i = 2 ToRange(”A1”).End(xlDown).Row
         ↓
 For i = 2 To Range(”A1”).End(xlDown).Row
で、うまくいきませんか?
100マス(10×10)と最初から決まっているので、範囲は 2 To 11 でも良いように思いますが…

改行、スペースなどが正しくなっているなら、Range(”A1”).End(xlDown).Rowの値が2以下になっている可能性が考えられます。(ということは、A1が空白セル、または、A3が空白セルなどなど・・)
A1が空白セルの場合は、
 For i = 2 To Range(”A2”).End(xlDown).Row
とするか、
 For i = 2 To 11
などとすることで、動作するのではないかと推測します。

Qホームページビルダー11で通信エラー(エラーコード:553)がサイト転送時に出ます。

 こんにちは。ホームページビルダー11でサイト転送すると通信エラ
ー(エラーコード:553)が出て、フレーム表示のページも表示され
ていない状態になってしまいます。どうしたらよいですか?

Aベストアンサー

こちらがご参考になるかと

V11 で転送時に「転送エラー」ダイアログが表示されます
http://www-06.ibm.com/jp/domino01/swhc/esupport.nsf/key/49256A6A0001F136492572350006E350?opendocument

FTPのエラーメッセージの553ですと、「ファイル名の文法エラー、ファイル名が間違っているため実行できない」という意味ですので
この場合、大抵はファイル名に半角英数以外を使用しているのが原因トモ考えられますので、ご確認を。
ファイル名に使用できるのは半角英数と_-のみです。

ただ、どうもV11の不具合でもあるようですので、ファイル名に問題がない時は、サイト転送ではなくページ転送(FTP)や、フリーソフトのFFFTPなどを使って転送してみた後、ネット上で表示されるかどうか確認するのをおすすめします。

また、後日V11の修正ファイルがIBMで配布されると思いますので、たまに下記サイトをアクセスし、修正ファイルが公開されたらインストールされておかれてください。
http://www-06.ibm.com/jp/software/internet/hpb/

参考URL:http://www-06.ibm.com/jp/domino01/swhc/esupport.nsf/key/49256A6A0001F136492572350006E350?opendocument

こちらがご参考になるかと

V11 で転送時に「転送エラー」ダイアログが表示されます
http://www-06.ibm.com/jp/domino01/swhc/esupport.nsf/key/49256A6A0001F136492572350006E350?opendocument

FTPのエラーメッセージの553ですと、「ファイル名の文法エラー、ファイル名が間違っているため実行できない」という意味ですので
この場合、大抵はファイル名に半角英数以外を使用しているのが原因トモ考えられますので、ご確認を。
ファイル名に使用できるのは半角英数と_-のみです。

ただ、どうもV11の不...続きを読む

QSQLでSELECTの中でSELECT文を作りたいのですが。

開発環境 VB6 WINXP 
SQLで、次のそれぞれの文((1)、(2))は問題なく動作しますが、これを合体させて、絞り込むにはどうしたら良いのでしょうか。
(1) strSQLM = "SELECT * FROM 漁獲DATA WHERE 日付 =#" & Format(PickedDate, "m-d-yy") & "#"
(2) strSQLM = "SELECT * FROM 漁獲DATA WHERE 順位 =" & Meigara

つまり同一の日の同じ順位のデータを調べたいのですが。よろしくお願いします。

Aベストアンサー

>上の文だと、抽出条件でデータ型が一致しません。となってしまいました。どうすれば良いのでしょうか。Meigaraは数値です。

Meigaraは数値でしたか。自分は「○位」という感じの文字列だと思っていました。その場合は「順位 =」のあとにある「'」と一番最後にある「Meigara」から後ろを消せば良いです。消した場合のSQL文は下記になります。

strSQLM = "SELECT * FROM 漁獲DATA WHERE 日付 ='" & Format(PickedDate, "m-d-yy") & "' AND 順位 =" & Meigara

これで大丈夫なはずですよ。

QWindows1032bitアップデート中にエラーが出ました。second-boot フェーズでエラ

Windows1032bitアップデート中にエラーが出ました。second-boot フェーズでエラーが出ました!全く意味がわかりません?

Aベストアンサー

windows10、windows10anniversary Updateに失敗をする場合は、
タスクトレイを開いてタブのスタートアップを開いて、すべてのアプリを無効にします。
次にもサービスを開いて、Microsoftの製品をすべて無効にします。

windows10 Creators Updateに失敗をする原因
http://freesoft.tvbok.com/win10/problems/trouble_shoot_list_creators_update.html

私のプロフィールにwindowsに関するURLを載せているので、必要な時にURLを開いて操作方法を確認してください。

QDimとは・・・

変数の宣言をする時の「Dim」は何の略でしょうか…
ほかにもプログラムをやっていて、何の略かわからないとなかなか覚えられません。よいサイトをご存知の方お願いします。

Aベストアンサー

ryくごの胃委細とを探したんですがなかなか良いところがありません。

http://www.geocities.co.jp/SiliconValley-Bay/6849/

http://www.geocities.co.jp/Milkyway-Orion/5125/dic.htm

ちなみにDImensionは「配列」などの意味です。

参考URL:http://www.bekkoame.ne.jp/~proud/abb-words.html


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング