Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Поле со списком отмена изменения  [new]
kiran
Member

Откуда:
Сообщений: 43
А как вот сделать чтобы при желании юзера отменить действие по изменению значения поля со списком возвращалось исходное значение. я вот сделал так но боюсь тчо не корректно работать будет

Dim DevString As String
Private Sub Device_Name_Change()
    Dim strSQL As String
    Dim dbs As Database, qdf As QueryDef
    If DevString <> "" And DevString <> Device_Name.Value Then
        If MsgBox("хотите изменить значение?" vbOKCancel + vbDefaultButton1, "что то там", 0, 0) = vbOK Then
                   '--------------------------
            Else
                      Device_Name.Value = DevString
        End If
    End If
End Sub

Private Sub Device_Name_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Device_Name.Value <> 0 Then
        DevString = Device_Name.Value
    Else
        DevString = ""
    End If
        
End Sub
30 окт 06, 11:17    [3328121]     Ответить | Цитировать Сообщить модератору
 Re: Поле со списком отмена изменения  [new]
kiran
Member

Откуда:
Сообщений: 43
в продолжение. развитие событий. изменил код след. образлм

Private Sub Device_Name_Change()
    Dim strSQL As String
    Dim dbs As Database, qdf As QueryDef
    If DevString <> "" And DevString <> Device_Name.Value Then
        If MsgBox("Âû äåéñòâèòåëüíî õîòèòå èçìåíèòü ýòî óñòðîéñòâî?", vbOKCancel + vbDefaultButton1, "Ïîäòâåðæäåíèå", 0, 0) = vbOK Then
        
            CurrentDb.Execute ("delete from RoomDevice where ((( RoomDevice.room_id) = " + Form_DevicesForm.Rooms.Value + " ) and " & _
                "((RoomDevice.system_name)= '" + Form_DevicesForm.SystemName.Value + "') and ((RoomDevice.device_name) = '" & _
                 DevString + "'))")
        
            CurrentDb.Execute "INSERT INTO RoomDevice (room_id, system_name, device_name) VALUES ( " + Form_DevicesForm.Rooms.Value & _
            ", '" + Form_DevicesForm.SystemName.Value + "' ,'" + Device_Name.Value + "')"
            
        Else
            Device_Name.Value = DevString
        End If
    Else
        If DevString = "" And DevString <> Device_Name.Value Then
            If MsgBox("Âû äåéñòâèòåëüíî õîòèòå äîáàâèòü íîâîå óñòðîéñòâî?", vbOKCancel + vbDefaultButton1, "Ïîäòâåðæäåíèå", 0, 0) = vbOK Then
                CurrentDb.Execute "INSERT INTO RoomDevice (room_id, system_name, device_name) VALUES ( " + Form_DevicesForm.Rooms.Value & _
                ", '" + Form_DevicesForm.SystemName.Value + "' ,'" + Device_Name.Value + "')"

            Else
                Device_Name.Value = Null
            End If
        End If
    End If
    
  Requery
  
End Sub

вроде работает но все равно что то не так. при изменении записи в коснтрукции
CurrentDb.Execute "DELETE FROM имя_таблицы_откуда_удалять WHERE (критерий_старого_значения)"
CurrentDb.Execute "INSERT INTO имя_таблицы_куда_добавлять (имя_поля) VALUES (новое_значение)"

на requery выдает мне ошибку "Run-Time Error 3167 Запись удалена."

в чем ошибка не пойму
30 окт 06, 11:51    [3328416]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить