Programación en visual basic 6.0

Realice lo que me dijo y no funciono sale lo siguiente " error 30010 en tiempo de ejecución, valor de lacolumna no válido
que podría ser, ayúdeme...
private sub cobce_click()
if cobce = "kinder" then
data1.databasename = "c:\archivos de programa\hilarte\base de datos\matriculacion_97.mdb"
data1.recordsource = "select tnnom,tnmpcen1,tnmpcen2,tnmpcen3,tnmprln1,tnmprln2,tnmprln3,tnmpevn1,tnmpevn2,tnmpevn3,tnmppcn1,tnmppcn2,tnmppcn3 from tabla_notas where tnce='" & (cobce) & "'"
flex.row = 0
flex.col = 0
flex.text = "nombre"
flex.colwidth(0) = 3500
flex.col = 1
flex.text = "n1"
flex.colwidth(1) = 350
data1.refresh
end if
end sub

1 respuesta

Respuesta
1
Primero que nada un flexgrid se puede llenar de dos formas, de manera automática como en este caso y de forma manual moviendo los registros a la grilla uno por uno.
En este caso que es automática se utiliza un Control de datos Data1, así que hay que colocar la propiedad DataSource=Data1 pero además en la primera fila del Flexgrid se colocan los nombres de los campos de la tabla.
Le recomiendo ejecutar paso a paso el programa para saber exactamente en qué instrucción se presenta el error y cual es la columna que se está reverenciando.
Cualquier cosa me puedes volver a preguntar antes de cerrar la pregunta.
Suerte !
Hola corregí mi error, salia porque yo dejaba una columna en blanco con un ancho determinado y eso no me dejaba continuar, ok elimine esa columna y así quedo la programación:
private sub cobce_click()
if cobce = "kinder" then
data1.databasename = "c:\archivos de programa\hilarte\base de datos\matriculacion_97.mdb"
data1.recordsource = "select tnnom,tnmpcen1,tnmpcen2,tnmpcen3,tnmprln1,tnmprln2,tnmprln3,tnmpevn1,tnmpevn2,tnmpevn3,tnmppcn1,tnmppcn2,tnmppcn3 from tabla_notas where tnce='" & (cobce) & "'"
data1.refresh
flex.textmatrix(0, 0) = "nombre"
flex.colwidth(0) = 3500
flex.textmatrix(0, 1) = "n1"
flex.colwidth(1) = 350
flex.textmatrix(0, 2) = "n2"
flex.colwidth(2) = 350
flex.textmatrix(0, 3) = "n3"
flex.colwidth(3) = 350
Utilice texmatrix y si me salio, ahora necesito dejar el espacio antes mencionado entre cada tres notas para que no exista una confusión al escribir las notas, como hago esa columna pra que me quede del mismo ancho de las otras pero vacía, quise programarlo y me genero error, así lo hice:
flex.colwidth(4)=350
Como podría programar ese detalle
También tengo otras consulta, se las podría hacer sin ningún problema..
Gracias por su ayuda
Para lograr lo que quiere, debe utilizar el control Datagrid (Microsoft DataGrid Control MSDATGRD.OCX) el cual permite relacionar las columnas con los campos de la tabla y colocar los nombres de las columnas que se deseen. En tiempo de diseño se puede, adicionar o eliminar columnas, colocar los nombres a las columnas, especificar el ancho, alineación, relacionar campos con columnas, mostrar solo unos campos de la tabla etc. en la ventana de propiedades ingresando por "Personalizado" .
Con el Flexgrid también se puede pero tendría que leer registro por registro e ir moviendo los campos a la columna desada lo cual es un poco dispendioso.
Suerte !
Hola, me han servido de muchos sus sugerencias.
Quisiera preguntarle, como se puede ingresar texto en el msflexgrid, porque ahí debo ingresar las notas de los estudiantes,
otra consulta, como puedo hacer un texto vertical en visual basic 6.0
Respecto a la primera pregunta, no se puede ingresar texto directamente en una celda del MsFlexGrid, para ello hay que escribir dicho texto en un Textbox y luego moverlo a la celda del Msflexgrid.
El control Microsoft FlexGrid (MSFlexGrid) muestra datos de tablas y efectúa operaciones en ellos. Proporciona una flexibilidad completa para ordenar, combinar y aplicar formato a tablas que contienen cadenas e imágenes. Cuando se enlaza a un control Data, el control MSFlexGrid muestra datos de sólo lectura.
Respecto a la segunda en realidad no puede tener un texto vertical, pero si definimos un campo por cada carácter (arreglo con un indice) y los ubicamos uno debajo del otro en un formulario y al momento de mostrarlo movemos carácter por carácter entonces podemos tener el texto vertical.
Suerte !
Hola, averigüe como se puede ingresar texto a un msflexgrid o más bien se llama editar en un msflexgrid...
Ahora lo que quisiera es que si puede ayudarme a programar la actualización de la base de datos al terminar la edición en el flexgrid, para que queden registrados los cambios...
Esta programación utilice para la edición en el msflexgrid
Private Sub FLEX_KeyPress(KeyAscii As Integer)
If KeyAscii >= 32 And KeyAscii <= 127 Then
FLEX.Text = FLEX.Text & Chr(KeyAscii)
End If
End Sub
Private Sub FLEX_KeyUp(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyDelete
FLEX.Text = ""
Case vbKeyBack
If Len(FLEX.Text) > 0 Then
FLEX.Text = Left(FLEX.Text, Len(FLEX.Text) - 1)
End If
End Select
End Sub
Por favor ayúdeme
Definitivamente debe utilizar el control DataGrid el cual le permite modificar las celdas y a la vez actualizar la base de datos sin necesidad de código.
Además creo que debe cerrar esta pregunta y colocar otra con las nuevas inquietudes.
Suerte !

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas