Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Туплю с запросом / 24 сообщений из 24, страница 1 из 1
25.05.2018, 13:58
    #39649912
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Туплю с запросом
И так, напрямую подключаюсь к таблице сервера, но не могу получить данные таблицы
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Public Sub main()
    Dim cnt As ADODB.Connection
    Dim etp, msk As Object
    Set etp = CreateObject("ADODB.Recordset")
    Set msk = CreateObject("ADODB.Recordset")
Set cnt = New ADODB.Connection
cnt.ConnectionString = "ODBC;Description=test;Driver=SQL Server; SERVER=rtvs-sql1204.local;APP=Microsoft Office 2010; UID=user;PWD=111111;DATABASE=db_production;TABLE=dbo_tehpro_tblprocessdefinitions"
'конектимся прямо к таблице
cnt.Open
Ask = "SELECT [subdivision], [master], [code], [element_def] FROM [dbo_tehpro_tblprocessdefinitions]"
Set etp = cnt.Execute(Ask)
cnt.Close
End Sub


Что я делаю не так?
...
Рейтинг: 0 / 0
25.05.2018, 14:00
    #39649916
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Туплю с запросом
Говорит что не находит таблицу, хотя я её открываю.
...
Рейтинг: 0 / 0
25.05.2018, 15:00
    #39649962
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Туплю с запросом
BlackeAngelГоворит что не находит таблицу, хотя я её открываю.1) На каком операторе? в какой именно форме - всплывающее окно?

Действительно ли в БД по имени db_production имеется таблица с именем dbo_tehpro_tblprocessdefinitions?

Что значат слова "я её открываю"?
...
Рейтинг: 0 / 0
25.05.2018, 22:10
    #39650160
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Туплю с запросом
AkinaBlackeAngelГоворит что не находит таблицу, хотя я её открываю.1) На каком операторе? в какой именно форме - всплывающее окно?

Действительно ли в БД по имени db_production имеется таблица с именем dbo_tehpro_tblprocessdefinitions?

Что значат слова "я её открываю"?
По порядку:
На этапе
Код: vbnet
1.
Set etp = cnt.Execute(Ask)


Вываливается ошибка что не может найти таблицу dbo_tehpro_tblprocessdefinitions.

Да, таблица существует. Если я конекчусь в акцессе то таблица dbo_tehpro_tblprocessdefinitions в базе db_production открывается как таблица с данными. А вот через vba выдает ошибку.
...
Рейтинг: 0 / 0
26.05.2018, 00:58
    #39650211
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Туплю с запросом
BlackeAngel,
А какой тип объявлен для etp?
...
Рейтинг: 0 / 0
26.05.2018, 09:05
    #39650234
DarkMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Туплю с запросом
sdkuBlackeAngel,
А какой тип объявлен для etp?
Variant наверное . :))
...
Рейтинг: 0 / 0
26.05.2018, 09:21
    #39650238
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Туплю с запросом
sdku,
Написано же
Код: vbnet
1.
2.
Dim etp, msk As Object
Set etp = CreateObject("ADODB.Recordset")
...
Рейтинг: 0 / 0
26.05.2018, 09:22
    #39650239
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Туплю с запросом
При Чем тут это? У меня запрос скорее всего неправильный, но как правильно - никак не допетрю.
...
Рейтинг: 0 / 0
26.05.2018, 12:38
    #39650302
DarkMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Туплю с запросом
BlackeAngelsdku,
Написано же
Код: vbnet
1.
2.
Dim etp, msk As Object
Set etp = CreateObject("ADODB.Recordset")



BlackeAngelПри Чем тут это?
При том , что Ваша переменная при таком обьявлении имеет тип Variant , а в умных книШках написано , что тип данных Variant -это особый тип данных , который может сохранять любые типы данных , за исключением типа Object .

BlackeAngelУ меня запрос скорее всего неправильный,
А Вы не пробовали скопировать строку запроса , и посмотреть ее Manegment Studio на сервере , и Вы узнаете правильный запрос или нет.
Как то так.
...
Рейтинг: 0 / 0
26.05.2018, 12:44
    #39650304
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Туплю с запросом
DarkMan, тогда может расскажете как без cnt.Open обойтись и получить рекордсет 2мя строчками?
...
Рейтинг: 0 / 0
26.05.2018, 12:45
    #39650305
DarkMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Туплю с запросом
BlackeAngelsdku,
Написано же
Код: vbnet
1.
2.
Dim etp, msk As Object
Set etp = CreateObject("ADODB.Recordset")


BlackeAngel не знаю как Java , но VBA не PHP . В VBA переменные не слабо типизированные , и не могут изменять тип данных на ходу в зависимости от присвоенного им значения. Здесь каждой переменной нужно присваивать конкретный тип данных.
Т.е правильное обьявление будет таким
Код: vbnet
1.
2.
   Dim etp As Object , msk As Object
