Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/58: Рейтинг темы: голосов - 58, средняя оценка - 4.88
Заблокирован

Принцип работы SQL запросов в Visual Basic 6.0 (За основу взята Data)

02.06.2012, 19:32. Показов 11401. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Очень часто встречаю на форуме людей, которые делают поиск в своих базах данных, основываясь на метод запроса к Ado или Dao, но достойного поиска так и не встретил, были, конечно, примеры достойные внимания, но все, же с ошибками, вводишь значение и знаешь, оно есть, но поиск говорит, что нет... Решил показать пример как можно эксплуатировать SQL запрос к базе данных как поиск. Собственно пример в прикрепленных файлах. Далее будут примеры еще интереснее.

Вопросы по коду в тему.
Вложения
Тип файла: rar SQL.rar (496.7 Кб, 509 просмотров)
3
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.06.2012, 19:32
Ответы с готовыми решениями:

Примеры SQL запросов к базе данных через оболочку Visual Basic да и других языков
Примеры SQL запросов к базе данных через оболочку Visual Basic да и других языков. Довольно часто я на форуме встречаю людей которые мало...

Запросы sql в visual basic
не могу понять!!! Почему то запросы с условиями работают только если тип поля в условии является числовым, если его тип текстовый то...

Visual basic & SQL
Доброго времени суток. Такой вопрос меня мучает уже более суток. Имеется одна большая бд (я выбрал на sql) Там столбцы (их много) ...

7
Заблокирован
02.06.2012, 20:00  [ТС]
Еще пример, на основе все того же SQL посчитаем поля с таблицы "Цена". К примеру есть ряд таблиц:

[Значение] [Значение] [Значение] [Цена]

Как нам посчитать сколько же всего получится в итоге по всем полям [Цена]? Есть такой замечательный SQL оператор "sum". Смотрим пример.
Вложения
Тип файла: rar SQL (Складываем поля).rar (13.3 Кб, 260 просмотров)
1
Заблокирован
03.06.2012, 10:59  [ТС]
На примере все той же базы данных смотрим вложенный файл. На поле формы добавим кнопку со стандартным именем и в нее впишем следующий код:

Visual Basic
1
2
DataBase.RecordSource = "SELECT Customers.CompanyName, Customers.ContactName, Customers.ContactTitle, Customers.Цена FROM Customers " & "WHERE (((Customers.CompanyName) In (SELECT [CompanyName] FROM [Customers] As Tmp GROUP BY [CompanyName] HAVING Count(*)>1 )))"
DataBase.Refresh
Данный SQL запрос поможет нам найти из всей базы данных повторяющиеся значения в таблице базы данных "Customers" по всем полям CompanyName. Запрос выведет их на экран, сгруппировав.
Вложения
Тип файла: rar SQL (Одинаковые записи).rar (13.5 Кб, 174 просмотров)
1
Заблокирован
03.06.2012, 11:28  [ТС]
Следующая строка SQL покажет нам все значения из поля "Цена" которые больше "5000":

Visual Basic
1
2
DataBase.RecordSource = "SELECT Customers.CompanyName, Customers.ContactName, Customers.ContactTitle, Customers.Цена FROM Customers " & "where Customers.Цена >= 5000"
DataBase.Refresh
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38195 / 21128 / 4309
Регистрация: 12.02.2012
Сообщений: 34,736
Записей в блоге: 14
03.06.2012, 12:51
Все очень просто:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
     '::: Создадим ADO-соединение
 
     Set Conn = CreateObject("ADODB.Connection")
 
     '::: Создадим recordset
 
     Set RS = CreateObject("ADODB.Recordset")
 
     '::: Зададим драйвер (здесь Access)
 
     DSNName = "DRIVER=Microsoft Access Driver (*.mdb);DBQ="
     DSNName = DSNName & HomeDir & "\test_base.mdb"
 
     '::: Открываем соединение
 
     Conn.Open DSNName
Теперь можно вводить SQL-запросы и анализировать ответы

Visual Basic
1
2
3
4
5
6
7
     SQL="SELECT count(*) from tbl1"
 
     RS.Open SQL, Conn, 3, 3
 
     msgbox "В таблице записей: " & Cstr(Rs(0))
 
     Rs.Close
Важно, что объект RS - это виртуальный массив, в котором колонки нумеруются с нуля,
а количество строк = к-ву строк, удовлетворяющих выполненному SELECT.
Так, если введен Select

SQL
1
SELECT a,b,c FROM T WHERE a=... AND b >= ... ORDER BY a,b,c
То Rs(0) - колонка a; Rs(1) - колонка b, Rs(2) - колонка c.
А число строк Rs = к-ву строк, который вернул SELECT.

Обработать RS можно так:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
     RS.Open SQL, Conn, 3, 3
 
     Do While not RS.EOF
 
        txt=Cstr(Rs(0)) & " " & cstr(Rs(1)) & " " & Cstr(Rs(2))
        MsgBox Txt
 
        Rs.MoveNext
 
     Loop  
 
     Rs.Close
Ни сортировать, ни фильтровать, ни группировать результаты не нужно. Все это сделает SQL (если правильно сформулировать запрос).
2
Заблокирован
03.06.2012, 14:13  [ТС]
(За основу взята Data) обрати внимание !
0
Заблокирован
22.10.2012, 19:11  [ТС]
Catstail, АП темы ! Слушай не пойму что в твоем коде:

Цитата Сообщение от Catstail Посмотреть сообщение
'::: Создадим ADO-соединение Set Conn = CreateObject("ADODB.Connection") '::: Создадим recordset Set RS = CreateObject("ADODB.Recordset") '::: Зададим драйвер (здесь Access) DSNName = "DRIVER=Microsoft Access Driver (*.mdb)BQ=" DSNName = DSNName & HomeDir & "\test_base.mdb" '::: Открываем соединение Conn.Open DSNName
Будет работать с Grid? DataSource = чему ?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38195 / 21128 / 4309
Регистрация: 12.02.2012
Сообщений: 34,736
Записей в блоге: 14
24.10.2012, 12:41
Если мы будем работать с визуальным компонентом, то результирующий RecordSet моего кода надо "запихнуть" в DataSource (если получится). У визуальных компонентов свои интерфейсы, а ADO - интерфейс общий (код будет работать и в VBScript, где нет виз. компнентов, и в VBA, где подключть их бывает непросто).

Добавлено через 38 секунд
Цитата Сообщение от inv.DS Посмотреть сообщение
Слушай не пойму что в твоем коде:
- что именно непонятно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.10.2012, 12:41
Помогаю со студенческими работами здесь

Sql server и VS visual basic. Авторизация
Здравствуйте :) Помогите пожалуйста. Нужно создать авторизацию. Есть форма, на форме 2 textbox-а и 2 label-а соответственно(Емайл и...

Visual Basic 6.0. + SQL Server 2012
Добрый день, уважаемые. Очень нужна ваша помощь. Подскажите, пожалуйста. Есть база данных SQL Server 2012. В ней таблица MARA и...

Sql server и VS visual basic. Авторизация
Есть 3 формы. 1 форма - форма авторизации. (на форме расположены Text.box1 и Text.box2 соответственно логин и пароль и кнопка...

Автоматизация работы кинотеатра в Excel на Visual Basic
Дали задание, автоматизировать работу кинотеатра, самую малость сделала, но так как с Excel и VB почти не знакома не имею представления с...

Пример работы Autocad & Visual Basic
Создаю программу : при помощи команды subtract из одного solid должна выбить другой, но програма не действует...может кто работает с VB в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru