VB2005とADO.NETを本で勉強中の超初心者です。本のサンプルを参考に以下のようなコ-ドを作って動作させるとDataGridViewにDBの内容が正しく表示されますが、
Dim cn As New OleDbConnection
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=C:\VB2005\Order.mdb"
Dim da As OleDbDataAdapter
da = New OleDbDataAdapter("SELECT * FROM Goods;", cn)
Dim ds As New DataSet
da.Fill(ds, "Goods")
DataGridView1.DataSource = ds.Tables("Good
特定のコ-ドをFormのテキストボックスから入力して、表示させたいと思い"SELECT * FROM Goods WHERE GoodsId = TextBox1.Text;"とするとエラ-になってしまいました。ちなみに"SELECT * FROM Goods WHERE GoodsId = 'A0001';として動作させるとA0001だけを表示することはできました。
どのようにすればテキストボックスや変数で、表示したいコ-ドを指定したら良いか教えて頂けないでしょうか。
No.2ベストアンサー
- 回答日時:
"SELECT * FROM Goods WHERE GoodsId = TextBox1.Text;"
"SELECT * FROM Goods WHERE GoodsId = 'A0001';"
とで何が違うのかよく考えて見ましょう
『"SELECT * FROM Goods WHERE GoodsId = 』までは同じですよね
"SELECT * FROM Goods WHERE GoodsId = TextBox1.Text;"
ですと GoodsIdが『TextBox1.Text』というMDBが理解できる何かと一致しないといけません
TextBox1.Textを知っているのはVB側でありMDB側ではありません
"SELECT * FROM Goods WHERE GoodsId = 'A0001';"
の場合は GoodsIdが『A0001』という文字列のレコードを取得します
となると "SELECT * FROM Goods WHERE GoodsId = '検索対象';"
とすれば良いようです
前半部分は"SELECT * FROM Goods WHERE GoodsId = '"
検索対象を TextBox1.Text
末尾を"';"
として文字列を連結してやれば良いでしょう
結果として
"SELECT * FROM Goods WHERE GoodsId = '" & TextBox1.Text & "';"
で期待する結果が得られそうです
No.1
- 回答日時:
変数について学習するとよいでしょう。
「"」で囲んだ文字は、純粋に文字列として認識されます。つまり「"」と「"」の間に TextBox1.Text と書いても当然それは、「TextBox1.Text」という文字列を指定しているだけで、TextBox1 の Text プロパティの値を取り出している事にはなりません。
文字列の連結には & か + を使います。つまり
"SELECT ~ GoodsId = '" + TextBox1.Text + "'"
といった感じです。
回答ありがとうござました。
メッセ-ジボックスで文字列の間に変数の値を表示する時に
使っていた方法と、今回の内容とが結びつかなかったのは
まだ基本的なことが分っていないと痛感しました。
教えて頂いた内容で希望通りの結果が得られました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- MySQL SQLです。下記の問合せを行うクエリを、PhpMyAdminで作成して実行せよ。 「昨年の各月の総降 1 2023/07/01 00:32
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
VBAでの Replace関数で、ワイル...
-
Excelで3E8を3.00E+8にしない方...
-
Excelはなんで先頭の0を消すん...
-
Excelで指数表現しないようにす...
-
文字列からタブコードを取り除...
-
同一セル内に関数と文字列を同...
-
OnTime 使用時のプロシージャへ...
-
VBA2005 16進を2桁で表示したい。
-
複数文字列から共通文字列の抽...
-
MS SQLServer のSQLで文字列の...
-
エクセルで文字列をtxtファイル...
-
C#で年月を比較する
-
16進数を10進数に簡単に変換す...
-
【Excel VBA】複数ある特定の文...
-
漢数字に変換するプログラム
-
VBA テキストボックスの計算
-
VBの「As String * 128」とは?
-
[C言語]fputsとfprintfの違い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
VBAでの Replace関数で、ワイル...
-
文字列からタブコードを取り除...
-
Excelで3E8を3.00E+8にしない方...
-
Excelで指数表現しないようにす...
-
エクセルで文字列の最大値を抽...
-
エクセル 数値データを桁をそ...
-
エクセルで文字列をtxtファイル...
-
同一セル内に関数と文字列を同...
-
VBA2005 16進を2桁で表示したい。
-
VBの「As String * 128」とは?
-
sedなどで、特定の文字列の後の...
-
MS SQLServer のSQLで文字列の...
-
Left関数とRight関数を合わせた...
-
Msgboxの×が押されたとき
-
アクセスで特定の数字以外(複...
-
【Excel VBA】複数ある特定の文...
-
エクセルでセル内の文字列の最...
-
C#で年月を比較する
おすすめ情報