¿Porqué no puedo editar primer registro de DataGridView en Visual Basic?

Espero que de verdad me ayuden, estoy desesperado.

He desarrollado una aplicación para Windows bajo el lenguaje Visual Basic de Visual Studio 2013, resulta que tengo un formulario que tiene un datagridview que muestra los registro almacenado en la Base de Datos, la cual esta hecha en Acces 2010.

En el formulario, a demás de un botón de registrar, hay uno para Modificar y otro para Eliminar, resulta que cuando hago clic en el primer registro del datagrid (El que esta en el tope, de primero en la lista) no me lo toma, no se cargan los datos a los campos, entonces lo que tengo que hacer es seleccionar otro registo para luego escoger nuevamente el primero y es la unica manera de que me carge el ID del registro mas no los datos, pero al menos con eso puedo modificarlos y eliminarlo. ¿Qué pasará? Nunca habia tenido este problema, les dejo una secuencia de imagenes para que tengan idea de que me refiero.

1. Abro el formulario y hago clic en el primer registro del DataGridView, como ven en la imagen de abajo no se carga el ID ni los datos correspodientes.

2. Procedo a seleccionar algun otro registro que no sea el primero, ven que esta vez si carga todos los datos, el ID y la información de los campos. Como pueden ver, al momento de seleccionar el segundo registro, los datos del primero desaparecen (Desaparecen del formulario pero no de la base de datos).

3. Ahora, selecciono nuevamente el primer registro, pero obviamente como estan borrados los datos del datagrid del formulario, solo me carga el ID que es el unico que esta intacto, ya que carga el ID puedo eliminarlo y modificarlo ya que este es el campo que tomo como referencia para hacer las modificaciones y eliminar.

¿Por qué pasara esto? ¿Sera algo que hice mal en Access al hacer la base de datos? ¿O alguna propiedad de datagridview?

1 respuesta

Respuesta
1

Puede que tengas alguna confusión entre el indice 0 y el índice 1 en las subrutina que se ejecuta al seleccionar un elemento del DataGrid.

Si pudieras pasarme el programa y ficheros necesarios intentaría localizar el fallo. ¿Puedes subirlo a alguna plataforma de intercambio de ficheros?

Hola amigo disculpa la tardanza en responderte, estaba en el trabajo, aquí esta el enlace del archivo, descomprimelo en el disco C:\ ya que esa es la dirección de la base de datos, y así no tengas tanto inconveniente, espero puedas ayudarme.

https://mega.co.nz/#!PxMFDYiA!AUuBrDybv3O4NAAdHhs3WsjzJ0IixZpmHuhBgaf2AYk

Cualquier cosa si empieza desde el formulario de inicio de sesión el usuario es: Administrador1 y la contraseña: SisReport1

Muchas gracias de antemano

Por cierto, los primeros registros del formulario están vacíos porque son registros especiales, no hay problema que hagas nuevos registros para que compruebes lo que explico.

¡Uff!

¡Cuántas cosas me has mandado! Me podrías decir que hago para poder llegar al programa, tanto para ejecutarlo como para poder modificarlo. He intentado abrir algunos ficheros pero me da errores de ficheros o componentes que no encuentra.

Me disculpa de antemano, le había enviado un archivo donde la dirección de la base de datos no está en el disco C:/ descargue esta la cual ya cambié la dirección:

https://mega.co.nz/#!z9EClAoA!GvfXA2s2fK4ruM2SrcgFQj5MNwPNcF-GBFJWlmThm5s

Borre el archivo anterior que copió del primer link en el disco C:\ y extraiga este nuevo en esa misma dirección, una vez haya copiado, vaya a C:\SistemaReportePlanta1\Programa y haga doble clic en el archivo de Visual Studio "Programa".

Inice el programa (Ctrl+F5) y va a caer directo al menú principal, en la primera opción: "Área de Crudo", ese es el formulario que tomo de ejemplo para presentar la problemática, haga nuevos registros para tener al inicio del datagrid datos que no estén vacíos, los campos solo admiten numero, elija un equipo, y llene con cualquier numero los campos y guarde. Haga al menos tres registros para que pueda fijarse mejor lo que pasa.

Cuando termine de hacerlos, haga clic en el primer registro del datagrid, y verá que no carga siquiera el ID del registro, luego seleccione el registro de abajo y si se cargan todos los datos, pero el primero se vacía, seleccione el primero y verá que si carga el ID esta vez, pero no los datos, es la misma explicación que di al principio,

En el explorador de soluciones este módulo corresponde a "Crudo", allí es donde está ese formulario, para que no tenga tanto trabajo que hacer (ya que son muchísimos formularios) si logra encontrar la solución al problema solo aplíquela en ese formulario y luego me explica y yo me encargo de hacer los cambios a los demás.

Espero que haya entendido, muchas gracias.

Me parece que no voy a poder ejecutarlo, me sale todo esto:

Advertencia 1 Error al cargar la propiedad 'StartupObject'. Programa
Advertencia 2 Error al cargar la propiedad 'RootNamespace'. Programa
Advertencia 3 Error al cargar la propiedad 'AssemblyName'. Programa
Advertencia 4 Error al cargar la propiedad 'MyType'. Programa
Advertencia 5 Error al cargar la propiedad 'OptionExplicit'. Programa
Advertencia 6 Error al cargar la propiedad 'OptionCompare'. Programa
Advertencia 7 Error al cargar la propiedad 'OptionStrict'. Programa
Advertencia 8 Error al cargar la propiedad 'OptionInfer'. Programa
Advertencia 9 Error al cargar la propiedad 'ManifestCertificateThumbprint'. Programa
Advertencia 10 Error al cargar la propiedad 'ManifestKeyFile'. Programa
Advertencia 11 Error al cargar la propiedad 'GenerateManifests'. Programa
Advertencia 12 Error al cargar la propiedad 'SignManifests'. Programa
Advertencia 13 Error al cargar la propiedad 'SignAssembly'. Programa
Advertencia 14 Error al cargar la propiedad 'DelaySign'. Programa
Advertencia 15 Error al cargar la propiedad 'ApplicationIcon'. Programa
Advertencia 16 Error al cargar la propiedad 'FileAlignment'. Programa
Advertencia 17 Error al cargar la propiedad 'PlatformTarget'. Programa
Advertencia 18 Error al cargar la propiedad 'DebugSymbols'. Programa
Advertencia 19 Error al cargar la propiedad 'DebugType'. Programa
Advertencia 20 Error al cargar la propiedad 'DefineDebug'. Programa
Advertencia 21 Error al cargar la propiedad 'DefineTrace'. Programa
Advertencia 22 Error al cargar la propiedad 'OutputPath'. Programa
Advertencia 23 Error al cargar la propiedad 'DocumentationFile'. Programa
Advertencia 24 Error al cargar la propiedad 'NoWarn'. Programa
Advertencia 25 Error al cargar la propiedad 'IntermediateOutputPath'. Programa
Advertencia 26 Error al cargar la propiedad 'CodeAnalysisRuleSetDirectories'. Programa
Advertencia 27 Error al cargar la propiedad 'CodeAnalysisFailOnMissingRules'. Programa
Advertencia 28 Error al cargar la propiedad 'CodeAnalysisIgnoreGeneratedCode'. Programa
Advertencia 29 Error al cargar la propiedad 'CodeAnalysisInputAssembly'. Programa
Advertencia 30 Error al cargar la propiedad 'CodeAnalysisLogFile'. Programa
Advertencia 31 Error al cargar la propiedad 'CodeAnalysisModuleSuppressionsFile'. Programa
Advertencia 32 Error al cargar la propiedad 'CodeAnalysisOverrideRuleVisibilities'. Programa
Advertencia 33 Error al cargar la propiedad 'CodeAnalysisRuleDirectories'. Programa
Advertencia 34 Error al cargar la propiedad 'CodeAnalysisUseTypeNameInSuppression'. Programa
Advertencia 35 Error al cargar la propiedad 'CodeAnalysisRuleSet'. Programa
Advertencia 36 Hay contenedores personalizados actualizados disponibles para los siguientes componentes a los que se hace referencia: Microsoft. Office. Core, Office. Programa
Advertencia 37 No se pudo resolver esta referencia. No se encuentra el ensamblado "Microsoft.Office.Interop.Excel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL". Compruebe si el ensamblado existe en el disco. Si el código necesita esta referencia, podrían producirse errores de compilación. Programa
Advertencia 38 No se pudo leer el archivo de estado "obj\Debug\Programa.vbproj.GenerateResource.Cache". No se puede encontrar el ensamblado 'Microsoft.Build.Tasks.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Programa
Advertencia 39 No se pudo encontrar el componente 'Microsoft. Office. Interop. Excel' al que se hace referencia. Programa
Error 40 El tipo 'Excel.Application' no está definido. c:\SistemaReportePlanta1\Programa\Programa\Reporte_Cemento.vb 54 23 Programa
Error 41 El tipo 'Excel.Workbook' no está definido. c:\SistemaReportePlanta1\Programa\Programa\Reporte_Cemento.vb 55 27 Programa
Error 42 El tipo 'Excel.Worksheet' no está definido. c:\SistemaReportePlanta1\Programa\Programa\Reporte_Cemento.vb 56 28 Programa
Error 43 El tipo 'Excel.Application' no está definido. c:\SistemaReportePlanta1\Programa\Programa\Reporte_Coccion.vb 52 23 Programa
Error 44 El tipo 'Excel.Workbook' no está definido. c:\SistemaReportePlanta1\Programa\Programa\Reporte_Coccion.vb 53 27 Programa
Error 45 El tipo 'Excel.Worksheet' no está definido. c:\SistemaReportePlanta1\Programa\Programa\Reporte_Coccion.vb 54 28 Programa
Error 46 El tipo 'Excel.Application' no está definido. c:\SistemaReportePlanta1\Programa\Programa\Reporte_Crudo.vb 59 23 Programa
Error 47 El tipo 'Excel.Workbook' no está definido. c:\SistemaReportePlanta1\Programa\Programa\Reporte_Crudo.vb 60 27 Programa
Error 48 El tipo 'Excel.Worksheet' no está definido. c:\SistemaReportePlanta1\Programa\Programa\Reporte_Crudo.vb 61 28 Programa
Error 49 El tipo 'Excel.Application' no está definido. c:\SistemaReportePlanta1\Programa\Programa\Reporte_Paradas.vb 60 23 Programa
Error 50 El tipo 'Excel.Workbook' no está definido. c:\SistemaReportePlanta1\Programa\Programa\Reporte_Paradas.vb 61 27 Programa
Error 51 El tipo 'Excel.Worksheet' no está definido. c:\SistemaReportePlanta1\Programa\Programa\Reporte_Paradas.vb 62 28 Programa
Error 52 El tipo 'Excel.Application' no está definido. c:\SistemaReportePlanta1\Programa\Programa\Reporte_Pasta.vb 55 23 Programa
Error 53 El tipo 'Excel.Workbook' no está definido. c:\SistemaReportePlanta1\Programa\Programa\Reporte_Pasta.vb 56 27 Programa
Error 54 El tipo 'Excel.Worksheet' no está definido. c:\SistemaReportePlanta1\Programa\Programa\Reporte_Pasta.vb 57 28 Programa
Error 55 El tipo 'Excel.Application' no está definido. c:\SistemaReportePlanta1\Programa\Programa\Reportexdia.vb 63 23 Programa
Error 56 El tipo 'Excel.Workbook' no está definido. c:\SistemaReportePlanta1\Programa\Programa\Reportexdia.vb 64 27 Programa
Error 57 El tipo 'Excel.Worksheet' no está definido. c:\SistemaReportePlanta1\Programa\Programa\Reportexdia.vb 65 28 Programa

Seguramente me falta algo. Y tengo el Visual Studio 2012 Ultimate. Ayer intenté instalar el 2013 Express y me dio error de instalación y no instala. Yo no me llevo las manos a la cabeza, sé que a mi ordenador le paso algo muy grave con algunos ficheros vitales del sistema y contento estoy que pueda usarlo como lo estoy usando con la reparación a lo bruto que le hice. Pero hay algunas cosas que no van bien, no puedo desinstalar ni reinstalar Office por ejemplo y ahí podría estar el problema.

Si se te ocurre algo dímelo. También si pudieras decirme los ficheros donde están esas órdenes que funcionan mal podría examinarlas aunque no pueda ejecutarlas.

Por mi parte voy a intentar instalar Visual Studio y Office en otro ordenador, espero que con el 2012 se pueda ya que el 2013 no lo tengo.

Bueno veo que tienes uno errores alli y es porque a tu PC le hacen falta unas referencias, cuando se trabaja con Access 2010 esto ocurre mucho, donde esta el explorador de soluciones, haz clic derecho en "programa"  y agregar > referencia, a la izquierda hay un menu, vete a COM y luego a "bibliotecas de tipos"

Asegurate de tener habilitadas las siguientes referencias:

- Microsoft Access 14.0 Objects Library.

