powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / QueryTable c параметром. Помогите, кто знает
6 сообщений из 6, страница 1 из 1
QueryTable c параметром. Помогите, кто знает
    #32104396
0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
0
Гость
Я в VB практически ноль, поэтому прошу о помощи.

Я написал:

sqlstring = "select * from Tabl"
connstring = _
"ODBC;DSN=myDB;UID=Rep21;PWD=NUyHwYQI;Database=myDB"
With
ActiveSheet.QueryTables.Add(Connection:=connstring, _
Destination:=Range("A1"), Sql:=sqlstring)
. Refresh
End With

и все прекрасно работает, хотя я не знаю что такое
UID=Rep21; и PWD=NUyHwYQI;

Все что я хочу пока - добавить в select where c параметром, но не знаю как это сделать.
...
Рейтинг: 0 / 0
QueryTable c параметром. Помогите, кто знает
    #32104885
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UID - имя пользователя
PWD - пароль
задаются, если для доступа к данным требуется аутентификация.

добавить в select where c параметром
1.можно записать строкой
Код: plaintext
1.
2.
Dim k As Integer
...
 "SELECT * FROM TABL WHERE TABL.FLD1="  & k

2.можно использовать параметрические запросы (более удобно в ADO, а не в ODBC)
...
Рейтинг: 0 / 0
QueryTable c параметром. Помогите, кто знает
    #32104943
0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
0
Гость
Спасибо.

1. Уже светлее.
Хотя на самом деле мне нужно запустить процедуру SQL с параметрами.
Я правда сформировал уже программно запрос SQL как текстовую строку и все работатет, но это какое-то извращение все же.

2. >более удобно в ADO, а не в ODBC
Да в общем я это тоже почуствовал. Но где бы про это в Инете почитать?
...
Рейтинг: 0 / 0
QueryTable c параметром. Помогите, кто знает
    #32105227
Фотография Gulchatay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для этих целей используется объект Command и Parameter
вот есть пример, можно обойтись без Connection


dim Cn as adodb.Connection
Dim Rs As New ADODB.Recordset
Dim Comm As New ADODB.Command
Dim par As New ADODB.Parameter
Dim ConStr As String

ConStr = "Provider=SQLOLEDB.1;" & _
"Integrated Security=SSPI;" & _
"Persist Security Info=False;" & _
"Initial Catalog=DateBaseName;" & _
"Data Source=ServerName"

With Cn
.ConnectionString = ConStr
.Open
End With
On Error GoTo ErrLabel
With Comm
.ActiveConnection = Cn
.CommandText = "sp_FindData"
.CommandType = adCmdStoredProc
.Prepared = True
.Parameters.Refresh
.Parameters(1) = StreetName
.Parameters(2) = HomeName
End With
Set par = Comm.CreateParameter("Street", adChar, _
adParamInput, Len(StreetName), StreetName)
Comm.Parameters.Append par
Set par = Comm.CreateParameter("Home", adChar, _
adParamInput, Len(HomeName), HomeName)
Comm.Parameters.Append par

Set Rs = Comm.Execute()
...
Рейтинг: 0 / 0
QueryTable c параметром. Помогите, кто знает
    #32105231
Фотография Gulchatay
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Увидела неточность в своем примере:
on error goto... нужно перенести перед With cn
...
Рейтинг: 0 / 0
QueryTable c параметром. Помогите, кто знает
    #32105296
кузя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Gulchatay
а если не секрет, зачем ты делаешь CreateParameter & Append ? вроде бы после Parameters.Refresh все параметры уже построены и добавлены ?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / QueryTable c параметром. Помогите, кто знает
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]