Проблема при выделении элементов относящихся к классу в дбгр

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Aerus
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 08.10.2006 (Вс) 15:40

Проблема при выделении элементов относящихся к классу в дбгр

Сообщение Aerus » 29.11.2006 (Ср) 13:05

Я использую ДБгрид, мне нужно чтобы по запросу выделело все элементы которые относятся к полю в базе "хвойные".
Я делал следующее:
Код: Выделить всё
Dim strCompare As String
strCompare = "[xvoynye] = " + Text1.Text
Form4.Data1.Recordset.MoveNext
Form4.Data1.Recordset.FindNext strCompare
Unload Me


Но почему я пишу, проблема в том что здесь ошибка
Run-time error 3070
The microsoft jet database does not recognize "elj" as a valid field name or expression
при дебаге указывает на строку:
Код: Выделить всё
Form4.Data1.Recordset.FindNext strCompare


Я англ чуть понимаю, я понял что я что-то не так ввел, мне нужно чтобы выделело деревья которые относятся к хвойным. Хвойные это поле в базе. Помогите пажалста, если я сильно намудрил задайте вопрос я отвечу.

Aerus
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 08.10.2006 (Вс) 15:40

Сообщение Aerus » 30.11.2006 (Чт) 21:53

Помогите плз, проблему все еще не решил.

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 30.11.2006 (Чт) 22:41

По-видимому нет поля "elj" в базе.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 30.11.2006 (Чт) 23:00

Если нужно просто вывести в грид данные по условию, то лучше делай так:
Код: Выделить всё
Dim cn As ADODB.Connection  'В Referenses добавить Microsoft ActiveX DataObjects
Dim rs As ADODB.Recordset

Private Sub Form_Load()
    Dim SQL As String
    Set cn = New ADODB.Connection
    Set rs = New ADODB.Recordset
    cn.Provider = "Microsoft.Jet.OLEDB.4.0"
    cn.Open "Data Source=" & App.Path & "\db1.mdb"
    SQL = "select * from table1 where xvoynye='" & Text1.Text & "'"
    rs.CursorLocation = adUseClient
    rs.Open SQL, cn, adOpenStatic, adLockReadOnly
    Set DataGrid1.DataSource = rs
End Sub


P.S. Предполагаю, что поле xvoynye -- текстовое.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Aerus
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 08.10.2006 (Вс) 15:40

Сообщение Aerus » 01.12.2006 (Пт) 11:30

VVitafresh
Спасибо большое.

Все отлично, только ошибка: Class does not support Automation or does not support expected interface

В MSDN:
To correct this error

Check the documentation of the application that created the object for limitations on the use of automation with this class of object.

If you changed a project from .dll to .exe or vice versa, you must manually unregister the old .dll or .exe

VVitafresh писал(а):По-видимому нет поля "elj" в базе.

Запись есть, а поля нет.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 01.12.2006 (Пт) 12:07

Код: Выделить всё
strCompare = "[xvoynye] = '" & Text1.Text  & "'"

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 01.12.2006 (Пт) 17:51

Aerus писал(а):Все отлично, только ошибка: Class does not support Automation or does not support expected interface

Я тебе дал рабочий код.
Наверняка, ты положил на форму DBGrid вместо DataGrid (Microsoft DataGrid Control).
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Aerus
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 08.10.2006 (Вс) 15:40

Сообщение Aerus » 02.12.2006 (Сб) 1:46

VVitafresh писал(а):
Aerus писал(а):Все отлично, только ошибка: Class does not support Automation or does not support expected interface

Я тебе дал рабочий код.
Наверняка, ты положил на форму DBGrid вместо DataGrid (Microsoft DataGrid Control).

Вы абсолютно правильно сказали, еще раз огромное спасибо.

Konst_One писал(а):
Код: Выделить всё
strCompare = "[xvoynye] = '" & Text1.Text  & "'"

Спасибо, теперь все отлично работает! :)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 40

    TopList