Как сделать запрос.

Программирование на Visual Basic for Applications
Ivan1
Обычный пользователь
Обычный пользователь
 
Сообщения: 51
Зарегистрирован: 27.05.2003 (Вт) 14:25
Откуда: Светлоград

Как сделать запрос.

Сообщение Ivan1 » 24.06.2003 (Вт) 15:28

Подскажите как на VB6 сделать запрос
вот в accese делается запрос просто и
потом просто обращаеся к нему как к базе данных
а в визуал бейсике я не знаю я делаю так
но это мне кажется изврошение можно как то
гораздо проще.

Sub Printza(lblnumber As Integer)
'********ВЫБОР ДАННЫХ**************
Dim number As Integer
OpenDB
If Rst2.EOF = True Then
Else
RST1.MoveFirst
Rst2.MoveFirst
End If
Do While Rst2.EOF = False
Rst2.Delete
Rst2.MoveNext
Loop
Do While RST1.EOF = False
number = RST1!number_z
If number = lblnumber Then
Rst2.AddNew
Rst2!number_z = RST1!number_z
Rst2!Name_PP = RST1!Name_PP
Rst2!Data = RST1!Data
Rst2!Name_Otd = RST1!Name_Otd
Rst2!name_mate = RST1!name_mate
Rst2!ed_izm = RST1!ed_izm
Rst2!kol_vo = RST1!kol_vo
Rst2!Stoimost = RST1!Stoimost
Rst2!Symma = RST1!Symma
Rst2!Itoz_z = RST1!Itoz_z
Rst2!vipolnenie = RST1!vipolnenie
Rst2.Update
End If
RST1.MoveNext
Loop
'**********************************
End Sub
Воробьев Иван В.

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 24.06.2003 (Вт) 15:42

вобще-то это делается примерно так:
Код: Выделить всё
Dim db As Database
Const DBPath = "..\..\db\"
Private Sub GetData(lblnumber As Integer)
    Dim rs Ad Recordset
    Set db = OpenDatabase(DBPath & "db1.mdb")
    Set rs = db.OpenRecordset("SELECT * FROM tblTableName WHERE Field = " & lblnumber
    ' ну а дальше твой код по обработке полученной записи
    ...
    ...
    ...

    rs.Close
    Set rs = Nothing
End Sub


p.s. читайте книжки
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

Ivan1
Обычный пользователь
Обычный пользователь
 
Сообщения: 51
Зарегистрирован: 27.05.2003 (Вт) 14:25
Откуда: Светлоград

1

Сообщение Ivan1 » 25.06.2003 (Ср) 8:26

Это понятно я и так все так делал
‘**********************************
Сначала отрываю одну базу данных
Потом открываю другую базу данных
Делаю проверку и если условие верно
То записываю во вторую базу даннх
И сохраняю базу данных.
‘**********************************
Но это мне кажется извращение
А если будет база очень большая то
Сколько времени будет производиться выборка.
Вот я и спрашиваю:
Как можно сделать запрос по проще?
Может какой то SQL (я не знаю что это такое)
Или какая то функция с параметром или
В acces-е можно вызывать приготовленный запрос
Просто менять параметр.
Воробьев Иван В.

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Сообщение Cyrax » 25.06.2003 (Ср) 10:40

ну так бы сразу и сказал...
точнее, только после второго прочтения кода до меня дошла идея процедуры

итак, как же это можно сократить?

а вот как
создание таблицы в одной базе данных, содержащей записи из таблицы в другой
Код: Выделить всё
SELECT список_полей
    INTO новая_таблица [IN имя_базы_данных [connect_string]]
    FROM исходная_таблица WHERE критерий


для добавления записей
Код: Выделить всё
INSERT INTO имя_таблицы (список_полей)
    SELECT список_полей
    FROM имя_таблицы [IN имя_базы_данных [connect_string]]
    WHERE критерий
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC


Вернуться в VBA

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

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

    TopList