Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > access в VB


Автор: Georg4 1.4.2004, 00:34
Мысль такая. В текстбоксе вводится поле с именем (nazvanie), а в 3-х едитах отображаются(соответственно если совпадает название) остальные поля
Но он показывает только последнюю запись, а если без цикла то только первую. как быть
вот код:

Код
Private Sub Text5_Change()
Dim db As Database
Set db = OpenDatabase(Text6.Text)
Dim r As Recordset
Set r = db.OpenRecordset("select kod, nazvanie, stoimost, kolichestvo from tovar;")
Dim n As String
n = r.Fields(1).Value
Do While Not (r.EOF)
If Text5.Text = n then  Label9.Caption = r.Fields(0).Value:Label13.Caption = r.Fields(2).Value: Label14.Caption = r.Fields(3).Value
End If
r.MoveNext
Loop
r.Close
db.Close
End Sub

Автор: valex13 1.4.2004, 06:15
Это значит что запрос возвращает несколько записей. Если они у тебя двоятся, т.е. одинаковые сделай так. В строке запроса использую ключевое поле DISTINCT
Например:
SELECT DISTINCT CODE,NAME FROM TOVAR

Автор: shilnik 1.4.2004, 07:58
Предлагаю так:
Код

Private Sub Text5_Change()
Dim db As Database
Set db = OpenDatabase(Text6.Text)
Dim r As Recordset
Set r = db.OpenRecordset("select kod, nazvanie, stoimost, kolichestvo from tovar;")
'Dim n As String                |      Оно Зачем?
'n = r.Fields(1).Value        |
Do While Not (r.EOF)
If Text5.Text = [b]r.Fields(1).Value[/b] then  Label9.Caption = r.Fields(0).Value:Label13.Caption = r.Fields(2).Value: Label14.Caption = r.Fields(3).Value
End If
r.MoveNext
Loop
r.Close
db.Close
End Sub

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)