Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Createparameter VBA не может принять пустое значение для SQL - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Createparameter VBA не может принять пустое значение для SQL (Макросы/Sub)
Createparameter VBA не может принять пустое значение для SQL
Elhust Дата: Понедельник, 03.04.2017, 14:35 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 184
Репутация: -1 ±
Замечаний: 0% ±

Excel 2010
У меня
[vba]
Код

If OptionButton2.Value = True Then
Set Conn3 = New ADODB.Connection
Conn3.ConnectionString = "driver={SQL Server};server=7.7.3.1;uid=" & UserForm1.TextBox1.Text & ";pwd=" & UserForm1.TextBox2.Text & ";database=MainDWH"
Conn3.Open
On Error Resume Next
With ThisWorkbook.Worksheets(1)
lLastrow = Cells(Rows.Count, 1).End(xlUp).Row
i = 1
For Each iCell In .Range("A2", Cells(lLastrow, 1))
i = i + 1
If Cells(i, 63) <> "" Then GoTo Point3
lastName = iCell                   'Фамилия
firstName = iCell.Offset(0, 1)     'Имя
secondName = iCell.Offset(0, 2)    'Отчество
birthDate = iCell.Offset(0, 4)     'Датарождения
sex = iCell.Offset(0, 6)           'Пол
oldFIO = iCell.Offset(0, 3)
birthPlace = iCell.Offset(0, 5)
Set cmd3 = New ADODB.Command
     With cmd3
          .ActiveConnection = Conn3
          .Parameters.Append cmd1.CreateParameter("@lastName", adBSTR, adParamInput, Value:=lastName)
         .Parameters.Append cmd1.CreateParameter("@firstName", adBSTR, adParamInput, Value:=firstName)
         .Parameters.Append cmd1.CreateParameter("@secondName", adBSTR, adParamInput, Value:=secondName)
         .Parameters.Append cmd1.CreateParameter("@birthDate", adDBTimeStamp, adParamInput, Value:=birthDate)
         .Parameters.Append cmd1.CreateParameter("@sex", adBSTR, adParamInput, Value:=sex)
         .Parameters.Append cmd1.CreateParameter("@oldFIO", adBSTR, adParamInput, Value:=oldFIO)
         .Parameters.Append cmd1.CreateParameter("@birthPlace", adBSTR, adParamInput, Value:=birthPlace)
          .CommandType = adCmdStoredProc
          .CommandText = "port.sp_AfsSOAP_RequestTEST_BP"
     End With
     Set rs3 = cmd3.Execute()
     Cells(i, 63).CopyFromRecordset rs3
     rs3.Close
Point3:
Next
End With
End If
[/vba]

ошибка о том что процедура не может принять пустую ячейку , но соль в том что в пятницу у меня всё работало когда стояло On Error Resume Next а сейчас даже если поставить то просто ничего не выводит (


Каждый сам выбирает правила игры
 
Ответить
СообщениеУ меня
[vba]
Код

If OptionButton2.Value = True Then
Set Conn3 = New ADODB.Connection
Conn3.ConnectionString = "driver={SQL Server};server=7.7.3.1;uid=" & UserForm1.TextBox1.Text & ";pwd=" & UserForm1.TextBox2.Text & ";database=MainDWH"
Conn3.Open
On Error Resume Next
With ThisWorkbook.Worksheets(1)
lLastrow = Cells(Rows.Count, 1).End(xlUp).Row
i = 1
For Each iCell In .Range("A2", Cells(lLastrow, 1))
i = i + 1
If Cells(i, 63) <> "" Then GoTo Point3
lastName = iCell                   'Фамилия
firstName = iCell.Offset(0, 1)     'Имя
secondName = iCell.Offset(0, 2)    'Отчество
birthDate = iCell.Offset(0, 4)     'Датарождения
sex = iCell.Offset(0, 6)           'Пол
oldFIO = iCell.Offset(0, 3)
birthPlace = iCell.Offset(0, 5)
Set cmd3 = New ADODB.Command
     With cmd3
          .ActiveConnection = Conn3
          .Parameters.Append cmd1.CreateParameter("@lastName", adBSTR, adParamInput, Value:=lastName)
         .Parameters.Append cmd1.CreateParameter("@firstName", adBSTR, adParamInput, Value:=firstName)
         .Parameters.Append cmd1.CreateParameter("@secondName", adBSTR, adParamInput, Value:=secondName)
         .Parameters.Append cmd1.CreateParameter("@birthDate", adDBTimeStamp, adParamInput, Value:=birthDate)
         .Parameters.Append cmd1.CreateParameter("@sex", adBSTR, adParamInput, Value:=sex)
         .Parameters.Append cmd1.CreateParameter("@oldFIO", adBSTR, adParamInput, Value:=oldFIO)
         .Parameters.Append cmd1.CreateParameter("@birthPlace", adBSTR, adParamInput, Value:=birthPlace)
          .CommandType = adCmdStoredProc
          .CommandText = "port.sp_AfsSOAP_RequestTEST_BP"
     End With
     Set rs3 = cmd3.Execute()
     Cells(i, 63).CopyFromRecordset rs3
     rs3.Close
Point3:
Next
End With
End If
[/vba]

ошибка о том что процедура не может принять пустую ячейку , но соль в том что в пятницу у меня всё работало когда стояло On Error Resume Next а сейчас даже если поставить то просто ничего не выводит (

Автор - Elhust
Дата добавления - 03.04.2017 в 14:35
anvg Дата: Вторник, 04.04.2017, 09:03 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 581
Репутация: 271 ±
Замечаний: 0% ±

2016, 365
Доброе время суток.
Попробуйте варианты
 
Ответить
СообщениеДоброе время суток.
Попробуйте варианты

Автор - anvg
Дата добавления - 04.04.2017 в 09:03
Elhust Дата: Вторник, 04.04.2017, 11:29 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 184
Репутация: -1 ±
Замечаний: 0% ±

Excel 2010
оказывается просто в хранимой процедуре нужно было входящую переменную приравнять к нулл "@sex nvarchar(20)=null" и всё работает )


Каждый сам выбирает правила игры
 
Ответить
Сообщениеоказывается просто в хранимой процедуре нужно было входящую переменную приравнять к нулл "@sex nvarchar(20)=null" и всё работает )

Автор - Elhust
Дата добавления - 04.04.2017 в 11:29
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Createparameter VBA не может принять пустое значение для SQL (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!