Programación General > Visual Basic para principiantes
Error 13: Porque se origina?. Causas.
(1/1)
Jimbenit:
Porque se origina este error... En mi codigo no veo ningun error y los OCX que utilizo parecen estar bien...
Me gustaria estudiar este error... Alguien me ayuda.
Saludos.
Nebire:
Es un problema de tipos de variables... el error seguramente está en tu código, pero en determinadas situaciones pasa inadvertido...
Por ejemplo observa este código, valor es un variant, le asignamos una cifra numérica y lo mostramos... ok
luego le asignamos una matriz y la mostramos... ok (aunque no presenta nada)
sin embargo cuando llamamos al procedimiento mostrar valor, espera un byte, como le pasamos un variant se lo traga, pero cuando procesa el variant ve que aunque el variant tiene una matriz de bytes, sólo acepta una variable byte no una matriz... de paso reproduzco otros 2 errores de la misma naturaleza...
--- Código: Visual Basic --- Private Sub Form_Load() Dim bytes(0 To 9) As Byte Dim Valor As Variant On Local Error GoTo showError ' OK.... Valor = 2009 Debug.Print Valor MsgBox Valor ' ERROR: 13 error de tipo de variable Valor = bytes Debug.Print Valor MsgBox Valor MostrarValor (Valor) ' ERROR: 6 error de desbordamiento Valor = 2009 Debug.Print Valor MsgBox Valor MostrarValor (Valor) ' ERROR: 450 error de tipo de argumentos... Set Valor = Form1 MsgBox Valor MostrarValor (Valor) Exit SubshowError: MsgBox "Error: Nº " & Err.Number & vbCrLf & Err.Description & vbCrLf & Err.Source Err.Clear Resume NextEnd Sub Private Sub MostrarValor(ByVal n As Byte) MsgBox nEnd Sub
... a veces canta un error 450 en vez del 13, si consigue identificar con más detalle el error y también el error 6 (desboradmiento), pero cuando no queda claro (donde más suele ocurrir son en las clases) y no hay un gestor de errores salta el 13.
La variable que más se presta a este tipo de error son los variant, pero también los de tipo Date y el propio CVERR... (convertir a error).
Si ejecutas el código que te he puesto paso a paso (F8) lo entenderás mejor, viendo donde se produce el mismo.
Jimbenit:
Mi amigo Nebire siempre ayudandome....
No sabes cuan agradecido estoy contigo... Me sirvió bastante esa explicación....
Gracias. ^_^
Navegación
Ir a la versión completa