- Microsoft Access wizard Control Library 8.2 (cualquier version)..

- Microsoft ActiveX Data Objects (Cualquier version).

- Microsoft Office 10.0 Objects Library.

Lo siento, me he visto superado por la pregunta y más bien soy yo el que te está consultando a ti que sabes mucho más que yo. Yo pensaba en una pregunta fácil de resolver tipo macro de Excel y me veo con algo que no domino.

Esas referencias estaban habilitadas salvo que donde pones Office 10 he supuesto que quieres decir Office 14. He añadido

Microsoft Excel 14.0 Objects Library.

Y los 18 errores han quedado reducidos a 1 aparte de 37 advertencias

El error es este:

Error 37 'Workbooks' no es un miembro de 'Microsoft.Office.Interop.Access.Application'. c:\SistemaReportePlanta1\Programa\Programa\Reporte_Coccion.vb 61 22 Programa

Y las advertencias estas:

Advertencia 1 Error al cargar la propiedad 'StartupObject'. Programa
Advertencia 2 Error al cargar la propiedad 'RootNamespace'. Programa
Advertencia 3 Error al cargar la propiedad 'AssemblyName'. Programa
Advertencia 4 Error al cargar la propiedad 'MyType'. Programa
Advertencia 5 Error al cargar la propiedad 'OptionExplicit'. Programa
Advertencia 6 Error al cargar la propiedad 'OptionCompare'. Programa
Advertencia 7 Error al cargar la propiedad 'OptionStrict'. Programa
Advertencia 8 Error al cargar la propiedad 'OptionInfer'. Programa
Advertencia 9 Error al cargar la propiedad 'ManifestCertificateThumbprint'. Programa
Advertencia 10 Error al cargar la propiedad 'ManifestKeyFile'. Programa
Advertencia 11 Error al cargar la propiedad 'GenerateManifests'. Programa
Advertencia 12 Error al cargar la propiedad 'SignManifests'. Programa
Advertencia 13 Error al cargar la propiedad 'SignAssembly'. Programa
Advertencia 14 Error al cargar la propiedad 'DelaySign'. Programa
Advertencia 15 Error al cargar la propiedad 'ApplicationIcon'. Programa
Advertencia 16 Error al cargar la propiedad 'FileAlignment'. Programa
Advertencia 17 Error al cargar la propiedad 'PlatformTarget'. Programa
Advertencia 18 Error al cargar la propiedad 'DebugSymbols'. Programa
Advertencia 19 Error al cargar la propiedad 'DebugType'. Programa
Advertencia 20 Error al cargar la propiedad 'DefineDebug'. Programa
Advertencia 21 Error al cargar la propiedad 'DefineTrace'. Programa
Advertencia 22 Error al cargar la propiedad 'OutputPath'. Programa
Advertencia 23 Error al cargar la propiedad 'DocumentationFile'. Programa
Advertencia 24 Error al cargar la propiedad 'NoWarn'. Programa
Advertencia 25 Error al cargar la propiedad 'IntermediateOutputPath'. Programa
Advertencia 26 Error al cargar la propiedad 'CodeAnalysisRuleSetDirectories'. Programa
Advertencia 27 Error al cargar la propiedad 'CodeAnalysisFailOnMissingRules'. Programa
Advertencia 28 Error al cargar la propiedad 'CodeAnalysisIgnoreGeneratedCode'. Programa
Advertencia 29 Error al cargar la propiedad 'CodeAnalysisInputAssembly'. Programa
Advertencia 30 Error al cargar la propiedad 'CodeAnalysisLogFile'. Programa
Advertencia 31 Error al cargar la propiedad 'CodeAnalysisModuleSuppressionsFile'. Programa
Advertencia 32 Error al cargar la propiedad 'CodeAnalysisOverrideRuleVisibilities'. Programa
Advertencia 33 Error al cargar la propiedad 'CodeAnalysisRuleDirectories'. Programa
Advertencia 34 Error al cargar la propiedad 'CodeAnalysisUseTypeNameInSuppression'. Programa
Advertencia 35 Error al cargar la propiedad 'CodeAnalysisRuleSet'. Programa
Advertencia 36 No se pudo resolver esta referencia. No se encuentra el ensamblado "Microsoft.Office.Interop.Excel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL". Compruebe si el ensamblado existe en el disco. Si el código necesita esta referencia, podrían producirse errores de compilación. Programa
Advertencia 38 No se pudo encontrar el componente 'Microsoft. Office. Interop. Excel' al que se hace referencia. Programa

Si supieras lo que pasa me lo dices, pero no te mates mucho, tampoco te puedo garantizar que una vez este resuelto esto pueda solucionar tu consulta.

Ya conseguí instalar VisualStudio 2013 Express y Office 13 en otro ordenador y puedo ejecutar el programa.

No me explico porque pasa eso, pero si quieres solucionarlo pon esta subrutina en lugar de la que hay

 Private Sub BDDCrudo3DataGridView_Click(sender As Object, e As EventArgs) Handles BDDCrudo3DataGridView.Click
        Dim fila = BDDCrudo3DataGridView.CurrentCell.RowIndex
        Dim columna = BDDCrudo3DataGridView.CurrentCell.ColumnIndex
        If fila = 0 Then
            CalizaTextBox.Text = BDDCrudo3DataGridView.CurrentRow.Cells(4).Value.ToString
            EsquistoTextBox.Text = BDDCrudo3DataGridView.CurrentRow.Cells(5).Value.ToString
            ArcillaTextBox.Text = BDDCrudo3DataGridView.CurrentRow.Cells(6).Value.ToString
            HierroTextBox.Text = BDDCrudo3DataGridView.CurrentRow.Cells(7).Value.ToString
            BauxitaTextBox.Text = BDDCrudo3DataGridView.CurrentRow.Cells(8).Value.ToString
            PolvilloTextBox.Text = BDDCrudo3DataGridView.CurrentRow.Cells(9).Value.ToString
            BDDCrudo3DataGridView.CurrentCell() = BDDCrudo3DataGridView.Rows(0).Cells(columna)
        Else
            Me.Refresh()
        End If
    End Sub

Y eso es todo.

¡Muchísimas Gracias! Estoy muy agradecido y sobre todo por haberse tomado el tiempo y la molestia de tener que instalar nuevamente Visual Studio y access solo para ayudarme con este inconveniente, de verdad muchas gracias. La instrucción funciona muy bien, lo único que detecté es que cuando entro al formulario y hago clic en el segundo registro el primero se sigue borrando, es decir, ya no tengo problemas cuando escogo el primer registro primero, pero si tomo el segundo registro primero borra el primer registro, fíjate, si me puedes ayudar sería excelente, si es muy complicado, no importa, no es un mal de morir. Pero me gustaría tener eso funcionara bien, de igual manera no tengo como agradecerle por la ayuda

Si era algo que me parecía raro, pero pensaba que era cosa del funcionamiente normal del programa. Yo creo que eso sucedía antes de los cambios que he hecho, ¿no?

Es muy difícil seguir semejante programa, solo el que lo ha diseñado es el que tiene todas las piezas del rompecabezas para poder saber de donde vienen algunas cosas extrañas que pasan.

Este error que dices puede estar conectado con el anterior que en realidad no se ha reparado, simplemente se han eliminado los efectos que producía y que tampoco eran tan graves ya que si pinchabas primero en otra fila y luego en la primera sus datos iban a los textbox.

De verdad que es complicado, si acaso mándalo en otra pregunta, ahora no tengo tiempo para mirarlo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas