VBAを使用してAccess 2013でストアドプロシージャを実行しようとしています。 64ビット版Windows 10(32ビット版Access 2013)(企業標準では変更できません)Microsoft Access:ストアドプロシージャを実行し、DAOを使用して結果を返す - エラー
SQL Serverへの接続2008
これはとても難しいですが、私はちょうどそれを動作させることができない理由はわかりません!
私はのSQLExecという名前の汎用機能があります:私は、パラメータを持つプロシージャ名を渡ししようとするが、それは常に失敗し
Public Function SQLExec(SQL as String) As DAO.Recordset
Dim Rs As DAO.Recordset
Dim MyDB As DAO.DATABASE
Debug.Print SQL
On Error GoTo SQLExecErr
Set MyDB = CurrentDb
Set Rs = MyDB.OpenRecordset(SQL, dbOpenSnapshot, dbSQLPassThrough)
Set SQLExec = Rs
CleanUp:
Set Rs = Nothing
Set MyDB = Nothing
Exit Function
SQLExecErr:
Debug.Print Err.Number, Err.Description
MsgBox "Error " & Err.Number & " in SQLExec: '" & Err.Description & ".'", vbOKOnly + vbCritical, "Error in SQLExec"
If IsDeveloper() Then
Stop
Resume
Else
Resume CleanUp
End If
End Function
を。
sReplaceDevice 'AA000000', 1000, 'AA000000', 'AA000001', 19"
エラー:
Error 3129 in SQLExec: 'Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'..'
は私がEXECUTE
とPROCEDURE
を付加しようとした - 同じ結果を。私はクエリにパラメータIDを追加しようとしました(@ param1 = 'test'など)。 - 同じ結果です。
誰にも提案はありますか?私はこれがとても難しいと思っています。
EDIT:この質問は別の質問の重複としてマークされています。まず、他の質問へのリンクが提供されていればいいと思います。第2に、私はこの質問を検索して検索し、いくつかの解決策を考え出しました。StackOverflowのものからは、いくつかの解決法がありました。どんな入力も感謝します。
重複はどこですか?私はスタックオーバーフローを検索し、他の同様の質問を見つけましたが、それらのソリューションはどちらも動作しません。 –
質問の上部にある「重複」バナーには、[リンク](http://stackoverflow.com/questions/40530836/invalid-sql-statement-error-when-trying-to-execute-sql-server-ストアドプロシージャ)。 –
'Set Rs = CurrentDb.OpenRecordset(SQL、dbOpenSnapshot、dbSQLPassThrough)'を実行することはできません。 - ODBC接続文字列はどこから来ますか? PassThroughクエリが必要です。 – Andre