powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как копировать предыдущие значения в таблице ACCESS?
2 сообщений из 2, страница 1 из 1
Как копировать предыдущие значения в таблице ACCESS?
    #35070873
StrawMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите!
В таблице три поля: товар, цена и дата.
Но не для всех дат цена определена для некоторого товара.
Как сделать так, чтобы в те дни, когда цена не определена в таблицу подставлялась последняя цена этого товара?
Только решить эту задачу нужно в VBA, а не с помощью запросов.

Пример
01.01.07 - Шпроты - 101
02.01.07 - Шпроты - 102
03.01.07 - Шпроты - ---

Нужно, чтобы вместо последней строчки появилась такая
03.01.07 - Шпроты - 102
...
Рейтинг: 0 / 0
Как копировать предыдущие значения в таблице ACCESS?
    #35075189
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
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.
33.
34.
35.
36.
37.
38.
39.
Private Sub add_previous_record_Click()
Dim file_mdb As String:           file_mdb = App.Path & "\db1.mdb"

Dim conn As ADODB.Connection:     Set conn = New ADODB.Connection
Dim rst1 As ADODB.Recordset:      Set rst1 = New ADODB.Recordset
 
conn.Provider = "Microsoft.Jet.OLEDB.4.0"   ' Microsoft ActiveX Data Objects 2.7 Library
conn.Open file_mdb, "Admin" ', password

rst1.Open "SELECT * From Таблица " & _
          "ORDER BY Товар, Дата ", _
          conn, adOpenDynamic, adLockOptimistic

Dim price As Double
Dim goods As String

Do While Not rst1.EOF
    
    If rst1![Цена] =  0  Or IsNull(rst1![Цена]) Then

        goods = "" & rst1![Товар]           ' "" - чтобы не бояться пустых значений
    
        rst1.MovePrevious
        
        If goods = rst1![Товар] And Not (rst1![Цена] =  0  Or IsNull(rst1![Цена])) Then
           price = rst1![Цена]
           rst1.MoveNext
           rst1![Цена] = price
        Else
           rst1.MoveNext
        End If
        
    End If
    
    rst1.MoveNext
Loop

rst1.Close:   Set rst1 = Nothing
conn.Close:   Set conn = Nothing
End Sub
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как копировать предыдущие значения в таблице ACCESS?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]