У меня есть проект, где мне нужно отправить данные из электронной таблицы Excel в базу данных Oracle.экспорт из Excel в Oracle
Вот код, который я использую, но он не работает, я получаю ошибки в операторах strSQL
во втором строковом выражении. Я пытаюсь использовать имя диапазона Excel в Insert
или Update
в базу данных Oracle.
Const hostName = "host"
Const portNo = "port"
Const srvSID = "SID"
Const usrID = "username"
Const usrPwd = "password"
Sub ADOInsert()
Dim cnAdo As ADODB.Connection
Dim strConnString As String
Dim strSQL As String
Dim ws1 As Excel.Worksheet
'set the worksheet:
Set ws1 = ThisWorkbook.Worksheets("IMPDATA")
Dim Imprange As Range
Set Imprange = ws1.Range("a2:d6")
strDriver = "Driver={Microsoft ODBC for Oracle};"
strParams = "CONNECTSTRING=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=" + hostName + ")(PORT=" + portNo + "))(CONNECT_DATA=(SID=" + srvSID + ")));"
strUser = "UID=" + usrID + ";PWD=" + usrPwd + ";"
strConnString = strDriver + strParams + strUser
Set cnAdo = New ADODB.Connection
cnAdo.Open strConnString
'/ this is hardcoded for number of rows and columns.
For lngRow = 1 To 10
strSQL = "Insert Into TESTDATA1"'/
strSQL = strSQL & "'" & Range(Imprange, 1).Value & "', " '/ REQUEST_NUMBER
strSQL = strSQL & "'" & Range(Imprange, 2).Value & "', " '/ CID
strSQL = strSQL & "'" & Range(Imprange, 3).Value & "', " '/ SERVER_TYPE
strSQL = strSQL & "'" & Range(Imprange, 4).Value & "' " '/ COST
cnAdo.Execute strSQL
Next
cnAdo.Close
Set cnAdo = Nothing
End Sub
Добро пожаловать в SO! Мы больше здесь, чтобы помочь с ошибками, которые вы получаете, и, конечно, не здесь, чтобы писать для вас. Я предлагаю искать онлайн-путеводитель и следить за ним. Мы можем помочь с любыми проблемами, с которыми вы сталкиваетесь на этом пути. Просьба также пройти через этот [Контрольный список вопросов] (https://meta.stackoverflow.com/questions/260648/stack-overflow-question-checklist), который поможет вашим вопросам получить более ценные ответы и внимание. – ti7