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

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

02.06.2012, 19:32. Показов 11333. Ответов 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
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,683
Записей в блоге: 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
38161 / 21096 / 4306
Регистрация: 12.02.2012
Сообщений: 34,683
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru