Страница: 1 |
Страница: 1 |
Вопрос: Вытащить на label данные из бд.
Добавлено: 09.09.10 13:26
Автор вопроса: goodwen
Здравствуйте, я пишу на vb6, у меня есть бд в виде Excel файла, где есть 2 столбца, первый "obj" для слов, другой "meta-obj" для описания этого слова в определённом формате. Мне нужно ввести слово в textbox и чтобы всё описание этого слова вытащилось в label на форме. При чём описание для каждого слова в столбце "meta-obj" занимает несколько строк вниз и поэтому мне нужно найти введённое слово в бд и вывести всё описание для этого слова (и не выводить описание другого слова, которое идёт ниже), как мне это можно сделать?
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
Eugy
Вопросов: 0
Ответов: 73
Профиль | | #1
Добавлено: 09.09.10 16:21
То у тебя в excel такая структура(условно)
A B
1 [obj] [meta-obj]
2 obj_name1 meta1_1
3 <пусто> meta1_2
4 <пусто> meta1_3
5 obj_name2 meta2_1
Такое трудно назвать базой данных
Можно конечно SELECT * .. и перебором в цикле, но даже в этом случае в "базе" должен быть столбец индекса.
Может проще задействовать объектную модель excel.
Номер ответа: 2
Автор ответа:
goodwen
Вопросов: 26
Ответов: 65
Профиль | | #2
Добавлено: 09.09.10 19:20
Eugy, да, у меня именно такая структура, а как мне эту объектную модель использовать? Мне там обязательно надо именно в laabel вытащить эти данные:
meta1_1
meta1_2
meta1_3
Номер ответа: 3
Автор ответа:
goodwen
Вопросов: 26
Ответов: 65
Профиль | | #3
Добавлено: 09.09.10 19:25
Eugy, хотя по сути можно же сделать и такую структуру:
A B
1 [obj] [meta-obj]
2 obj_name1 meta1_1
3 obj_name1 meta1_2
4 obj_name1 meta1_3
5 obj_name2 meta2_1
По сути то ничего не измениться, а как мне в этом случае с помощью select, введя obj_name1 вывести на label только?:
meta1_1
meta1_2
meta1_3
Номер ответа: 4
Автор ответа:
Eugy
Вопросов: 0
Ответов: 73
Профиль | | #4
Добавлено: 09.09.10 20:24
Изменится, можно будет написать sql-запрос
И все.
А вообще, по уму, должны быть три таблицы, первая содержит obj и его уникальный индекс,
вторая- meta-obj и уник. индекс, а третяя осуществляет связку этих индексов.
И разумеется все это не в excel, а хотя бы в access, где "специально-обученный" драйвер базы следит за целостностью связок.
Номер ответа: 5
Автор ответа:
Eugy
Вопросов: 0
Ответов: 73
Профиль | | #5
Добавлено: 09.09.10 22:12
Да,вот еще что..
Если искомая строка содержит произвольные символы типа кавычек, запятых и пр.,
тогда можно создать запрос с параметром.
Удачи.
Номер ответа: 6
Автор ответа:
goodwen
Вопросов: 26
Ответов: 65
Профиль | | #6
Добавлено: 09.09.10 22:13
Eugy, Спасибо всё заработало, только вот этот участок кода:
почему то не работает, пишет что BOF, или EOF имеет значение true, либо текущая запись удалена, Как мне можно это исправить?
Номер ответа: 7
Автор ответа:
Eugy
Вопросов: 0
Ответов: 73
Профиль | | #7
Добавлено: 09.09.10 22:20
проверкой рекордсета
if rec.EOF or rec.BOF then...
Номер ответа: 8
Автор ответа:
goodwen
Вопросов: 26
Ответов: 65
Профиль | | #8
Добавлено: 09.09.10 23:36
Eugy, Спасибо за помощь, всё заработало.