Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / QueryTable c параметром. Помогите, кто знает / 6 сообщений из 6, страница 1 из 1
11.02.2003, 11:22
    #32104396
0
0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
QueryTable c параметром. Помогите, кто знает
Я в 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
12.02.2003, 08:02
    #32104885
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
QueryTable c параметром. Помогите, кто знает
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
12.02.2003, 10:07
    #32104943
0
0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
QueryTable c параметром. Помогите, кто знает
Спасибо.

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

2. >более удобно в ADO, а не в ODBC
Да в общем я это тоже почуствовал. Но где бы про это в Инете почитать?
...
Рейтинг: 0 / 0
12.02.2003, 15:32
    #32105227
Gulchatay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
QueryTable c параметром. Помогите, кто знает
Для этих целей используется объект 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
12.02.2003, 15:36
    #32105231
Gulchatay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
QueryTable c параметром. Помогите, кто знает
Увидела неточность в своем примере:
on error goto... нужно перенести перед With cn
...
Рейтинг: 0 / 0
12.02.2003, 16:36
    #32105296
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
QueryTable c параметром. Помогите, кто знает
>Gulchatay
а если не секрет, зачем ты делаешь CreateParameter & Append ? вроде бы после Parameters.Refresh все параметры уже построены и добавлены ?
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / QueryTable c параметром. Помогите, кто знает / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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