フォームで入力された値を、
次のファイルでクエリを読み込むときに代入するASPを作成しましたが、実行しようとすると、
「データ型が一致しません。」のエラーメッセージが出ます。
DBはACCESSを使用しています。ACCESSの対象テーブルで、
データ型を「テキスト型」にすると問題ないのですが、
「数値型」にすると、「データ型が一致しません」の
エラーメッセージになります。
フォームでは、プルダウンで「数値」を選択するようになっています。
宜しくお願いします。

A 回答 (2件)

Where区に指定した条件のフィールドが数値なら『'』でくくる必要がありません



Set rs = db.Execute("SELECT テーブル3.* FROM テーブル3 WHERE (テーブル3.番号)=" & bangou)
といった具合に修正してみましょう

『'』でくくる必要があるのは対象のフィールドが文字列の場合です
    • good
    • 2
この回答へのお礼

回答ありがとうございます。
「'」を外したらできました。
ありがとうございました。

お礼日時:2008/01/21 17:38

開発環境や行った手順について具体的な投稿をしましょう



お使いの開発環境やOSのバージョンやどこコントロールを使ったのか
どういった手順でDBと接続しているのか

公開しても支障の無い範囲でコードを公開してみましょう
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
言葉足らずで申し訳ありません。
以下のようになります。

****1.html*****
<form method="POST" action="2.asp">
<SELECT name="bangou">
<OPTION value="1">1</OPTION>
<OPTION value="2">2</OPTION>
<OPTION value="3">3</OPTION>
</OPTION>
</SELECT>
</form>

****2.asp*****
Set db=Server.CreateObject("ADODB.Connection")
db.Provider = "Microsoft.Jet.OLEDB.4.0"
db.ConnectionString = Server.MapPath("3.mdb")
db.open
Set rs = db.Execute("SELECT テーブル3.* FROM テーブル3 WHERE (テーブル3.番号)='" & bangou& "'")

****3.mdb******
テーブル3の番号フィールドのデータ型が「数値型」にすると、
エラーメッセージになります。
「テキスト型」だと問題ありません。

OSはXPprofessional、ACCESSは2003になります。


宜しくお願い致します。

お礼日時:2008/01/21 14:52

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

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

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

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

QAccessの抽出条件

お世話になります。
選択クエリの抽出条件の書き方がわかりません、どなかたお教えください。
質問:基本データ、の数値定義の、登録番号の、4225403~4246003の間の抽出条件で選択クエリの抽出条件セル内にどのように書けばよいでしょうか?

ちなみに私は、&[Forms]![F_抽出条件]![抽出条件]のForms、F_抽出条件、抽出条件、!、[] 等の意味がまったくわからないレベルです。
そのままセルにコピペでOKの形で教えてください。

Aベストアンサー

こんばんは。

>そのままセルにコピペでOKの形で教えてください。
あなたのデータベースのフォーム名とかテキストボックス名が
不明なのでコピペ形式の回答は無理です。

>、&[Forms]![F_抽出条件]![抽出条件]
  「F_抽出条件」というフォームの「抽出条件」というテキストボックスという意味です。
  F_抽出条件」フォームを開いておいて、クエリのデザイン画面から
  抽出条件を右クリックしてビルドでフォーム-読込まれたフォーム
  抽出条件テキストボックスとクリックしていくと簡単に抽出条件が
  入力できますよ。

 ご参考まで。

Qフォームで複数の条件を入力させて、その条件に対してクエリを組みなおして、結果を出力したい

以下のフォームを作成しました。
************1.html************
<form method="POST" action="2.asp">
<table>
<tr>
<td>氏名</td>
<td><input name="simei" file" type="text"></td>
</tr>
<tr>
<td>住所</td>
<td><input name="jusho" file" type="text"></td>
</tr>
<tr>
<td>TEL</td>
<td><input name="tel" file" type="text"></td>
</tr>
</table>
<input type="submit" value="検索">

次に入力された値をクエリに入れて、結果を出力しようとしています。
入力された項目が、
空欄の場合は、条件に入れない、
複数の場合は、条件を複数にする、
というようにしたいです。

************2.asp************
simei = Request.Form("simei")
jusho = Request.Form("jusho")
tel = Request.Form("tel")

Set db=Server.CreateObject("ADODB.Connection")
db.Provider = "Microsoft.Jet.OLEDB.4.0"
db.ConnectionString = Server.MapPath("test.mdb")
db.open

……クエリを1.htmlで入力された条件のみを反映させたい……
……が、その書き方がわからない…………………………………
Set rs = db.Execute("SELECT テーブル名.* FROM テーブル名 WHERE ((テーブル名.氏名)='" & simei & "')")

……条件が”氏名”だけの場合ならできるのですが、フォームで入力された項目のみを反映させる方法がわからない……………………………

………………クエリ結果を出力する………………
Response.Write ("" & rs.Fields.Item("氏名") & "")


宜しくお願いします。

以下のフォームを作成しました。
************1.html************
<form method="POST" action="2.asp">
<table>
<tr>
<td>氏名</td>
<td><input name="simei" file" type="text"></td>
</tr>
<tr>
<td>住所</td>
<td><input name="jusho" file" type="text"></td>
</tr>
<tr>
<td>TEL</td>
<td><input name="tel" file" type="text"></td>
</tr>
</table>
<input type="submit" value="検索">

次に入力された値をクエリに入れて、結果を出力しようとしています。
入力された項目が、
空欄...続きを読む

Aベストアンサー

すべて入力された条件はANDで良いのでしょうか

条件を組み立てる変数を用意しましょう

dim sJouken, flag
flag = false
if simei<>"" then
  sJoken = "[テーブル.氏名]='" & shimei & "' "
end if
if jyusho<>"" then
  if sJouken<>"" then
    sJouken = "( " & sJouken & ") and ( "
    flag = true
  end if
  sJouken = "[テーブル.住所] = '" & jyusho & "' "
  if flag then
    sJouken = sJyouken & " ) "
    flag = false
  end if
end if

if tel<>"" then
  if sJouken<>"" then
    sJouken = "( " & sJouken & ") AND ("
    flag = true
  end if
  sJouken = "[テーブル.電話番号] = '" & tel & "'"
  if flag then
    sJouken = sJouken & ")"
  end if
end if

といった具合に条件を作成してみましょう

すべて入力された条件はANDで良いのでしょうか

条件を組み立てる変数を用意しましょう

dim sJouken, flag
flag = false
if simei<>"" then
  sJoken = "[テーブル.氏名]='" & shimei & "' "
end if
if jyusho<>"" then
  if sJouken<>"" then
    sJouken = "( " & sJouken & ") and ( "
    flag = true
  end if
  sJouken = "[テーブル.住所] = '" & jyusho & "' "
  if flag then
    sJouken = sJyouken & " ) "
    flag = false
  end if
end if

if t...続きを読む

QRT-PCRをするためにRNA抽出をしています。フェノールの後のクロロ

RT-PCRをするためにRNA抽出をしています。フェノールの後のクロロホルムは極性の差を大きくして、水層と油層に分けやすくするためと書いてあったのを見たんですが、この場合のクロロホルムと、本によく載っているフェノール抽出の後のクロロホルム抽出とはまた違う意味なのでしょうか?よろしくお願いします。

Aベストアンサー

ご存知かもしれませんが、フェノールはタンパク質を変性させる疎水性物質で、
細胞膜も破壊します。
私はTRIzolを使っていましたが、柔らかい組織ならvortexでかなり懸濁できます。

フェノールは疎水性とはいえ、OH基があるため若干の水溶性があります。
なので、フェノールと水を混ぜて遠心すると二層に分かれますが、水層にも多少溶けています。フェノールは変性作用があるため、後々のPCR等の酵素反応を阻害してしまいます。
フェノールを使ってタンパク質を変性させ、タンパク質の疎水基を露出させることによって中間層に集めるわけですが、後のことを考えてできるだけフェノールは水層から取り除きたいわけです。

クロロホルムにはフェノールのような変性作用はありませんが強力な疎水性物質なので、フェノール+水の溶液に加えるとフェノールを疎水層にほぼ完璧に溶解させることができます。

なのでRNA抽出でもDNA抽出でもクロロホルムの作用はその強力な疎水性でタンパク質を
中間層に集める作用(これはフェノールでも可)とフェノール自体を水層からできるだけ
除去するという作用があるのだと思います。

ご存知かもしれませんが、フェノールはタンパク質を変性させる疎水性物質で、
細胞膜も破壊します。
私はTRIzolを使っていましたが、柔らかい組織ならvortexでかなり懸濁できます。

フェノールは疎水性とはいえ、OH基があるため若干の水溶性があります。
なので、フェノールと水を混ぜて遠心すると二層に分かれますが、水層にも多少溶けています。フェノールは変性作用があるため、後々のPCR等の酵素反応を阻害してしまいます。
フェノールを使ってタンパク質を変性させ、タンパク質の疎水基を露出させること...続きを読む

Qフォームのチェックボックスの値を次のページで読み込む方法

「1.htm」のフォームでチェックボックスを作成し、
「2.asp」で結果を出力しようとしています。
が、複数チェックを入れるとエラーになります。
どこがまちがっているのでしょうか。
どなかたご教授ください。
宜しくお願いします。

****1.htm****
<form method="POST" action="2.asp">
<INPUT type="checkbox" name="koumoku" value="1">1<br>
<INPUT type="checkbox" name="koumoku" value="2">2<br>
<INPUT type="checkbox" name="koumoku" value="3">3<br>
</form>

****2.asp****
<%
koumoku = Request.Form("koumoku")

If koumoku = 1 then
Response.Write "<p>1111</p>"
End If
If koumoku = 2 then
Response.Write "<p>2222</p>"
End If
If koumoku = 3 then
Response.Write "<p>3333</p>"
End If

****エラーメッセージ******
型が一致しません。: '[string: "1, 2, 3"]'

「1.htm」のフォームでチェックボックスを作成し、
「2.asp」で結果を出力しようとしています。
が、複数チェックを入れるとエラーになります。
どこがまちがっているのでしょうか。
どなかたご教授ください。
宜しくお願いします。

****1.htm****
<form method="POST" action="2.asp">
<INPUT type="checkbox" name="koumoku" value="1">1<br>
<INPUT type="checkbox" name="koumoku" value="2">2<br>
<INPUT type="checkbox" name="koumoku" value="3">3<br>
</form>

****2.asp***...続きを読む

Aベストアンサー

2.asp側で受け取ったデータをよく検証しましょう
POSTメソッドではなく GETメソッドで送ってみるとどのようにデータが構築されるかが URLに記述されます

今回の場合チェックしたのが1つなら koumoku=1とかkoumoku=2といった具合で渡されるので受け取ったデータは『1』『2』といった単独の文字になります
複数チェックした場合は
GETの場合koumoku=1&koumoku=2&koumoku=3のように渡されます
POSTの場合『,』で区切られた『1,2,3』といった文字列で渡されます
受け取ったデータを Splitなどで分解してから比較しましょう

dim ss, ar, w
ss = Request.Form("koumoku")
Response.Write( "ResponseData-koumoku:" & ss & "<br>" )
ar = split(ss, ",")
for each w in ar
  if w = 1 then
    Response.Write("<p>1111</p>")
  end if
  if w = 2 then
    Response.Write("<p>2222</p>")
  end if
  if w = 3 then
    Response.Write("<p>3333</p>")
  end if
next

といった具合です

2.asp側で受け取ったデータをよく検証しましょう
POSTメソッドではなく GETメソッドで送ってみるとどのようにデータが構築されるかが URLに記述されます

今回の場合チェックしたのが1つなら koumoku=1とかkoumoku=2といった具合で渡されるので受け取ったデータは『1』『2』といった単独の文字になります
複数チェックした場合は
GETの場合koumoku=1&koumoku=2&koumoku=3のように渡されます
POSTの場合『,』で区切られた『1,2,3』といった文字列で渡されます
受け取ったデータを Splitなどで分解してから比...続きを読む

Qエクセル2000フィルター抽出条件式について

フィルター抽出条件がうまく抽出出来ません教えてください。
抽出条件式 別シートで作っている。(Bシート) 
巡視日     巡視日
>=2002/05<=2002/07
条件式の意味
2002年5月以上で2002年7月以下のデータを抽出する。
2002年5月以上のデータは抽出できるが、2002年7月が抽出されない
2002年5月と2002年6月しか出てこない。

データベース(Aシート)
C列
巡視日
4月8日
5月11日
5月11日
6月5日
7月4日
7月4日

エクセル操作(データ→フィルター→フィルターオプション設定)で
検索条件範囲を
巡視日     巡視日
>=2002/05<=2002/07
指定してやるとデータベース(Aシート)のC列の抽出が
2002年5月以上のデータは抽出できるが、2002年7月が抽出されない
2002年5月と2002年6月しか出てこない。
何故でしょうかよろしくお願いします。

Aベストアンサー

こんにちは

>2002年5月と2002年6月しか出てこない。
手入力で 2002/5 とか 2002/7 とすると
EXCELが 2002/5/1 や 2002/7/1 と勝手に
判断して変換されている筈です。

2002/7/1以下と指定したのと同様です

月間を抽出するのにそれぞれ違う月末を考えながら
入力するのも面倒な場合は

巡視日    巡視日
>=2002/5/1  <2002/8/1

の方が楽ですね(^^;

Q入力フォームの値をSQLのクエリに代入したい

「1.htm」で入力された値を、次のページ「2.asp」で受け取って、
SQLに代入したいと考えています。
が、うまくいきません。
結果としては、クエリの結果がなく、
データが何も表示されない状態です。
どなたか宜しくお願いします。

****1.htm****

<form method="POST" action="2.asp">
<input name="simei" type="text">
<input type="submit" value="検索">
</form>

****2.asp****

i = "Request.Form("simei")"
Set rs = db.Execute("SELECT * FROM test WHERE ((test.氏名)='i')")

Aベストアンサー

WHERE ((test.氏名)='" & i & "')")
にしてみては?

QExcelのワイルドカードでの抽出で・・・

ワイルドカードの「?」は任意の1文字という意味ですよね?

住所リストからデータの抽出をおこなうのに、渡辺??」という抽出をおこなったところ、「渡辺○○子」「渡辺○○美」などという結果が出てしまいました。

これってどんな原因が考えられますか?

ワイルドカードはきちんと半角で入力してあります。

Aベストアンサー

#1,2のmshr1962です。
すみません。"が1個余計でした。
="=渡辺??"
で抽出できます。

Q次データ取得エラーについて

sea_clear_sky8です。

[環境]
OS 98SE
PWS

[質問内容]
SQL CMD.CommandText = "SELECT * from test_t"
このSQLだと下記のソースの部分が通り、データを表示
させることができます。
でも、
SQL CMD.CommandText = "select * from test_t " & _
"where name like '%" & Request("nm") & "%' " & _
"order by id " & _
"limit " & Request("page_num")*10 & ",10"
だと次データ取得エラーと表示され、エラー番号3251が表示され
二つ目のデータから取得できません。
忙しいところすいませんが、ご教授願います。
エラー番号等で、インターネットで調べましたが、原因がわからない
状態です。よろしくお願いします。

[ソース]
Do UntiL RS.EOF=true

For i = 0 to RS.Fields.Count-1
Response.write RS(i).name
k = RS(i).name + CSTR(RS.bookmark)
Response.write "<input name="&k&" value="&RS(i)&">"

next

Response.write "<BR>"
RS.MoveNext
Loop

sea_clear_sky8です。

[環境]
OS 98SE
PWS

[質問内容]
SQL CMD.CommandText = "SELECT * from test_t"
このSQLだと下記のソースの部分が通り、データを表示
させることができます。
でも、
SQL CMD.CommandText = "select * from test_t " & _
"where name like '%" & Request("nm") & "%' " & _
"order by id " & _
"limit " & Request("page_num")*10 & ",10"
だと次データ取得エラーと表示され、エラー番号3251が表示され
二つ目のデータから取得できません。
忙しいとこ...続きを読む

Aベストアンサー

その構築した SQL自体 MySQLでエラーが起きないのでしょうか?

AccessやMySQLのユーティリティーなど確認してみましょう
# ごめんなさい MySQLには詳しくないので ・・・
limitに与えている引数 または Limitの与え方自体に問題があるのではないかと思います

order by id までなら問題ないのでしょうか

Qニコサウンドで 音声抽出の為の遵守報告

ニコサウンドで、音楽ダウンロードしようとしたら、抽出ボタンがなく

>音声抽出には、音声に著作権上の問題が無い旨の具体的な遵

守報告が必要です<

とありました。これは どういう意味なのでしょうか?

また具体的に報告してください……と 何行か書く欄があったんで

すが、何をどう書けば良いのか迷っています。音声抽出できるよう

にする為には 何をどう書けば良いのか教えて頂けないでしょうか?

音楽配信の知識があまりないので、基本的な質問かもしれませんが

今 困っています

音声抽出できるようになる 方法を 詳しく教えて頂けると

ありがたいです……

Aベストアンサー

二通り考えられます。

1、投稿者によって、抽出出来ないようにロックされている

2、元動画が著作権法、或いはその他法律違反を犯しているため、動画自体が削除されている

原因がわかったところで対処のしようがないのですが…
1の場合なら、「DL-video」(ググってみてください)
というサイトにてニコ動のURLをコピペして一旦PCに動画ごと保存
その後mp3tubeにて変換という方法があります。
(今でも通用するかどうかは不明ですが…)

2の場合ならお手上げです。どうしようもありません

Q入力フォームの入力チェックについて

皆様こんにちは、宜しくお願い致します。

現在、ASP.NET2.0で業務用Webアプリを開発しています。
入力フォームサブミット時の入力チェックについてですが、
Validatorコントロール含むサーバサイドのみでは不十分
なのでしょうか?

職場では、PerlやASP案件はJavascriptを使用してクライアント
サイドとサーバサイドで同様の入力チェックを実装しておりますが、
特に仕様や規約で決まっている訳ではない為、実装理由を上司に
尋ねると「まぁ念の為にね」という回答でした。

その為、今回も念の為にクライアントサイドの入力チェックも
実装しようという事ですが、私としましては工数が増えるだけで
同様のチェックを両サイドで行うメリットが分かりません。

職場は小さい会社で、初めてのASP.NET案件の為、他に経験者が
おらず困っています。

ケースバイケース、という事もあるかと思いますが、ASP.NET
もしくはWebアプリ開発の一つの手法として、経験者様からの
アドバイスを頂戴致したく、宜しくお願い致します。

皆様こんにちは、宜しくお願い致します。

現在、ASP.NET2.0で業務用Webアプリを開発しています。
入力フォームサブミット時の入力チェックについてですが、
Validatorコントロール含むサーバサイドのみでは不十分
なのでしょうか?

職場では、PerlやASP案件はJavascriptを使用してクライアント
サイドとサーバサイドで同様の入力チェックを実装しておりますが、
特に仕様や規約で決まっている訳ではない為、実装理由を上司に
尋ねると「まぁ念の為にね」という回答でした。

その為、今回も念の為に...続きを読む

Aベストアンサー

サーバ側の入力値チェックは必須かつ入念に行うべきですが、クライアント側のそれは、入念である必要はないでしょう。

個人的には、クライアント側のチェックは使い勝手のひとつと見なしています。
どんな環境でも、サーバのチェックー>クライアントへの画面返信は時間が掛かります。ユーザとしては「送信」ボタンを押したら即座に結果を知りたいところです。
たとえば、必須欄を空欄のまま送信ボタンを押したら、クライアント側で即座に入力を促すメッセージを出した方がユーザにとってはうれしいはずです。
状況によりますが、「こんな簡単なことをいちいちサーバに聞きに行くのか?」とユーザに思われない程度にチェックすればよいのではないでしょうか?


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

人気Q&Aランキング

おすすめ情報