- أنا لم أشاهد مثالك لأني حالياً أتصفح وأرد بواسطة الموبايل ، على العموم أولاً لابد أن تكون طريقة التركيز في أداة الفليكس بالخلية وليس بالصف وتستطيع تغيير نوع التركيز عن طريق خصائص أداة الفيكس ، وعادةً الإفتراضي يكون التركيز على الخلية لذلك سأفترض أن مثالك كذلك ، عندها إستخدم هذا الكود :
كود :
Private Sub MSFlexGrid1_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = 13 Then
MSFlexGrid1.Col = 4
MSFlexGrid1.SetFocus
End If
End Sub
لدي الفلكس جريد فيها 100 سطر اريد ان احفظ السطور الذي تحتوي على بيانات وقد جربيت الكود التالي فهل هي الطريقة الصحيحة ارجو الافادة
For aloop = 1 To grid.Row - 1
If rs.State = 1 Then rs.Close
rs.Open "save", DB, adOpenStatic, adLockPessimistic
rs.AddNew
rs![d1] = grid.TextMatrix(aloop, 1)
rs![d2] = grid.TextMatrix(aloop, 2)
rs![d3] = grid.TextMatrix(aloop, 3)
rs.Update
Next aloop
Dim MaxLen() As Integer
Dim I As Long
Dim N, F As Integer
Dim CurrentLine As String
ReDim MaxLen(MSFlexGrid1.Cols - 1) As Integer
For I = 0 To MSFlexGrid1.Rows - 1
For N = 0 To MSFlexGrid1.Cols - 1
If Len(Trim(MSFlexGrid1.TextMatrix(I, N))) > MaxLen(N) Then
MaxLen(N) = Len(Trim(MSFlexGrid1.TextMatrix(I, N)))
End If
Next
Next
If Dir$(App.Path & "\MSFlexGrid1.Txt") <> "" Then
DeleteFile App.Path & "\MSFlexGrid1.Txt"
DoEvents
End If
F = FreeFile
Open App.Path & "\MSFlexGrid1.Txt" For Append As #F
For I = 0 To MSFlexGrid1.Rows - 1
CurrentLine = ""
For N = 0 To MSFlexGrid1.Cols - 1
If Len(Trim(MSFlexGrid1.TextMatrix(I, N))) < MaxLen(N) Then
CurrentLine = CurrentLine & Trim(MSFlexGrid1.TextMatrix(I, N)) & Space(MaxLen(N) - Len(Trim(MSFlexGrid1.TextMatrix(I, N)))) & Space(5)
Else
CurrentLine = CurrentLine & Trim(MSFlexGrid1.TextMatrix(I, N)) & Space(5)
End If
Next