Retroceder   Foros del Web > Programación para sitios web > .NET

Respuesta
 
Herramientas Desplegado
Antiguo 18-nov-2006, 13:34   #1 (permalink)
jabi no se puede cailificar en este momento
 
Avatar de jabi
 
Fecha de Ingreso: noviembre-2006
Mensajes: 119
"Referencia a objeto no establecida como instancia de un objeto"

Buenas!! Se puede decir que estoy empezando con esto de la programación .NET y todavía hay cosas que no logro entender, como es lógico.

Mi problema tiene que ver con que recibo ese mensaje de error al compilar y ejecutar mi código (una aplicación de consola), exactamente la línea que me marca es la que he marcado abajo en negrita.

Se trata de un procedimiento en el que pido las 3 notas de un alumno para guardarlas en la matriz v_notas(,). La primera dimensión es para los alumnos y la segunda para las notas. La variable i está declarada a nivel de módulo y por tanto es accesible desde cualquier función o procedimiento.

A ver si alguien me puede ayudar porque he visto varios mensajes por aquí con ese mismo error pero en códigos con diferentes procedimientos, y no me entero ^^

Código:
Private Sub pedir_notas(ByVal v_notas(,) As Decimal)

        Dim nota As String
        Dim j As Integer = 0 'Índice controlador de nombre de asignatura.

        Do While j < 3 Or nota = Nothing Or Not IsNumeric(nota) Or Val(nota) < 0 Or Val(nota) > 10
            nota = InputBox("Nota de " & asignaturas(j) & ":", "Alumno " & i)
            If nota = Nothing Then
                MessageBox.Show("Introduce una nota, por favor", "Nota requerida", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            ElseIf Not IsNumeric(nota) Then
                MessageBox.Show("La nota debe ser numérica.", "Nota incorrecta", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            ElseIf Val(nota) < 0 Or Val(nota) > 10 Then
                MessageBox.Show("El valor de la nota no es correcto, debe estar entre 0 y 10.", "Nota incorrecta", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            Else
                v_notas(i, j) = nota
                j = j + 1
            End If
        Loop

        i = i + 1 'Paso al siguiente Alumno (variable declarada a nivel de módulo)

    End Sub
Gracias de antemano
jabi está desconectado   Responder Citando
Antiguo 20-nov-2006, 08:10   #2 (permalink)
jabi no se puede cailificar en este momento
 
Avatar de jabi
 
Fecha de Ingreso: noviembre-2006
Mensajes: 119
Asunto solucionado, fallo de principiante: había declarado la matriz bidimensional en el main sin reservar espacio y sin inicializar, tal como ésto: Dim notas(,) As Decimal. Ya lo había hecho en anteriores códigos pero inicializando los valores (en la misma declaración), ahora no los tenía que inicializar y por eso metí la pata. Al final Redim Preserve... y todo ok =)

Que conste que ya me he tirado de las orejas a mi mismo para que no vuelva a pasar :P
jabi está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 20:50.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93