通过OracleInProcServer连接更新Excel VBA宏SQL语句
我试图用OraSession=CreateObject(“OracleInProcServer.XOraSession”)然后用OraDatabase对象从vba marco更新Oracle表。我可以插入和选择数据,但尚未找到可用的Update语句通过OracleInProcServer连接更新Excel VBA宏SQL语句,excel,vba,oracle,Excel,Vba,Oracle,我试图用OraSession=CreateObject(“OracleInProcServer.XOraSession”)然后用OraDatabase对象从vba marco更新Oracle表。我可以插入和选择数据,但尚未找到可用的Update语句 Set OraSession = CreateObject("OracleInProcServer.XOraSession") Set OraDatabase = OraSession.DbOpenDatabase("xxxx", "
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase = OraSession.DbOpenDatabase("xxxx", "xxx/xxx", 0&)
Set ws1 = Sheets("Sample Request Form")
eln_ref = ws1.Cells(7, 3).value
expd = ws1.Cells(2, 3).value
exp_date = Format(expd, "dd-mmm-yy")
str = " Update Table SET EXP_DATE = '" & exp_date & "' WHERE EXP_ID = '" & eln_ref & "'"
OraDatabase.Executesql (str)
我已经获取了字符串并在SQLDeveloper中运行了它,它运行了更新。但它确实会更新,但在通过excel执行时也不会出错。我也尝试过使用CreateSQL方法,但是.Executesql方法不接受其输出
Oracle数据库对象信息:
有什么想法吗 离题,但您不应该将文本作为sql中的参数。使用正确的绑定参数。什么是正确的绑定参数?文字是我在“”之间的常量,对吗@OldProgrammer您为ExecuteSQL方法文档提供的链接用一个示例解释了它。您是指.BeginTrans和.CommitTrans吗?我添加了那些没有变化的。但是谢谢你的提示。