Поймать событие Вставить? - PullRequest
3 голосов
/ 20 октября 2008

Я работаю на изготовителя нестандартных краснодеревщиков, и мы пишем собственную ценовую программу для нашего продукта. У меня есть форма с всплывающим окном, чтобы пользователь мог выбрать, на какой стороне будет шарнир для неоднозначных дверей в этом шкафу. Пока это работает, но когда они копируют элемент и вставляют его внизу, я не хочу, чтобы всплывающее окно появлялось. Есть ли способ в Access VBA узнать, вставляется ли новая запись или вводится вручную?

Ответы [ 2 ]

3 голосов
/ 20 октября 2008

Возможно, что-то в этом роде подойдет.

Option Compare Database
Public gvarPasted As Boolean

Private Sub txtText_AfterUpdate()
If Not gvarPasted Then
    'Open pop-up here
Else
    gvarPasted = False
End If
End Sub

Private Sub txtText_KeyDown(KeyCode As Integer, Shift As Integer)
'Detect ctrl-V combination
If Shift = acCtrlMask And KeyCode = vbKeyV Then
    gvarPasted = True
End If
End Sub
1 голос
/ 20 октября 2008

Вы можете настроить меню, например, если вы добавите такой код в стандартный модуль:

Public gvarPasted As Boolean

Function AssignVar()
    gvarPasted = True
    DoCmd.RunCommand acCmdPaste
End Function

Эту функцию можно установить для свойства «Действие» в меню «Вставка» с помощью параметра «Настройка» в меню панели инструментов. Вам также необходимо создать собственное контекстное меню (контекстное меню), которое будет использоваться вместо встроенного меню. Контекстное меню может быть назначено для всех форм или только для той формы, которая этого требует. Также возможно отключить контекстное меню для всех форм.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...