掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Jet Engineに対しSQL内でユーザー定義関数を使うには (ID:138196)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
初めて投稿します。JMENOと申します。よろしくお願いします。 環境 WindowsXP Pro SP2 +VB6 SP6 (ただし、VS2005 SP1をインストール済みの環境)なお、msjet40.dllのバージョンは4.00.8618.0です。 AccessはVer2002 SP3です。 VBで作成したFunctionをSQLに埋め込む際のエラーへの超基本的な質問です。 ユーザー定義関数として値を返すFunc1を作成します。 (コード) ■標準モジュール Public cnn As ADODB.Connection Public Function Func1(intI As Integer) As Integer If intI = 1 Then Func1 = intI * 10 Else Func1 = intI * 100 End If End Function ■Form1 Private Sub Form_Load() Dim strCnn As String Set cnn = New ADODB.Connection strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _ & App.Path & "\dbTest.mdb" cnn.ConnectionString = strCnn cnn.Open End Sub Private Sub Command1_Click() Call UpdateData End Sub Private Sub UpdateData() Dim strSQL As String strSQL = "UPDATE tableA Set Col2=Func1(Col1)" '→ここで実行時エラー -2147217900(80040e14) '式に未定義関数 'Func1' があります。 cnn.Execute (strSQL) End Sub この状態で実行すると「式に未定義関数 'Func1' があります」の実行時エラーが発生します。 最近、Jetを使う機会がなく、以前はJetでも関数埋め込みはできたはずだと思い、ネットを探しますが、答えがわからず投稿させていただきました。 なお、Registry HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\engines\SandboxModeの値は0に設定しています。 http://support.microsoft.com/?scid=kb%3Bja%3B239482&x=17&y=14 当然ですが、Accessの中に上記の処理を書くと問題なく実行できます。 VBのファンクションを含んでのSQL操作は無理だったでしょうか? (SELECT文内に埋め込んでも結果は一緒です。)
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.