powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / строка SQL
23 сообщений из 23, страница 1 из 1
строка SQL
    #35265015
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пишу так
Код: plaintext
1.
select [Primechanie] from BD
получаю ошибку 3265, Не удается найти об'ект в семействе, соответствующий требуемому имени или порядковому номеру.
а если так писать

Код: plaintext
1.
select [Theme],[Technology],[Equipment],[Region],[Owner],[Owner_outgoing_number],[Declared_Region],[Primechanie],[Sostoyanie_zayavki],[Nomer_Reestra],[Data_Reestra],[Ispolnitel] from BD
т.е. выбираю все поля из таблицы то всё ОК
происходит эта ошибка с некоторыми полями, если писать запрос в Accesse то никаких ошибок не возникает.
В чём засада?
...
Рейтинг: 0 / 0
строка SQL
    #35265392
Фотография gjghjc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может где-то русская буква в названии закралась?

С уважением, Николай.
...
Рейтинг: 0 / 0
строка SQL
    #35265775
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мля, всю голову уже сломал.
Русских букв нет.
Копирую строку sql из debug.print вставляю в запрос(в Access) - ошибок нет, получаю данные.
Из VB, ну никак!
Отдельно это поле(например поле Primechanie) из VB не выбирает, а если в наборе с другими полями то пожалуйста, все работает.
...
Рейтинг: 0 / 0
строка SQL
    #35266194
ВasiС
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй перименовать поле [Primechanie] - может оно зарезервировано
Перезапусти Акцесс
Посмотри какие названия полей отдаёт рабочий запрос


У меня подобная морока была с полем Label - пришлось переименовывать.
...
Рейтинг: 0 / 0
строка SQL
    #35266930
Ммихалыч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как на счет того, чтобы написать вот так :
Код: plaintext
select [таблица].[поле] from BD ;
, что есть более корректно ? (попробуй так же без квадратных скобок).
...
Рейтинг: 0 / 0
строка SQL
    #35267722
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
где код, на котором выдается данная ошибка?
могу только предположить, что это поле у вас мемо и вы с ним некорректно работаете.
...
Рейтинг: 0 / 0
строка SQL
    #35268636
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попробуй так
Код: plaintext
select `Primechanie` from BD
...
Рейтинг: 0 / 0
строка SQL
    #35268996
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка происходит при открытии рекордсета
Код: plaintext
1.
rs.Open sqlStr, cn, adOpenDynamic, adLockBatchOptimistic
строка sqlStr формируется динамически, т.е. на основе полей таблицы которые выберет пользователь
Строка формируется корректно, проверял не раз, доказательством правильности формирования sqlStr строки служит то что скопировав сформированную строку из debug.print вставляю в Access и получаю данные.
методы предложенные уважаемыми Ммихалыч и TIKO тоже не срабатывают.
формат поля Primechanie - текстовый.
...
Рейтинг: 0 / 0
строка SQL
    #35269077
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
adOpenStatic, adLockreadOnly
...
Рейтинг: 0 / 0
строка SQL
    #35269082
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для "динамика" и "апдейтабле" недостаточно информации для апдейта полей если берете одно поле (без ключевого)
...
Рейтинг: 0 / 0
строка SQL
    #35269152
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По всякому пробовал и статик и динамик и курсор серверный и клиентский, все равно не хочет!
...
Рейтинг: 0 / 0
строка SQL
    #35269411
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Строка подключения какая?
Покажите код подключения к mdb.
...
Рейтинг: 0 / 0
строка SQL
    #35269719
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Public cn As New ADODB.Connection
Public rs  As New ADODB.Recordset

strSQL = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\БД.mdb"
Set cn = New Connection
cn.CursorLocation = adUseClient
cn.ConnectionString = strSQL
cn.Open

rs.Open sqlStr_Exc, cn, adOpenDynamic, adLockPessimistic
...
Рейтинг: 0 / 0
строка SQL
    #35269739
kefi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 timtim>
Вы бы попробовали создать в чистом MDB одну эту табличку заново с таким полем и попробовали бы свой запрос - мне кажется, должен получиться.
MDB - они же часто глючат.
...
Рейтинг: 0 / 0
строка SQL
    #35269783
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kefi2 timtim>
Вы бы попробовали создать в чистом MDB одну эту табличку заново с таким полем и попробовали бы свой запрос - мне кажется, должен получиться.
MDB - они же часто глючат.
Спасибо, но фокус не удался.
...
Рейтинг: 0 / 0
строка SQL
    #35269870
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не поленился, проверил вашу таблицу - работает.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Option Explicit

Dim conn As ADODB.Connection

Private Sub btnCreateTable_Click()
   Dim ss() As String
   ss() = Split("[Theme],[Technology],[Equipment],[Region],[Owner],[Owner_outgoing_number],[Declared_Region],[Primechanie],[Sostoyanie_zayavki],[Nomer_Reestra],[Data_Reestra],[Ispolnitel]", ",")
   Dim i As Long
   Dim s As String
   s = "CREATE TABLE [BD] (" & ss( 0 ) & " Char(10)"
   For i =  1  To UBound(ss)
      s = s & "," & Trim(ss(i)) & " Char(10)"
   Next
   conn.Execute s & ")"
End Sub

Private Sub btnTest_Click()
   Dim rs As New ADODB.Recordset
   Dim rs2 As New ADODB.Recordset
   Dim f As ADODB.Field
   rs.Open "SELECT * FROM Bd", conn, adOpenStatic, adLockReadOnly
   For Each f In rs.Fields
      rs2.Open "SELECT " & f.Name & " FROM BD", conn
      Debug.Print "Open field " & f.Name; " success!"
      rs2.Close
   Next
End Sub

Private Sub Form_Load()
   Set conn = New ADODB.Connection
   conn.CursorLocation = adUseClient
   conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\DB1.mdb;Persist Security Info=False"
   conn.Open
End Sub
...
Рейтинг: 0 / 0
строка SQL
    #35270583
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рекордсет и соединение у меня глобальные, об'явлены в модуле.
Если в каждой процедуре где открывается рекордсет писать
Код: plaintext
1.
Dim rs As New ADODB.Recordset
то все работает.
скажите пожалуйста что я не так делаю.
...
Рейтинг: 0 / 0
строка SQL
    #35270627
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если глобальный то закрывать при окрытии

Код: plaintext
1.
If rs.State = adStateOpen Then rs.Close
rs.Open .........

а соединение можно не трогать, но закрывть при выходе из программы
...
Рейтинг: 0 / 0
строка SQL
    #35270634
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
рекордсет закрываю в конце каждой процедуры в которой он открывается
...
Рейтинг: 0 / 0
строка SQL
    #35270644
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старайтесь не использовать глобальных рекордсетов. В крайнем случае на уровне формы (если к нему привязаны контролы, грид например).
...
Рейтинг: 0 / 0
строка SQL
    #35270750
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Грид как раз то и привязан.
...
Рейтинг: 0 / 0
строка SQL
    #35271168
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сообщение об ошибке говорят о проблеме с SQL.
Но маленький совет: когда у вас грид привязан к рекордсету, надо этот рекордсет пересоздать когда состав полей его меняется:
Код: plaintext
1.
2.
set rs = new ADODB.Recordset
rs.open .....
set grid.DataSource = rs

и еще: объявляйте этот рекордсет внутри формы.
...
Рейтинг: 0 / 0
строка SQL
    #35271175
timtim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уфф, спасибо всем за участие, всё пока работает.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / строка SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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