
Error definido por la aplicación o el objeto.
Publicado por Antonio (20 intervenciones) el 17/03/2013 19:11:41
Hola de nuevo, estoy programando en VBA (Access 2007) y tengo declaradas en el módulo las variables:
Código:
Public ctrActual As Control
Public frmActual As Form
Y las utilizo en el siguiente evento del formulario Form_AltaMat para llamar a una función declarada en el módulo:
Código:
Al ejecutar dicha llamada en la siguiente función con estas variables y en la línea " If Len(ctrActual.Text) > ctrActual.SelStart Thent" me da el error Se ha producido el error '2465' en tiempo de ejecución: Error definido por la aplicación o el objeto.
Código:
Código:
Public ctrActual As Control
Public frmActual As Form
Y las utilizo en el siguiente evento del formulario Form_AltaMat para llamar a una función declarada en el módulo:
Código:
1
2
3
4
Private Sub cArticulo_KeyDown(KeyCode As Integer, Shift As Integer)
Set frmActual = Form_AltaMat
Set ctrActual = cArticulo
Call Sobreescribir(KeyCode, frmActual, ctrActual)
Al ejecutar dicha llamada en la siguiente función con estas variables y en la línea " If Len(ctrActual.Text) > ctrActual.SelStart Thent" me da el error Se ha producido el error '2465' en tiempo de ejecución: Error definido por la aplicación o el objeto.
Código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Public Function Sobreescribir(KeyCode As Integer, Form_AltaMat, cArticulo)
'Procedimiento para sobreescribir
Dim Posicion As Long
'Si la tecla pulsada es diferente de tecla arriba, abajo, escape, intro y tabulador
If KeyCode <> 38 And KeyCode <> 40 And KeyCode <> 27 And KeyCode <> 13 And KeyCode <> 9 Then
'Si la tecla pulsada es igual a flecha izquierda o flecha derecha o teclas menor de espacio
If KeyCode = 37 Or KeyCode = 39 Or KeyCode < 32 Then Exit Function
'SelStart: devuelve o establece el punto inicial del texto seleccionado, 'indicando la posición del punto de inserción si no se ha seleccionado texto.
If Len(ctrActual.Text) > ctrActual.SelStart Then
Posicion = frmActual.ctrActual.SelStart
frmActual.ctrActual.Text = Left(frmActual.ctrActual.Text, frmActual.ctrActual.SelStart) & Right(frmActual.ctrActual.Text, (Len(frmActual.ctrActual.Text) - (frmActual.ctrActual.SelStart + 1)))
Form_AltaMat.cArticulo.SelStart = Posicion
End If
End If
End Function
Valora esta pregunta


0