0

ive posted this messge in 3 other forums, i hope i get a better response here.
the following code has a button that removes the selected row from the grid. reset index, is what i am going to use so that the first column is always secquential, so all rows after the deleted one moves up one row.

Private Sub cmdDeleteMSFlexGridRows_Click()
MSFlexGrid1.RemoveItem (MSFlexGrid1.RowSel)
Call resetIndex
End Sub

Private Sub resetIndex()
vIndex = 0
Do While Not msflexgrid1.?????
MSFlexGrid1(vIndex + 1, 0) = vIndex + 1
vIndex = vIndex + 1
Next Row
Loop

End Sub

i dont know what to use at the ???? to say something similar to End Of File.
any ideas to what to put there for this to work?

3
Contributors
7
Replies
8
Views
10 Years
Discussion Span
Last Post by troy183
0

When you use the RemoveItem command it adjusts the total rows (MSFlexGrid1.Rows) so you may want to just use the good ole for/next loop that uses MSFlexGrid1.Rows as it's max value. Actually, you would want to use MSFlexGrid1.Rows -1 since the total number of rows is one more than what can be referenced since it starts at Zero (total rows of 10 allows for a maximum reference of 9).

0

i tried

For MSFlexGrid1.Row = 1 To MSFlexGrid1.Row = vIndex
MSFlexGrid1(vIndex + 1, 0) = vIndex + 1
vIndex = vIndex + 1
Next Row
loop

but it doesnt work, is there something im missing? it says theres a problem witth .row

variable required - cant assign to this expression

0

I don't think you need the vIndex variable if your intent is to number the resulting rows in sequence.

For R = 1 To MSFlexGrid1.Rows - 1
MSFlexGrid1.TextMatrix(R, 0) = R
Next R

If your intent is different, let me know.

0

I don't think you need the vIndex variable if your intent is to number the resulting rows in sequence.

For R = 1 To MSFlexGrid1.Rows - 1
MSFlexGrid1.TextMatrix(R, 0) = R
Next R

If your intent is different, let me know.

thanks, i didnt know it could work like that. so it works. but it gets stuck at the end when there are no more rows. subscript out of range.

0

make sure you are doing MSFlexGrid1.Rows -1. You need to subtract one from the total number of rows as it starts with row 0 not 1. So if you have 10 rows, your loop should only go to 9. I just ran the code and it works fine. Here it is and it's poorly written but should demonstrate the point:

Private Sub Command1_Click()
MSFlexGrid1.RemoveItem (2)
For R = 1 To MSFlexGrid1.Rows - 1
MSFlexGrid1.TextMatrix(R, 0) = R
Next R

End Sub

Private Sub Form_Load()
MSFlexGrid1.Cols = 5
MSFlexGrid1.Rows = 10
For R = 1 To MSFlexGrid1.Rows - 1
MSFlexGrid1.TextMatrix(R, 0) = R
Next R

0

i see. i found why it was doing that error now. it was this line.

For r = 1 To MSFlexGrid1.Rows - 1

i initially had the line

For r = 1 To MSFlexGrid1 - 1

so adding the .rows got rid of the error.

thanks for your help

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.