• ベストアンサー

ファイルを読み込んで変数へ

VB初心者です。 ファイルの文字列を読み込んで、変数に格納し、SQL文のテーブル名に指定したいのですが、どうすればよいのでしょうか? テキストから文字列を取得するところまではできたのですが、変数にもって、SQL文に組み込むことができません。実行すると「テーブル名が無効です。」とエラーになります。 どうか、皆様ご教授ください。

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

  • ベストアンサー
  • ttyp03
  • ベストアンサー率28% (277/960)
回答No.3

#1です。 SQLはVBではありませんので、直に書くことはできません。 String型の変数等に格納し、それをデータベースのSQL実行関数に渡します。 Dim sql as string sql = "select A from " & srhLine SQL実行関数( sql ) もちろん変数を介さずに直に書くことも出来ます。 SQL実行関数( "select A from " & srhLine )

pyontanrie
質問者

お礼

ありがとうございます。 大変助かりました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

SQL文は普通テキストです。 コマンドラインからいれるもの アクセス(VBA)のようにSQL文実行コマンドがあったり、 ファイルオープン時にそのSQL文を実行して開いたり 開発環境でSQL文字列を入力して実行をクリックしたり で実行できるものを経験しました。 しかしFSOの中で、SQL文を裸で他のステートメントの中に混じらせて書けば、実行してくれることはないはずです。 FSOがSQLを実行する仕様に進歩したら、 (テーブル名文字列)=ファイルの文字列を読み込んで、変数に格納し、SQL文のテーブル名に指定 strSQL="SELECT A FROM" & (テーブル名文字列) EXECUTESQL strSQL のようなイメージになると思いますよ。

pyontanrie
質問者

お礼

ありがとうございます。 初心者に分かりやすく教えていただき、 感謝しております。

  • ttyp03
  • ベストアンサー率28% (277/960)
回答No.1

まずはプログラムを提示しましょう。

pyontanrie
質問者

補足

プログラムはこのとおりです。 Set fso = CreateObject("Scripting.FileSystemObject") Set src = fso.GetFolder("C:\script\tips") ' 対象フォルダの指定 Set TextFile = fso.OpenTextFile(FileName) ' テキストファイルのオープン Do Until TextFile.AtEndOfStream tmpLine = TextFile.ReadLine ' 1行読み込み srhLine = tmpLine Loop select A from srhLine ※エラー

関連するQ&A

  • SELECT文の結果を変数に・・・

    C#でOracleデータベースへ接続して データーベースにある全てのテーブル名を取得したいのですが、取得した一覧を変数にする方法が分かりません。 SQL文「SELECT * FROM TAB」で一覧を取得することはわかったのですが、この結果を変数に格納することができません。 何か方法をご存知のかたが居られましたらご教授願えないでしょうか?

  • 変数に入った値を変数として扱うことはできますか?

    VBスクリプトで自動で作成した値を変数に変化したいのですが、可能なのでしょうか? 例えば hensu = "5" ~DBのテーブルからフィールド名"hensu"を抜き出し、変数"field_set"に入れる。~ OpenField = OpenField & field_set& "=""&"& field_set&"&""" sql = "update test_table set" sql = sql &" "& OpenField sql = sql & "where scode = '" & scode & "'" という感じにしたいのですが、当然"field_set"には"5"ではなく"hensu"というフィールド名の文字列が入ります そもそも変数に入れた値を変数に変換する事って可能なのでしょうか? 宜しくお願い致します。

  • クエリビルダで列名を変数にしたいが

    VisualStudio2010でwebアプリを作成しています。 クエリビルダでSQL文を作成しSQLサーバにアクセスしています。 このSQL文でわからない点があります。 列1、列2、列3のフィールドを持つテーブルがあるとします。 ドロップダウンリストで選択した項目により、ある時は列1だけ取得し ある時は列2だけ取得し、ある時は列3だけ取得する様なSQL文を作りたいのですが、どうすればよいかわかりません、列名を変数にできればよさそうなんですが、そんなことできますか? ある時は SELECT 列1 FROM table1 ある時は SELECT 列2 FROM table1 ある時は SELECT 列3 FROM table1 としたいので   SELECT @列名 FROM table @列名は変数のつもりです。 このようにできればよいと思っていますが・・・ よろしくおねがいします

  • 動的な変数名のつけ方について

    ■環境 OS:XP 言語:C++ コンパイラ:Visual C++ 2008 char*やstd::string等で格納された文字列を使用して 変数を宣言することは可能でしょうか。 用途として、テキストファイル等から文字列を取得し その文字列を変数名としてプログラミング内で使用するという方法を考えています。 よろしくお願い致します。

  • 任意の文字列を変数にする方法

    お世話になります。 掲題の件につきまして質問させていただきます。 テキストファイルに記述されている文字列を ルールにのっとり、読み込んだ変数に置き換える方法が よくわかりません。 ご存知のかたがいらっしゃいましたらどうぞご教授ください。 例) <テキストファイル> ☆☆☆$hensuu☆☆☆ <vb> (1)テキストファイルより、上記文字列を取得 (2)$以下の文字列(hensuu)をvbで宣言した変数(hennsuu)と置き換える。 (3)vb側でhennsuu = 100とすると、 vbからテキストファイルを読み込んだ時点で hennsuuに”☆☆☆100☆☆☆”と代入される。 わかりづらい例で申し訳ありませんがどうぞよろしくお願い申し上げます。 失礼いたします。

  • PL/SQLで…SQLの実行結果を変数を格納する方法

    毎度お世話になります。 SQL文の実行結果を変数に格納する方法がわからず困っております。 ご存知の方が居られましたらご教示いただきたい所存です。 常に1つの値しか返さないようなSQL文なので 変数V number := 'select count(B列) from B表'; みたいな書き方はで 入るか見てみようと思ったのですが コンパイルはできるものの、 実行すると「文字から数値への変換エラー。が発生しました」と なって上手くいきませんでした。 'select count(B列) from B表'が単なる文字列として解釈されて エラーになっているのだとは思うものの 正しい書き方がわからないのでよろしくお願いいたします。

  • like演算子内に変数って使えないんですか?

    ExcelからSQL Serverの外部取り込みを行う際に VBAの条件文の1部にWHERE(JOBTBL.BATCHID Like '12%')と書き 実行すると12から始まるデータの取得が正常に行われます。 実際には'12%'の箇所に当日日付を取得するようなものを書きたいので 変数T_DAY=format(Now,"mmdd")を入れて WHERE(JOBTBL.BATCHID Like 'T_DAY%')で実行すると エラーは出ませんが結果が表示されません。 変数を使用することは出来ないのでしょうか? その場合、当日日付4桁から始まる列を含むテーブルを取得したい場合 どのようにすればよいでしょうか? ご教授ください。

  • PLSQLで変数に格納されたSQL文の実行

    お世話になります PLSQLで変数に格納されたSQL文を実行するにはどうしたらよいでしょうか? vSql := 'select count(*) from XXX_tbl;' で vSql を実行させたいです。 ご教授ください。

  • VB6.0 String型変数の文字数制限の250文字制約を外したい。

    VB6.0 String型変数の文字数制限の250文字制約を外したい。 VB6.0を使用しています。他人が作ったプログラムを再利用しています。 String型の変数に文字列が250文字しかどうしてもはいりません。 SQL文ですので、どうしても1000文字ほど入れたいのです。 どこかでString型の文字数制限を行っていると思うのですが、それを外したいのです。

  • javaのResultSetについて

    javaのResultSetについてですが、getStringでSQL名を選択して取得するのですが、変数で指定した場合は、文字列と判断され取得できないのでしょうか? 例えばSQLの列名の「test」を取得したい場合は、「rs.getString(test)」と記述しますが、 以下のように変数に置き換えて、取得しようすると、 String test2 = "test"; rs.getString(test2)というようにすると、カラムがありませんとエラーが返ってきます。 変数に置き換えて実行したいのですが、何か良い方法がないかご教授いただけますでしょうか。 宜しくお願い致します。

    • ベストアンサー
    • Java

専門家に質問してみよう