Я пытаюсь открыть хранимую процедуру SQL, содержащую таблицу «Выбрать верхнюю 5 * форму», и загрузить данные в таблицу Access Table3. Как установить свойство ActiveSonnection объекта Command для использования текущей базы данных доступа? , когда я предоставляю ему фактическую строку подключения, он говорит, что пользователь заблокировал ее. На данный момент он запускается и печатает, распечатывает результаты, но не вставляет значения. Это тоже не дает мне ошибки.VBA Access, записывающий данные с SQL-сервера в Access DB
'Use this code to run the SP and extract all the records
Public Sub ExecuteSPAsMethod2()
Dim rsData As ADODB.Recordset
Dim sConnectSQL As String 'to create connection to SQL Server
Dim sConnectAccess As String 'to create connection with Access DB (may not be neccessary)
Dim objCommand As ADODB.Command 'for INSERT results of SP into Access table
'Creating the connection string to SQL server
sConnectSQL = "Provider=SQLOLEDB;Data Source=MYSERVER; " & _
"Initial Catalog=SQLDatabase;Integrated Security=SSPI"
'Creating the Connection object and Recordset object
Set objConn = New ADODB.Connection
Set rsData = New ADODB.Recordset
'Opening the connection
objConn.Open sConnectSQL
'Execute the SP and give the results to the Recordset
objConn.SurveyDataSP "4", rsData
Do While Not rsData.EOF
Debug.Print rsData!Stratum
rsData.MoveNext
Loop
'Now write the data into Access Table
'Create connection string to Access DB table
'sConnectAccess = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=C:\Databse1.accdb;" & _
"Mode = Share Exclusive"
'Command object to be used for Access SQL query
Set objCommand = New ADODB.Command
'objCommand.ActiveConnection = sConnectAccess
'Insert new record in the DB
'Load the SQL string into the command object
Do While Not rsData.EOF
objCommand.CommandText = "INSERT INTO table3 (" & rsData!Stratum & ")"
objCommand.Execute
rsData.MoveNext
Loop
End Sub
http://msdn.microsoft.com/en-us/library/office/aa164887(v=office.10).aspx –
Не уверен, но может быть проблемой с тем, как вы открываете свою БД доступа. Как прокомментировать все данные соединения для Access и заменить код, в который вы вставляете «CurrentProject.Connection.Execute» Insert ... » –