Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Matriz en VB

Estas en el tema de Matriz en VB en el foro de Visual Basic clásico en Foros del Web. Hola a todos... tengo un pequeño gran problema con una tabla de sql server 2005 y visual basic 6... necesito hacer una matriz en vb ...
  #1 (permalink)  
Antiguo 11/06/2009, 17:45
 
Fecha de Ingreso: junio-2009
Mensajes: 14
Antigüedad: 14 años, 10 meses
Puntos: 0
Matriz en VB

Hola a todos... tengo un pequeño gran problema con una tabla de sql server 2005 y visual basic 6...

necesito hacer una matriz en vb 6.0...

algo de esta forma


Código:
Dim valores(1 To 100, 1 To 80) As String

valores(1, 4) = 500
valores(2, 1) = 120
valores(5, 8) = 11
valores(3, 2) = 23
.... etc

las coordenadas y los valores los tengo en una tabla (en SQLSRVR2005) del tipo:

X Y Valor
1 14 800
3 5 76
2 1 120
etc...

mi idea es hacer algo asi:

Código:
x = valor x de la tabla
y = valor y de la tabla
val = valor en la tabla

valores(x,y) = val
mi pregunta es ....como le asigno los valores de la tabla a las variables?
como hago un bucle para que se llene de acuerdo a las coordenadas de la tabla??

espero me haya explicado bien...

gracias de antemano por todo...

adios!
  #2 (permalink)  
Antiguo 11/06/2009, 18:13
Avatar de culd  
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 20 años, 6 meses
Puntos: 19
Respuesta: Matriz en VB

- Crea la conexion con la base de datos

- Carga el recorset con la info de la tabla

- Recorre con un while toda la tabla...

Mientras vas recorriendo vas cargando en la matris

valores(recorset(0), recorset(1)) = recorset(2)

Y listo al pollo.
  #3 (permalink)  
Antiguo 11/06/2009, 18:20
 
Fecha de Ingreso: febrero-2009
Ubicación: Villa Ocampo - Santa Fe
Mensajes: 100
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Matriz en VB

Hola Prisiomechas....mira mi punto de vista es el siguiente......no te conviene mas cargar la tabla en un MSFlexGrid y luego recorrer el flex???? asi te evitas declarar matrices y demas....el MSFlexGrid como el MSHFlexGrid tiene una propiedad llamada TextMatrix donde le pasas las coordenadas para que te devuelva los datos ;)

Strslq = "Select * From XTabla"
'Abris el Recordset
Rs.open strsql,Cn (Cn es la coneccion con la base)

Set MSHFLEXGRID1.Datasource = Rs

For X = 1 To Flex1.Rows - 1
flex1.textmatrix(X,1) 'Donde X es el Valor de la FILA y 1 el VALOR DE LA COLUMNA
next

con el msflexgrid tiene que hacer un bucle para cargar
o sea
do while NOT rs.EOF
Flex1.textmatrix(flex.row,1) = rs.field(0)
Flex1.textmatrix(flex.row,2) = rs.field(1)
(y asi dependiendo la cantidad de datos que quieras mostrar)
rs.movenext
loop

espero te sirva saludos
EL MHFLEXGRID
  #4 (permalink)  
Antiguo 11/06/2009, 18:52
 
Fecha de Ingreso: junio-2009
Mensajes: 14
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Matriz en VB

Cita:
Iniciado por culd Ver Mensaje
- Crea la conexion con la base de datos

- Carga el recorset con la info de la tabla

- Recorre con un while toda la tabla...

Mientras vas recorriendo vas cargando en la matris

valores(recorset(0), recorset(1)) = recorset(2)

Y listo al pollo.
culd, muchas gracias por tu tiempo y por tu respuesta... pero me queda la duda de como hacer el while para recorrer la tabla???



Cita:
Iniciado por ValentinoMolinari Ver Mensaje
Hola Prisiomechas....mira mi punto de vista es el siguiente......no te conviene mas cargar la tabla en un MSFlexGrid y luego recorrer el flex???? asi te evitas declarar matrices y demas....el MSFlexGrid como el MSHFlexGrid tiene una propiedad llamada TextMatrix donde le pasas las coordenadas para que te devuelva los datos ;)

Strslq = "Select * From XTabla"
'Abris el Recordset
Rs.open strsql,Cn (Cn es la coneccion con la base)

Set MSHFLEXGRID1.Datasource = Rs

For X = 1 To Flex1.Rows - 1
flex1.textmatrix(X,1) 'Donde X es el Valor de la FILA y 1 el VALOR DE LA COLUMNA
next

con el msflexgrid tiene que hacer un bucle para cargar
o sea
do while NOT rs.EOF
Flex1.textmatrix(flex.row,1) = rs.field(0)
Flex1.textmatrix(flex.row,2) = rs.field(1)
(y asi dependiendo la cantidad de datos que quieras mostrar)
rs.movenext
loop

espero te sirva saludos
EL MHFLEXGRID

Valentino, gracias por dar una nueva alternativa, la voy a tener en consideración, muchas gracias por tu tiempo y tu sugerencia... me queda una duda en esto...
Flex1.textmatrix(flex.row,1) = rs.field(0)
Flex1.textmatrix(flex.row,2) = rs.field(1)
etc....

tendria q hacer esa instrucción por cada columna que quiera mostrar?

gracias de antemano a los dos!!!
  #5 (permalink)  
Antiguo 11/06/2009, 19:19
 
Fecha de Ingreso: febrero-2009
Ubicación: Villa Ocampo - Santa Fe
Mensajes: 100
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Matriz en VB

en respuesta a tu duda en el caso del MSFlexGrid si en el caso del MSHFlexGrid puedes hacer lo siguiente
Set MSHFlexGrid.DataSource = Rs
y listo
espero te sirva ;)....saludos
  #6 (permalink)  
Antiguo 11/06/2009, 20:13
 
Fecha de Ingreso: junio-2009
Mensajes: 14
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Matriz en VB

[B]hola nuevamente valentino...
mira...

Private Sub Form_Load()
Dim strsql As String
Dim rst As New ADODB.Recordset

strsql = "Select * From coordenadas"
rst.Open strsql, conn

Set MSHFlexGrid1.DataSource = rst

For X = 1 To flex1.Rows - 1
flex1.TextMatrix(X, 1)
Next

End Sub


en esta linea:
flex1.TextMatrix(X, 1)

me tira un error "Se esperaba: ="
ahi deberia poner flex1.TextMatrix(X, 1) = mitotal????

la variable X es el campo de mi bd???

gracias valentino, voy avanzando gracias a tu tiempo y ayuda!


edito....

cambie esa linea por el campo total de mi tabla, es decir, quedó así...
flex1.TextMatrix(X, 1) = rst.fields("total")
compiló...
pero me muestra la tabla tal cual la tengo en la bd... no en forma de matriz....
alguna sugerencia???


gracias!!!

Última edición por prisiomechas; 11/06/2009 a las 20:34 Razón: cambio
  #7 (permalink)  
Antiguo 12/06/2009, 06:11
Avatar de culd  
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 20 años, 6 meses
Puntos: 19
Respuesta: Matriz en VB

Cita:
Iniciado por prisiomechas Ver Mensaje
culd, muchas gracias por tu tiempo y por tu respuesta... pero me queda la duda de como hacer el while para recorrer la tabla???
Supongamos que tu recorset se llama "recorset" entonces cargas tu consulta:
recorset.Open "Consulta", conexion, bla bla.

Y recorres con un while
Do While recorset.EOF = False
y ahi cargas
Loop
  #8 (permalink)  
Antiguo 12/06/2009, 22:25
 
Fecha de Ingreso: febrero-2009
Ubicación: Villa Ocampo - Santa Fe
Mensajes: 100
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Matriz en VB

a ver a ver....en algun punto yo entendi mal tu consulta.....que datos tenes en tu tabla????....y que necesitas hacer con esos datos????......porque sinceramente me perdiste :(....
segun lo que entendí vos queres traer los datos de una tabla a una matriz..... y en base a eso yo te sugerí el MSHFLEXGRID o el MSFLEXGRID si??? bueno...que valores traes y que necesitas hacer con esos valores ( Datos) me explico mi duda?
  #9 (permalink)  
Antiguo 14/06/2009, 18:13
 
Fecha de Ingreso: junio-2009
Mensajes: 14
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: Matriz en VB

Cita:
Iniciado por ValentinoMolinari Ver Mensaje
a ver a ver....en algun punto yo entendi mal tu consulta.....que datos tenes en tu tabla????....y que necesitas hacer con esos datos????......porque sinceramente me perdiste :(....
segun lo que entendí vos queres traer los datos de una tabla a una matriz..... y en base a eso yo te sugerí el MSHFLEXGRID o el MSFLEXGRID si??? bueno...que valores traes y que necesitas hacer con esos valores ( Datos) me explico mi duda?
valentino... gracias por todo, pero lamentablemete descubri que el mshflexgrid solo permite 350000 celdas... es decir una cantidad mucho menor a la que necesito... de todas maneras muchas gracias... seguiré buscando
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:52.