Programación General > Bases de Datos
Error Al Cerrar Ventana
kike_monarcas:
Hola. Estoy realizando una aplicación que manipula los registros de una base de datos, para lo cual, al momento de registrar un artículo en almacén, presento al usuario una ventana emergente que contiene un DataGrid donde se describen los artículos que se pueden registrar en base a una lista de catálogos existentes. Necesito que al presionar la tecla Enter sobre el DataGrid de la ventana emergente retorne los datos al formulario en que se procesa el registro. Sin embargo, al presionar Enter me aparece el error de que "la instrucción xxx hace referencia a la memoria. No se puede read... Aceptar/Cancelar". Más sin embargo cuando cierro la ventana con Alt F4 funciona perfectamente. Estoy utilizando objetos ADODB.Recordset y ADODB.Command para realizar las consultas a la base de datos.
Espero que puedan ayudarme, un saludo y gracias por sus comentarios.
LeGatoRojo:
jejejejej, creo que necesitamos algo de codigo para ver en que podemos ayudar :P
kike_monarcas:
Bien. En un formulario, el primero que aparece, hay un campo de texto en el cual el usuario coloca una clave, por ejemplo 1502. En el mismo formulario tengo una función que se encarga de establecer la instrucción sql de búsqueda...
--- Código: Text --- // Parte de frmRegistrarPrivate Function buscarArticulosEnCatalogo(valor As String) If resultset.State = adStateOpen Then resultset.Close End If Select Case valor Case "XXX" With comando // Variable global .ActiveConnection = sentenciasSQL.conexion // Conexion a la bdd .CommandText = "SELECT * FROM XXX where Clave = '" & cmpClave.Text & "'" End With With resultset // Variable global .CursorType = adOpenKeyset .LockType = adLockOptimistic .Open comando End With // Los otros casos son similares End Select frmBusqueda.Show vbModal // Es es el formulario emergente resultset.CloseEnd Function
Dentro del formulario frmBusqueda solo aparece solamente un DataGrid en el que se coloca el resultado de la búsqueda, y el código siguiente...
--- Código: Text --- Private Sub dtgArticulos_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Select Case formularioDestino //.. El Select Case lo utilizo porque este formulario es llamado por varios formularios frmRegistrar.cmpColor = dtgArticulos.Columns("Color").Text frmRegistrar.cmpMaterial = dtgArticulos.Columns("Material").Text frmRegistrar.cmpTalla = dtgArticulosColumns("Talla").Text frmRegistrar.cmpPrecio = dtgArticulosColumns("PrecioVenta").Text frmRegistrar.cmpFechaRegistro.Text = Format(Date, "dd/mm/yyyy") End Select Unload Me // Aqui quiero realizar el Unload Me pero causa el error End IfEnd Sub Private Sub Form_Load() Set dtgArticulos.DataSource = resultset // Esta variable es global dtgMarcas.Columns("Color").Width = 1500 dtgMarcas.Columns("Material").Width = 1500 dtgMarcas.Columns("Talla").Width = 1500 dtgMarcas.Columns("Precio").Width = 1500 dtgMarcas.Columns("PrecioVenta").Width = 1500End Sub
Y el error no se produce cuando cierro la ventana con Alt F4.
ArKaNtOs:
podrias decirnos que error te marca y si te selecciona alguna linea en especial?
kike_monarcas:
El error es el siguiente:
La instrucción en "0x24ec4e80" hace referencua a la memoria en "0x00000054". La memoria no se puede "read"
Haga clic en Aceptar para finalizar el programa
Haga clic en Cancelar para depurar el programa
Aceptar/Cancelar
Cuando le doy Aceptar finaliza la aplicación, pero si le doy depurar abre MS V C++ y me da el siguiente error:
Unhandled exception in VB6.exe (MSDATGRD.ocx) 0xC0000005: Access violation.
En la ventana de VB no se marca ninguna línea.
Navegación
[#] Página Siguiente
Ir a la versión completa