Set etp = CreateObject("ADODB.Recordset")


Как то так наверное. :))
...
Рейтинг: 0 / 0
26.05.2018, 12:56
    #39650308
DarkMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Туплю с запросом
BlackeAngelDarkMan, тогда может расскажете как без cnt.Open обойтись и получить рекордсет 2мя строчками?
В VBA очень хорошо поставлена пошаговая отладка кода .
Ставите точку останова , запускаете процедуру , она останавливается в точке останова , затем нажатие клавиши F8 идете построчно , и проверяете значения всех Ваших переменных . В частности и Вашего же запроса , затем копируете строку запроса , запускаете на сервере , и смотрите что он Вам выдает , какая ошибка на сервере.
Но перед этим правильно присвойте типы данных переменным , как Вам намекал sdku и запустите процедуру на выполнение , и посмотрите ошибку после этого .
Но лучше , все делать на сервере, а на клиента возвращать только данные .
...
Рейтинг: 0 / 0
26.05.2018, 13:01
    #39650309
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Туплю с запросом
А зачем объявлена переменная msk (кстати правильно) которая не используется?
...
Рейтинг: 0 / 0
26.05.2018, 13:03
    #39650310
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Туплю с запросом
DarkMan, весь код выполняется на машине клиента.
Беда в том, что если я создаю БД в акцессе, и пытаюсь заполнить таблицу акцесса с сервера очень похожим запросом, то необходимые данные сливаются без проблем. А вот если без акцесса, просто в vb6 то вот какая то беда
...
Рейтинг: 0 / 0
26.05.2018, 13:07
    #39650311
DarkMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Туплю с запросом
Еще не досмотрел , в Вашем коде не обьявлена переменная Ask , у Вас наверняка не стоит в настройках обязательное обьявление переменных , еще раз напоминаю это не PHP , это VBA . :))
Следовательно нужно так.
Код: vbnet
1.
   Dim etp As Object , msk As Object , Ask As String
...
Рейтинг: 0 / 0
26.05.2018, 13:09
    #39650313
DarkMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Туплю с запросом
sdkuА зачем объявлена переменная msk (кстати правильно) которая не используется?
Может он ее обьявил по ошибке вместо Ask ? :))
Или будет использовать позже , так сказать открывать два рекордсета???
...
Рейтинг: 0 / 0
26.05.2018, 13:23
    #39650316
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Туплю с запросом
DarkMan,
Но Ask ни разу не Object, а только String
А вообще,если не установлено обязательное объявление переменных,замена в теле процедуры etp на msk сделает её работоспособной ("Я так думаю" - Мимино)
...
Рейтинг: 0 / 0
26.05.2018, 13:28
    #39650318
DarkMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Туплю с запросом
sdkuDarkMan,
Но Ask ни разу не Object, а только String
А вообще,если не установлено обязательное объявление переменных,замена в теле процедуры etp на msk сделает её работоспособной ("Я так думаю" - Мимино)
Я не утверждаю , а предполагаю. :))
...
Рейтинг: 0 / 0
26.05.2018, 13:33
    #39650321
DarkMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Туплю с запросом
sdkuв теле процедуры etp на msk сделает её работоспособной ("Я так думаю" - Мимино)
Я хотел предложить ТС такой вариант , но решил не запутывать. А предложил правильно обьявить переменные , дабы не наткнуться на эти грабли в будущем.
...
Рейтинг: 0 / 0
26.05.2018, 13:39
    #39650322
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Туплю с запросом
В конектстринге конекчусь прямо к таблице. Это нормально? Это работает?
Далее делаю выборку из этой таблицы. Это правильно написано?

Раньше просто к серверу конектстринге, а дальше в запросе на выборку указывал таблицу.
...
Рейтинг: 0 / 0
26.05.2018, 13:41
    #39650323
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Туплю с запросом
"Хотелось бы послушать начальника транспортного цеха. Пусть он нам расскажет.... "(ТС)-М.Жванецкий
...
Рейтинг: 0 / 0
26.05.2018, 13:56
    #39650328
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Туплю с запросом
в одной умной книшке написано: "создается только один экземпляр этого объекта независимо от того, сколько раз выполнялась функция CreateObject." Объекта с именем etp не существует-так зачем к нему обращаться. Все остальное,по моему, правильно
...
Рейтинг: 0 / 0
26.05.2018, 17:43
    #39650386
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Туплю с запросом
sdku,
Если б было правильно - темы бы не было.
...
Рейтинг: 0 / 0
26.05.2018, 19:20
    #39650412
DarkMan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Туплю с запросом
BlackeAngelsdku,
Если б было правильно - темы бы не было.
Вы рассказывайте что сделали , и что получилось , и какие ошибки. Мы не можем здесь телепатить. Сами понимаете.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Туплю с запросом / 24 сообщений из 24, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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