- ベストアンサー
Access2002での未定義関数エラーとは?
- Access2002のSQLビューでinsert関数が未定義関数となり、エラーが発生しています。具体的には、テーブルのフィールドにハイフンを追加するためにinsert関数を使用していますが、結果として未定義関数エラーが表示されます。
- insert関数をReplace関数に変更すると、エラーは表示されなくなりますが、表示画面ではエラーが表示されます。insert関数の構文が適切でないためにエラーが発生している可能性があります。
- SQLを使用しているため、初めて未定義エラーが発生しており、戸惑っています。構文の確認や他の関数の使用などを試してみることで問題解決の手がかりが得られるかもしれません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Excel、或いはその他のプログラミングなどをされた経験がある方でしょうか。 > SQLを使っていて、『未定義』とアラートが出たのは初めてですので、戸惑っています。 Accessには、Insertという関数がない(=定義されていない)ため、ご質問のエラーが 発生しています。 また、Excelのワークシート関数のReplaceとAccessのReplace関数とでは、引数の 内容が異なります。 【Excel】 REPLACE(文字列, 開始位置, 文字数, 置換文字列) http://office.microsoft.com/ja-jp/excel/HP100625741041.aspx →位置と文字数を指定 【Access】 Replace(文字列, 検索文字列, 置換文字列, (開始位置, 文字数, 比較モード)) http://office.microsoft.com/ja-jp/access/HA012288981041.aspx →置換前の文字と置換後の文字を指定(おおまかには) 第4引数まで指定した場合、Excelの方では第4引数には文字列型のデータが 指定されますが、Accessの方では数値型が要求されますので、恐らくそこで 型不一致によるエラーが発生しているのではないかと推測します。 念のため、上記の引数をご確認の上、式を見直してみてください。 ・・・ただ、AccessのReplace関数では、今回の目的は達せられないのではないかと いう気がします(汗) (但し詳細未検討) Insert関数の第2引数に「2」を指定していることからすると、恐らくハイフンは常に 2番目に追加、ということだと思いますので、Left関数とMid関数を組み合わせでも いけるかと思いますので、参考まで: Left(ランク!順位, 1) & "-" & Mid(ランク!順位, 2) As ランキング ※Excelのワークシートと違い、「&」の前後には半角スペースが必須ですので、 合わせてご注意下さい。
その他の回答 (1)
- piroin654
- ベストアンサー率75% (692/917)
Rplace関数では指定や置換する文字列は "文字列" のように囲みます。
お礼
>Accessには、Insertという関数がない(=定義されていない) そうだったのですか、出来ない筈ですね。 >また、Excelのワークシート関数のReplaceとAccessのReplace関数とでは、引数の内容が異なります。 >Left(ランク!順位, 1) & "-" & Mid(ランク!順位, 2) As ランキング ありがとうございます。出来ました。 >Excelのワークシートと違い、「&」の前後には半角スペースが必須 Excelをよく使うため、どうしても同じ感覚でいってしまいます。 エラーが出てから、式を継ぎ接ぎして対処していく癖があるので、気をつけたいです。 感謝します。