通过OracleInProcServer连接更新Excel VBA宏SQL语句

通过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", "

我试图用OraSession=CreateObject(“OracleInProcServer.XOraSession”)然后用OraDatabase对象从vba marco更新Oracle表。我可以插入和选择数据,但尚未找到可用的Update语句

    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吗?我添加了那些没有变化的。但是谢谢你的提示。