Сбой хранимой процедуры Excel VBA в SQL на основе переменной в Excel

#sql #excel #vba #odbc

Вопрос:

У меня есть инструкция VBA, которая вызывает хранимую процедуру на основе 5 — символьной буквенно AGENTID -цифровой .

Соответствующий VBA

 Dim CD As Date
Dim CT As Date
Dim AGENTID As String

SCMD = "legacy.MSAT_DISPUTE_LOAD " amp; _
    "@CD = '" amp; CD amp; " 00:00:00" amp; "', " amp; _
    "@CT = '" amp; "12/30/1899 " amp; CT amp; "', " amp; _
    "@AGENTID = " amp; AGENTID 
cn.Execute SCMD
 

Соответствующий SQL

     @CD datetime, @CT datetime, @AGENTID nvarchar(10)
    
    insert into Legacy.MSAT_Dispute
    
    Select calldate, calltime, AgentID, Q2MSR, Oracle_id,1 as dispute, GETDATE() as DISP_DATE 
    from Custom.msat_combo 

Where CallDate = @CD and CallTime = @CT and AgentID = @AGENTID 
 

Нет проблем, когда переменная AGENTID состоит из одних цифр, нет проблем, когда переменная AGENTID начинается с буквы… проблема возникает, когда AGENTID начинается с 1, затем пример буквы «1A600», затем при cn.Execute SCMD запуске я получаю ошибку во время выполнения

Неправильный синтаксис рядом с «A600»

Мне нужно решение для решения этой проблемы, не уверен, преобразует ли соединение его в шестнадцатеричное число или что-то еще. Любые мысли или помощь приветствуются

Комментарии:

1. Может быть, попробуйте «@AGENTID = ‘» amp; AGENTID amp; «‘»