[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/10/13(Fri) 17:10
投稿者名:MINOFSKY
Eメール:
URL :
タイトル:
VBからMDBにODBC接続でREPLACE関数を使用したい
VBからACCESSへODBC接続で
select REPLACE(A,"MMM","NNN") AS B from C

というSQL文を実行しようとするとエラーを出してREPLACE関数が使えません。

ACCESS内でこのSQLを実行すると正常に動作します


どうすればVBからACCESSへODBC接続でREPLACE関数を使用することができますか?

何か解決策があればお願いします。
ものすごく困っています。

投稿時間:2006/10/13(Fri) 17:58
投稿者名:GOD
Eメール:
URL :
タイトル:
Re: VBからMDBにODBC接続でREPLACE関数を使用したい
> VBからACCESSへODBC接続で
> select REPLACE(A,"MMM","NNN") AS B from C
>
> というSQL文を実行しようとするとエラーを出してREPLACE関数が使えません。
>
なんてエラーが出ますか?
プログラム中にどのように書いてますか?
" を ' に変更したらうまくいくとか?

投稿時間:2006/10/13(Fri) 20:48
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: VBからMDBにODBC接続でREPLACE関数を使用したい
> select REPLACE(A,"MMM","NNN") AS B from C

文字列操作の場合、REPLACE の第6引数(比較モード)を、明示的に指定してください。

0 … vbBinaryCompare (バイナリ比較)
1 … vbTextCompare (テキスト比較)
2 … vbDatabaseCompare (Access専用)

http://www5f.biglobe.ne.jp/~f-lap/others_3.htm


それで駄目なようであれば、SandBox モードが有効になっていないか、
レジストリの設定を確認してみてください。
http://support.microsoft.com/kb/239482/JA/

投稿時間:2006/10/18(Wed) 15:25
投稿者名:MINOFSKY
Eメール:
URL :
タイトル:
Re^2: VBからMDBにODBC接続でREPLACE関数を使用したい
返信ありがとうございます。遅くなってもうしわけございません。
> > select REPLACE(A,"MMM","NNN") AS B from C
>
> 文字列操作の場合、REPLACE の第6引数(比較モード)を、明示的に指定してください。
>
> 0 … vbBinaryCompare (バイナリ比較)
> 1 … vbTextCompare (テキスト比較)
> 2 … vbDatabaseCompare (Access専用)

VBで
SQL文内のREPLACEを実行していて第6引数がありません
詳細なコードを書くと
Dim gdbMain              As New ADODB.Connection
Dim SQLBUFF AS String

---gdbMainの設定

SQLBUFF="SELECT REPLACE(A,' ','') AS 空白除去結果 FROM C"
Set recMain = gdbMain.Execute(SQLBUFF)

というプログラムを実行すると
式に未定義関数'REPLACE'がありません。とメッセージがでます。

たびたびもうしわけないですが、他にREPLACE関数使用する方法はありませんか?

> それで駄目なようであれば、SandBox モードが有効になっていないか、
> レジストリの設定を確認してみてください。
のレジストリの内容を変更しましたが、変化はありませんでした。

投稿時間:2006/10/18(Wed) 16:18
投稿者名:YK
Eメール:
URL :
タイトル:
Re^3: VBからMDBにODBC接続でREPLACE関数を使用したい
こんにちは。

確かREPLACE関数はMDBのクエリー内では使用出来なかったです。
Acc2Kですが。

Functionを作成してその中でReplaceを使用して戻す事をやりました。

投稿時間:2006/10/18(Wed) 17:50
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^4: VBからMDBにODBC接続でREPLACE関数を使用したい
Microsoft Access 経由で実行する場合は、REPLACE 関数を SQL 中で使用できます。
# ただし、Replace関数(VB)と REPLACE関数(Jet)は、微妙に仕様が異なるので要注意。

一方、Access 以外(VB6 等)から利用できるかは、環境依存とされれいます。
DLLの細かいバージョン等にも依存しますので、基本的には「使えない」と思った方が良いでしょう。

投稿時間:2006/10/19(Thu) 16:21
投稿者名:MINOFSKY
Eメール:
URL :
タイトル:
Re^5: VBからMDBにODBC接続でREPLACE関数を使用したい
YKさん魔界の仮面弁士さん返信ありがとうございます。

代替案を考えてみることにします。

返信してくださった方々、本当にありがとうございます。