617 / 17 / 8
Регистрация: 05.05.2012
Сообщений: 221
Записей в блоге: 11
1

Элементарный пример для начинающих

27.03.2013, 11:02. Показов 1883. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет всем!
Объясните дураку как элементарно произвести из VB6 следующие операции с базой mdb:
1) добавить новую запись
2) просмотреть все имеющиеся записи
3) исправить определенную запись

И желательно всё-тоже самое для новых баз с расширением "accdb".
Правда я так думаю Vb6 врятли будет с ними работать, тогда на vb.net!

На первые два вопроса я с трудом нашел ответ:
Visual Basic
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
Option Explicit
 
 
Private Sub Form_Load()
Dim txt
Dim oCn As ADODB.Connection
Set oCn = New ADODB.Connection
oCn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " & App.Path & "\SERV.mdb"
oCn.Open
'çàïèñü äàííûõ!
oCn.Execute "INSERT INTO Clients VALUES ('Sergior3','ïàðîëü342','test')"
 
'÷òåíèå äàííûõ
Dim AD As ADODB.Recordset, i As Integer
Set AD = New ADODB.Recordset
AD.Open "SELECT * FROM Clients", oCn
Do While Not AD.EOF
    txt = ""
    For i = 0 To AD.Fields.Count - 1
        txt = txt & AD.Fields(i).Value & " "
    Next
    Debug.Print txt
    AD.MoveNext
Loop
AD.Close
 
