プロが教えるわが家の防犯対策術!

SQL文の抽出条件にフォームのオプション値をいれているのですがエラーがでます「VarChar型をINT型に変換できません」  なぜでしょう。
= CONVERT (int, 'Forms ! MainCommunication_F ! Frm_1')でグリッドに設定しています。

A 回答 (3件)

まずVBAとSQLの2つのプログラムコードがあることを理解してください。


Forms!・・・はVBAの記述、convertはSQLの記述ですよね。SQLのconvert関数の中にVBAの記述をしても理解できません。SQLにわたすとき、つまりSQL文の変数を作るときにそのへんを考慮します。

具体的には
sql = "項目名 = " & forms("MainCommunication_F").controls("Frm_1")

とすればいけるんじゃないでしょうか。
    • good
    • 0

フォームのMainCommunicationにあるFrm_1のオブジェクトには何が書かれているのでしょう。


Verchar型の文字列が書かれているのでしょうか。
アクセスならば =Cint(Forms![MainCommunication_F]![Frm_1]) で強制的に数値型に変更できますが、オブジェクトの内容によってはエラーになります。
数値以外の文字列が入っている場合は変換できません。

この回答への補足

ありがとうございます。
書かれてくるのはトグルボタンのオプション値です。
ディフォルトは数字の1です。
あと、ACCESSのADP(プロジェクト)です。
ADPもACCESSもフォームの取り扱いは同じですか?

補足日時:2005/07/18 19:11
    • good
    • 0

SQLSERVERじゃないですよね。

アクセスでしょうか?
ここで間違っているところはForms!MainComminication_F!Frm_1がリテラルで囲まれていて文字列として認識されているところです。
Forms![MainComminication_F]![Frm_1]としたらフォームの値を取ってくると思いますよ。

この回答への補足

Forms![MainComminication_F]![Frm_1]のように記入すると「式にデータ型エラーがあります」とエラーがでてクエリーを保存できません

補足日時:2005/07/18 13:14
    • good
    • 0
この回答へのお礼

ありがとうございます。
参考にさせていただきます。

お礼日時:2005/08/18 15:45

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

関連するカテゴリからQ&Aを探す