• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBScriptで結果取得のやり方知っている方教えてください。)

VBScriptで結果取得のやり方知っている方教えてください

このQ&Aのポイント
  • VBScriptを使用して、MSSQLに登録されているテーブルからデータを取得し、メッセージボックスに表示する方法を教えてください。
  • データベースのテーブルに登録されているデータをVBScriptを使って取得する方法を教えてください。
  • VBScriptを利用して、MSSQLのテーブルからデータを取得し、メッセージボックスに表示する方法を教えてください。

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.4

もしかすると、UserInputの解釈がおかしいか、 取得した値の解釈がおかしいのかもしれません。 つまり、"60"を数値ではなく、文字列と見ている 可能性があります。CLng関数を咬ませるように したらどうでしょうか? UserInput = CLng(UserInput) if CLng(objSQLRecordset.Fields("tensu_kokugo").value) >= UserInput then

sai1201
質問者

お礼

回答ありがとうございます ついにできました。 本当にありがとうございます。

その他の回答 (3)

回答No.3

こんばんは。 補足拝見しました。 で、えーと・・・、 For Each objField in objSQLRecordset.Fields で取得している「objField」が使用されてませんが? objField(1)またはobjField("カラム名")とかにならないと変じゃないですかね・・・?

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

レコードセットのフィールドを使ってませんね。 For Each は必須ではありません。 namae = objSQLRecordset.Fields("name").Value If objSQLRecordset.Fields("tensu_kokugo").Value >= UserInput Then     DatabaseKokugo = "国語合格、" Else     DatabaseKokugo = "国語不合格、" End If こういう感じで処理してください。

sai1201
質問者

補足

回答ありがとうございます。 今このようにしてみたのですが名前は上手くいきましたが 国語と算数だけは不合格になってしまいます。 間違っているところがあれば指摘お願いします。 DatabaseTitle = "" DatabaseOut = "" DatabaseKokugo = "" DatabaseSansu = "" Do Until objSQLRecordset.EOF if objSQLRecordset.Fields("tensu_kokugo").value >= UserInput then DatabaseKokugo = "国語合格、" else DatabaseKokugo = "国語不合格、" End if if objSQLRecordset.Fields("tensu_sansu").value >= UserInput then DatabaseSansu = "算数合格。" else DatabaseSansu = "算数不合格。" End if namae = objSQLRecordset.Fields("name").value DatabaseTitle = DatabaseTitle & namae & "さんは" & DatabaseKokugo & DatabaseSansu & vbNewLine objSQLRecordset.MoveNext Loop

回答No.1

こんばんは。 vbsの中身を見せて頂かないと、判断が難しいです・・・。 差支えなければ載せてください。

sai1201
質問者

補足

そうですね。すみませんでした 'ユーザーからの入力を受け付けます。 UserInput = InputBox( "合格ライン" , _ "判定", _ "") 'RDBMSへの接続をします。 Set objSQLConnection = CreateObject("ADODB.Connection") objSQLConnection.Open _ "PROVIDER=SQLOLEDB;" & _ "SERVER=127.0.0.1;" & _ "DATABASE=db_ehon;" & _ "UID=sa;" & _ "PWD=sawq21" 'クエリを発行します。 Set objSQLRecordset = CreateObject("ADODB.Recordset") objSQLRecordset.Open _ "select * from tbl_mogi", _ objSQLConnection 'クエリの結果をユーザーに見やすい形に整えます。 DatabaseTitle = "" DatabaseOut = "" DatabaseKokugo = "" DatabaseSansu = "" Do Until objSQLRecordset.EOF For Each objField in objSQLRecordset.Fields if tensu_kokugo >= UserInput then DatabaseKokugo = "国語合格、" else DatabaseKokugo = "国語不合格、" End if if tensu_sansu >= UserInput then DatabaseSansu = "算数合格。" else DatabaseSansu = "算数不合格。" End if namae = namae Next DatabaseTitle = DatabaseTitle + namae +DatabaseKokugo + DatabaseSansu + vbNewLine objSQLRecordset.MoveNext Loop 'ユーザーに結果を見せます。 MsgBox DatabaseTitle, _ vbOKOnly, _ "実行結果" 今はこんな形になっています。 補足ですがFor Eachは必ず使わなければならないようです。 どうか回答お願いします。

関連するQ&A