End Sub
Вложения
Тип файла: zip BD.zip (45.8 Кб, 6 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2013, 11:02
Ответы с готовыми решениями:

Элементарный запрос для Вас
Здравствуйте! Подскажите, пожалуйста, мне, как организовать условие отбора (работаю в...

Наследование. Элементарный пример. В чем ошибка?
Почему не работает такой пример: #include <conio.h> #include <math.h> #include <iostream> ...

Кто может подсказать элементарный пример?
Как создать подкатегории? вот код <? $result2 = mysql_query("SELECT * FROM categories"); ...

Показать элементарный пример хэширования слова
Не могли бы вы показать элементарный пример хэширования слова?

9
3356 / 1775 / 83
Регистрация: 05.08.2010
Сообщений: 4,471
27.03.2013, 11:17 2
http://www.codenet.ru/progr/vbasic/vb_db/3.php
0
617 / 17 / 8
Регистрация: 05.05.2012
Сообщений: 221
Записей в блоге: 11
27.03.2013, 11:29  [ТС] 3
Я имею ввиду программное обращение к бд, а не привязку текстбоксов к определенному полю базы данных.
0
3356 / 1775 / 83
Регистрация: 05.08.2010
Сообщений: 4,471
27.03.2013, 11:40 4
http://vbbook.ru/page/visual-b... -zapiseiy/
http://vbbook.ru/visual-basic/vb-bazu-dannux/
http://vbbook.ru/visual-basic/... -zapisyax/

P.S. Google, вроде как, никто не отменял..
0
617 / 17 / 8
Регистрация: 05.05.2012
Сообщений: 221
Записей в блоге: 11
27.03.2013, 13:27  [ТС] 5
Кидая кучу бесполезных ссылок, Вы не отвечаете на вопрос.
И гугл и яндекс нифига здесь не помогают, они в основном выдают ответы типа того, что вы писали в первом варианте.

В результате я сам разобрался, в строке :
Visual Basic
1
AD.Open "SELECT * FROM Clients", oCn
Нужно добавить
Visual Basic
1
, , adLockBatchOptimistic
-этот параметр указывает с какими правами подключаться к базе. С ними можно уже править некоторые данные следующим образом:
Visual Basic
1
2
AD.Fields(0).Value = "Правка_данных"
AD.Fields(1).Value = "Это_тест!"
Полный код выглядит так:
Visual Basic
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
Option Explicit
 
 
Private Sub Form_Load()
Dim txt
Dim oCn As ADODB.Connection
Set oCn = New ADODB.Connection
oCn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " & App.Path & "\SERV.mdb"
oCn.Open
'Добавление данных!
'oCn.Execute "INSERT INTO Clients VALUES ('Serg100','пароль342','test')"
 
'___
Dim AD As ADODB.Recordset, i As Integer
Set AD = New ADODB.Recordset
AD.Open "SELECT * FROM Clients", oCn, , adLockBatchOptimistic
'Правка данных
AD.Fields(0).Value = "Правка_данных"
AD.Fields(1).Value = "Это_тест!"
'чтение данных
Do While Not AD.EOF
    txt = ""
    For i = 0 To AD.Fields.Count - 1
        txt = txt & AD.Fields(i).Value & " "
    Next
    Debug.Print txt
    AD.MoveNext
Loop
 
AD.Close
 
End Sub
0
3356 / 1775 / 83
Регистрация: 05.08.2010
Сообщений: 4,471
27.03.2013, 13:33 6
Цитата Сообщение от Bati4eli Посмотреть сообщение
В результате я сам разобрался
Раз Вы считаете, что Вы справились, я только рад

P.S. жесткий путь Вы избрали при проектировании работы с данными базы данных...Все делается достаточно легче(как указано в первой ссылке) и без последующих возможных ошибок.
0
617 / 17 / 8
Регистрация: 05.05.2012
Сообщений: 221
Записей в блоге: 11
27.03.2013, 18:05  [ТС] 7
Короче нифига...
записываемые данные не сохраняются.. требуется какая-то команда для записи их..
Если привязать тупо текстбоксы к полям бд.. это не программа! Тоже самое можно сделать и в аксесе.
А мне требуется что бы программа могла работать с бд. Я не собираюсь ничего выводить на форму.

Добавлено через 2 часа 50 минут
Итого, для правки данных в бд используйте:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
    'Ïðàâêà äàííûõ
    Set AD = New ADODB.Recordset
    AD.Open "SELECT * FROM Clients", oCn, adOpenDynamic, adLockPessimistic
    i = 0
    Do While Not AD.EOF
        AD.Fields(0).Value = "ÒÅÑÒ_" & i
        AD.Fields(1).Value = "ÒÅÑÒ_" & i
        i = i + 1
        AD.MoveNext
    Loop
    AD.Update
    AD.Close
0
Эксперт MS Access
26805 / 14484 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
27.03.2013, 20:10 8
Цитата Сообщение от Bati4eli Посмотреть сообщение
Итого, для правки данных в бд используйте:
Эта процедура сработает только если рекордсет состоит из одной записи. В многозаписном рекордсете обновится только последняя запись. Так работает метод Update. Он записывает изменения в таблицу только для текущей записи. Для обновления набора применяется UpdateBatch. Или Update вставить в цикл (перед Movenext).
2
Эксперт MS Access
17485 / 7247 / 1651
Регистрация: 21.06.2012
Сообщений: 13,859
27.03.2013, 20:57 9
Возможно я уже забыл о какой-то специфике ADODB.Recordset (уже лет десять с ними не работал), но после достижения EOF указатель уже не указывает ни на какую запись. Так что скорей всего никакая запись не обновится.
2
617 / 17 / 8
Регистрация: 05.05.2012
Сообщений: 221
Записей в блоге: 11
28.03.2013, 09:15  [ТС] 10
mobile, ltv_1953,
Я весь день колдыбался и колдовал, но в результате приведенным выше кодом удалось записать данные в бд.
По поводу Update, вы правы.
0
28.03.2013, 09:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.03.2013, 09:15
Помогаю со студенческими работами здесь

Составить программу, реализующую элементарный пример анимации в Delphi
Составить программу, реализующую элементарный пример анимации в Delphi. Для этого изобразите на...

Не работает пример из FAQ для раздела – “C# для начинающих”
Фак здесь - https://www.cyberforum.ru/csharp-beginners/thread163620.html первый же пример не...

Мой paint, пример для начинающих
Было дело промучался с WIN API для двух своих проектиков, второй к сожалению был потерян со смертью...

Многопоточность.Не работает пример из книги "Руководство для начинающих. Шилдт" стр 413-414
Добрый день! Укажите пожалуйста проблему данного кода. Пример демонстрирует применение двух...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru